]> git.stg.codes - stg.git/blobdiff - stglibs/sgcp.lib/stream_conn.h
Removed sgcp, added json.
[stg.git] / stglibs / sgcp.lib / stream_conn.h
diff --git a/stglibs/sgcp.lib/stream_conn.h b/stglibs/sgcp.lib/stream_conn.h
deleted file mode 100644 (file)
index 70ca09b..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef __STG_SGCP_STREAM_CONN_H__
-#define __STG_SGCP_STREAM_CONN_H__
-
-/*
- *    This program is free software; you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
- *    the Free Software Foundation; either version 2 of the License, or
- *    (at your option) any later version.
- *
- *    This program is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU General Public License for more details.
- *
- *    You should have received a copy of the GNU General Public License
- *    along with this program; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-/*
- *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
- */
-
-namespace STG
-{
-namespace SGCP
-{
-namespace Impl
-{
-
-template <typename Stream>
-class StreamConn : public Connection
-{
-    public:
-        StreamConn(ba::io_service& ios, Dispatcher dispatcher, ErrorHandler errorHandler)
-            : Connection(dispatcher, errorHandler),
-              m_socket(ios)
-        {
-        }
-
-        socket::endpoint_type& endpoint() { return m_endpoint; }
-
-        virtual ba::basic_stream_socket& socket() { return m_socket; }
-
-        virtual void start()
-        {
-            ba::read(m_socket, ba::buffer(&m_packet, sizeof(m_packet)),
-                     boost::bind(&StreamConn::m_handleReadHeader, this));
-        }
-        virtual void stop() { m_socket.shutdown(socket::shutdown_both); }
-
-        virtual void send(const void* data, size_t size)
-        {
-            Packet* packet = new Packet(Packet::DATA, size));
-            *packet = hton(*packet);
-            boost::array<ba::const_buffer, 2> data = {
-                ba::buffer(packet, sizeof(*packet)),
-                ba::buffer(data, size)
-            };
-            ba::write(m_socket, data, boost::bind(&StreamConn::m_handleWrite, this, packet, boost::_1, boost::_2));
-        }
-
-    private:
-        typedef Stream::socket socket;
-        socket m_socket;
-        Packet m_packet;
-
-        void m_handleReadHeader(const boost::system::error_code& ec, size_t size)
-        {
-            if (ec) {
-                // TODO: Handle errors.
-                /*if (ec != ba::error::operation_aborted)
-                    m_errorHandler(ec);*/
-                return;
-            }
-            Packet packet = ntoh(m_packet);
-            Chunk chunk = m_dispatcher(packet.type, packet.size);
-            if (chunk.size == 0) {
-                // TODO: Discard current data.
-                ba::read(m_socket, ba::buffer(&m_packet, sizeof(m_packet)),
-                         boost::bind(&StreamConn::m_handleReadHeader, this));
-                return;
-            }
-            ba::read(m_socket, ba::buffer(chunk.buffer, chunk.size),
-                     boost::bind(&StreamConn::m_handleReadData, this, packet, chunk, boost::_1, boost::_2));
-        }
-
-        void m_handleReadData(Packet packet, Chunk chunk, const boost::system::error_code& ec, size_t size)
-        {
-            if (ec) {
-                // TODO: Handle errors.
-                /*if (ec != ba::error::operation_aborted)
-                    m_errorHandler(ec);*/
-                return;
-            }
-            chunk = chunk.continuation(""); // TODO: Handle errors.
-            if (chunk.size == 0) {
-                // TODO: Discard current data.
-                ba::read(m_socket, ba::buffer(&m_packet, sizeof(m_packet)),
-                         boost::bind(&StreamConn::m_handleReadHeader, this));
-                return;
-            }
-            ba::read(m_socket, ba::buffer(chunk.buffer, chunk.size),
-                     boost::bind(&StreamConn::m_handleReadData, this, packet, chunk, boost::_1, boost::_2));
-        }
-
-        void m_handleWrite(Packet* packet, const boost::system::error_code& ec, size_t size)
-        {
-            delete packet;
-            if (ec) {
-                // TODO: Handle errors.
-                /*if (ec != ba::error::operation_aborted)
-                    m_errorHandler(ec);*/
-                return;
-            }
-        }
-};
-
-typedef StreamConn<ba::ip::tcp> TCPConn;
-typedef StreamConn<ba::local::stream_protocol> UNIXConn;
-
-} // namespace Impl
-} // namespace SGCP
-} // namespace STG
-
-#endif