class TCPProto : public TransportProto
{
public:
- TCPProto();
+ TCPProto(boost::asio::io_service& ios);
virtual ~TCPProto();
- virtual void connect(const std::string& address, uint16_t port);
- virtual ssize_t write(const void* buf, size_t size);
- virtual ssize_t read(void* buf, size_t size);
+ virtual ConnectionPtr connect(const std::string& address, uint16_t port) = 0;
+ virtual void bind(const std::string& address, uint16_t port, Proto::AcceptHandler handler) = 0;
+ typedef boost::asio::ip::tcp protocol;
private:
- int m_sock;
+ ba::io_service& m_ios;
+ protocol::acceptor m_acceptor;
+
+ void m_handleAccept(TCPConn* conn, Proto::AcceptHandler handler, const boost::system::error_code& ec)
};
} // namespace SGCP