X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fserver.cpp;h=749f4fb2ff20e4d294d58e2bb1bb692d56e5be39;hp=30bf7d3359a482fb4b1e26525e8c2ebbb12ba107;hb=56f3994d74dbc36d10bfa83b50b016bf269ac563;hpb=c72238fb7fc6eb081c2a0bc95fff369c760343f4 diff --git a/src/server.cpp b/src/server.cpp index 30bf7d3..749f4fb 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -30,12 +30,19 @@ namespace libt2n { server_connection::server_connection(int _timeout) - : connection() + : connection_id(0) + , my_server(NULL) + , connection() { set_timeout(_timeout); reset_timeout(); - connection_id=0; - my_server=0; +} + +/** + * Destructor + */ +server_connection::~server_connection() +{ } /// get pointer to logging stream, returns NULL if no logging needed @@ -94,6 +101,18 @@ server::~server() std::map::iterator ie=connections.end(); for(std::map::iterator i=connections.begin(); i != ie; i++) delete i->second; + + connections.clear(); +} + +/** + * Close all open connections + */ +void server::close() +{ + std::map::iterator ie=connections.end(); + for(std::map::iterator i=connections.begin(); i != ie; ++i) + i->second->close(); } /** @brief add a callback @@ -131,7 +150,7 @@ void server::do_callbacks(callback_event_type event, unsigned int conn_id) } /// add a new connection to the server -int server::add_connection(server_connection* newconn) +unsigned int server::add_connection(server_connection* newconn) { unsigned int cid=next_id++; newconn->set_id(cid);