libt2n: (gerd) client callbacks
[libt2n] / src / client.hxx
index 91c17b9..c639bb1 100644 (file)
 #define __LIBT2N_CLIENT
 
 #include <string>
+#include <vector>
+#include <list>
+
+#include <boost/function.hpp>
 
 #include "connection.hxx"
 #include "types.hxx"
@@ -35,12 +39,24 @@ class client_connection : public connection
         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();
 
+        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);
 };
 
 }