X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fserver.hxx;fp=src%2Fserver.hxx;h=7e496d92378fa049a03605bb5094ed6e739f7bd4;hp=40113b8deef3dbb6597b72abe3810c8b2fcf6cdd;hb=a11e19b7adab2d5b937573701959562f06087ac5;hpb=5816531135da09aceb7a026eeade735cbd20ef03 diff --git a/src/server.hxx b/src/server.hxx index 40113b8..7e496d9 100644 --- a/src/server.hxx +++ b/src/server.hxx @@ -23,6 +23,9 @@ #include #include +#include "connection.hxx" +#include "types.hxx" + namespace libt2n { @@ -31,41 +34,31 @@ class server; /** Basic connection class */ -class connection +class server_connection : public connection { private: int timeout; int last_action_time; - bool closed; unsigned int connection_id; protected: - connection(int _timeout) + server_connection(int _timeout) + : connection() { set_timeout(_timeout); reset_timeout(); - closed=false; connection_id=0; my_server=0; } server *my_server; - std::string buffer; - - typedef unsigned int packet_size_indicator; public: - ~connection() - { this->close(); } - void check_timeout(); void reset_timeout(); void set_timeout(int _timeout) { timeout=_timeout; } - bool is_closed() - { return closed; } - void set_server(server* _my_server) { my_server=_my_server; } @@ -73,13 +66,6 @@ class connection { connection_id=_connection_id; } unsigned int get_id() { return connection_id; } - std::string get_id_string(); - - virtual void close() - { closed=true; } - - bool get_packet(std::string& data, unsigned int& conn_id); - virtual void write(const std::string& data)=0; }; /** @@ -87,9 +73,6 @@ class connection */ class server { - public: - enum log_level_values { none=0, error=1, debug=2 }; - private: int default_timeout; log_level_values log_level; @@ -98,7 +81,7 @@ class server unsigned int next_id; protected: - std::map connections; + std::map connections; server() { @@ -107,7 +90,7 @@ class server next_id=1; } - int add_connection(connection* newconn); + int add_connection(server_connection* newconn); public: virtual ~server(); @@ -123,11 +106,13 @@ class server logstream=_logstream; } - connection* get_connection(unsigned int conn_id); + server_connection* get_connection(unsigned int conn_id); virtual void fill_buffer(long long usec_timeout=-1)=0; - void check_timeout(); + void cleanup(); + bool get_packet(std::string& data) + { unsigned int x; return get_packet(data,x); } bool get_packet(std::string& data, unsigned int& conn_id); virtual void fill_connection_buffers(void)=0;