#ifndef I2CP_H__ #define I2CP_H__ #include #include #include #include namespace i2p { namespace client { const uint8_t I2CP_PRTOCOL_BYTE = 0x2A; const size_t I2CP_SESSION_BUFFER_SIZE = 8192; class I2CPSession: public std::enable_shared_from_this { public: I2CPSession (std::shared_ptr socket); private: void ReadProtocolByte (); void Receive (); void HandleReceived (const boost::system::error_code& ecode, std::size_t bytes_transferred); void Terminate (); private: std::shared_ptr m_Socket; uint8_t m_Buffer[I2CP_SESSION_BUFFER_SIZE]; }; class I2CPServer { public: I2CPServer (const std::string& interface, int port); }; } } #endif