]> git.stg.codes - stg.git/blobdiff - stglibs/sgcp.lib/unix.h
Experimental implementation of SGCP using Boost.Asio.
[stg.git] / stglibs / sgcp.lib / unix.h
index e5b645f2d78ab06b26ecaf17de2ad63653b7a907..6735f6dc4469dcffbda8098b83269777937218fd 100644 (file)
@@ -34,18 +34,21 @@ namespace STG
 namespace SGCP
 {
 
-class UnixProto : public TransportProto
+class UNIXProto : public TransportProto
 {
     public:
-        UnixProto();
-        virtual ~UnixProto();
+        UNIXProto(boost::asio::io_service& ios);
+        virtual ~UNIXProto();
 
-        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::local::stream_protocol protocol;
     private:
-        int m_sock;
+        ba::io_service& m_ios;
+        protocol::acceptor m_acceptor;
+
+        void m_handleAccept(UNIXConn* conn, Proto::AcceptHandler handler, const boost::system::error_code& ec)
 };
 
 } // namespace SGCP