{
client_connection::client_connection()
- : connection(), callbacks(__events_end)
+ : connection()
{
set_logging(NULL,none);
}
-client_connection::~client_connection()
-{
- // we want the connection_closed callbacks to be called before
- close();
-
- do_callbacks(connection_deleted);
-}
-
-void client_connection::close()
-{
- if (!is_closed())
- {
- connection::close();
- do_callbacks(connection_closed);
- }
-}
-
-/// add a callback
-/**
- @param event event the function will be called at
- @param func functor (see boost function) that will be called
- @note use boost::bind to bind to member functions and parameters like this:
- @verbatim
- // in this example 17 is a fixed parameter that is always added to the call
- c.add_callback(connection_closed,bind(&my_class::func_to_call_back, boost::ref(*this), 17));
- @endverbatim
-*/
-void client_connection::add_callback(callback_event_type event, const boost::function<void ()>& func)
-{
- callbacks[event].push_back(func);
-}
-
-
-
-void client_connection::do_callbacks(callback_event_type event)
-{
- std::list<boost::function<void ()> >::iterator i,ie=callbacks[event].end();
- for (i=callbacks[event].begin(); i != ie; i++)
- (*i)();
-}
-
/// get pointer to logging stream, returns NULL if no logging needed
std::ostream* client_connection::get_logstream(log_level_values level)
{