#include <sstream>
#include <stdexcept>
+#include <time.h>
#include <boost/bind.hpp>
last_action_time=time(NULL);
}
+/** @brief add a callback to one connection
+
+ @param event event the function will be called at
+ @param func functor (see boost::function) that will be called
+*/
void server_connection::add_callback(callback_event_type event, const boost::function<void ()>& func)
{
if (event == new_connection)
/** @brief add a callback
@param event event the function will be called at
- @param func functor (see boost function) that will be called
+ @param func functor (see boost::function) that will be called
@note use boost::bind to bind to member functions like this:
- s.add_callback(new_connection,bind(&my_class::func_to_call_back, boost::ref(*this), _1));
+ s.add_callback(new_connection,boost::bind(&my_class::func_to_call_back, boost::ref(*this), _1));
*/
void server::add_callback(callback_event_type event, const boost::function<void (unsigned int)>& func)
{
{
std::map<unsigned int, server_connection*>::iterator ie=connections.end();
for(std::map<unsigned int, server_connection*>::iterator i=connections.begin(); i != ie; i++)
- i->second->add_callback(event,bind(func, i->first));
+ i->second->add_callback(event,boost::bind(func, i->first));
}
}
+
+/** @brief an event occured, call all server-side callbacks
+
+ @param event event that occured
+ @param conn_id connection-id parameter that will be given to the callback-function
+*/
void server::do_callbacks(callback_event_type event, unsigned int conn_id)
{
std::list<boost::function<void (unsigned int)> >::iterator i,ie=callbacks[event].end();
(*i)(conn_id);
}
+/// add a new connection to the server
int server::add_connection(server_connection* newconn)
{
unsigned int cid=next_id++;