Skip to content
Snippets Groups Projects
Select Git revision
  • 75ffbb737d1d9da6064e907222eaa6475e8a730a
  • master default protected
  • v4.5.2
  • v4.5.1
  • v4.5.0
  • v4.4.0
  • v4.3.3
  • v4.3.2
  • v4.3.1
  • v4.3.0
  • v4.2.0
  • v4.1.0
  • v4.0.2
  • v4.0.1
  • v4.0.0
  • v3.4.0
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.1
  • v3.0.0
22 results

Doxyfile

Blame
  • Session.h 3.69 KiB
    #ifndef SESSION_H
    #define SESSION_H
    
    #include <Configuration.h>
    #include <ProtocolManager.h>
    #include <DBManager.h>
    
    #include <tango.h>
    
    #include <boost/asio.hpp>
    #include <boost/shared_ptr.hpp>
    #include <boost/cstdint.hpp>
    
    namespace DataExporter_ns
    {
    
    class Session : public Tango::LogAdapter
    {
    public:
    //------------------------------------------------------------------------------
    //  [Public] Shared pointer typedef
    //------------------------------------------------------------------------------
        typedef boost::shared_ptr<Session> SP;
    
    protected:
    //------------------------------------------------------------------------------
    //	[Protected] Constructor destructor deleter
    //------------------------------------------------------------------------------
        Session(Tango::DeviceImpl*, Configuration::SP, DBManager::SP,
            boost::shared_ptr<boost::asio::io_service>);
    
        virtual ~Session();
    
    public:
    //------------------------------------------------------------------------------
    //	[Public] Incoming connection methods
    //------------------------------------------------------------------------------
        virtual boost::asio::ip::tcp::socket& getSocket() = 0;
    
        virtual void start() = 0;
    
    protected:
    //------------------------------------------------------------------------------
    //  [Protected] Read request header methods
    //------------------------------------------------------------------------------
        virtual void startReadRequestHeader() = 0;
    
        virtual void handleReadRequestHeader(const boost::system::error_code&);
    
    //------------------------------------------------------------------------------
    //  [Protected] Read request body methods
    //------------------------------------------------------------------------------
        virtual void startReadRequestBody(boost::uint32_t) = 0;
    
        virtual void handleReadRequestBody(const boost::system::error_code&);
    
    //------------------------------------------------------------------------------
    //  [Protected] Write response methods
    //------------------------------------------------------------------------------
        virtual void startWriteResponse() = 0;
    
        virtual void handleWriteResponse(const boost::system::error_code&);
    
    //------------------------------------------------------------------------------
    //  [Protected] Write data methods
    //------------------------------------------------------------------------------
        virtual void startWriteData() = 0;
    
        virtual void handleWriteData(const boost::system::error_code&);
    
    //------------------------------------------------------------------------------
    //  [Protected] Encode decode header methods
    //------------------------------------------------------------------------------
        virtual void encodeHeader(std::vector<boost::uint8_t>&, boost::uint32_t)
            throw(std::runtime_error);
    
        virtual boost::uint32_t decodeHeader(std::vector<boost::uint8_t>&)
            throw(std::runtime_error);
    
    //------------------------------------------------------------------------------
    //	[Protected] Class variables
    //------------------------------------------------------------------------------
        //Configuration parameters shared pointer
        Configuration::SP m_configuration_sp;
    
        //Protocol manager class shared pointer
        ProtocolManager::SP m_protocolManager_sp;
    
        //Synchronization mechanism
        boost::asio::io_service::strand m_strand;
    
        //Header size written on socket
        const unsigned int HEADER_SIZE = 4;
    
        //Binary buffer for read data
        std::vector<boost::uint8_t> m_readBuff;
    
        //Address and port of remote endpoint
        std::string m_remoteEndpoint;
    
        const int BUFFER_SIZE = 1024;
    
        std::ifstream m_inputStream;
    
        int m_inputStreamSize;
    };
    
    }   //End of namespace
    
    #endif	/* SESSION_H */