]> git.stg.codes - stg.git/blobdiff - stglibs/sgcp.lib/tcp.h
Experimental implementation of SGCP using Boost.Asio.
[stg.git] / stglibs / sgcp.lib / tcp.h
index 8afa0b5e95b947247605dd1c1bcf90d2596e07b2..55de821b2177dc40721647339f7fa70eba3d6ba4 100644 (file)
@@ -37,15 +37,18 @@ namespace SGCP
 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