#define __LIBT2N_CLIENT
#include <string>
+#include <vector>
+#include <list>
+
+#include <boost/function.hpp>
#include "connection.hxx"
#include "types.hxx"
namespace libt2n
{
+/** @brief a (generic) connection from client to server. Abstract.
+ */
class client_connection : public connection
{
+ private:
+ log_level_values log_level;
+ std::ostream *logstream;
+
+ /// vector initialized for all callback-types, all elements in each list will be called
+ std::vector<std::list<boost::function<void ()> > > callbacks;
+
+ protected:
+ void do_callbacks(callback_event_type event);
+
public:
- client_connection()
- : connection()
- { }
+ client_connection();
+
+ virtual ~client_connection();
+
+ void close();
+
+ void set_logging(std::ostream *_logstream, log_level_values _log_level);
+
+ std::ostream* get_logstream(log_level_values level);
+
+ void add_callback(callback_event_type event, const boost::function<void ()>& func);
};
}