#ifndef ABSTRACTNETWORKOPS_H #define ABSTRACTNETWORKOPS_H #include "LogBase.h" #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef function(string, int)> CallbackHandler; class AbstractNetworkOps { typedef boost::asio::ssl::stream ssl_socket; public: AbstractNetworkOps(); AbstractNetworkOps(boost::asio::io_service& io_service, boost::asio::ssl::context& context); virtual ~AbstractNetworkOps(); ssl_socket::lowest_layer_type& socket(); void setCallbackHandler(CallbackHandler cb); protected: ssl_socket socket_; enum { max_length = 1024 }; CallbackHandler callback_handler = NULL; protected: void read(); void send(vector); void process_read(char* buffer, int size, int type); private: void saveCloseSocket(); }; #endif