]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Dispatcher.hh
port to NetBSD
[chaz/yoink] / src / Moof / Dispatcher.hh
index da82f3824256b70bf50ee283f446133594a1c009..7945752df0b21ff3b97aa2104ee1b6bc1c3e4c0b 100644 (file)
@@ -31,6 +31,7 @@
 
 #include <string>
 
+#include <boost/bind.hpp>
 #include <boost/function.hpp>
 #include <boost/shared_ptr.hpp>
 
@@ -45,7 +46,7 @@ namespace Mf {
 class Notification
 {
 public:
-       virtual ~Notification();
+       virtual ~Notification() {};
 };
 
 
@@ -56,10 +57,13 @@ public:
 class Dispatcher
 {
        class Impl;
-       boost::shared_ptr<Impl> impl_;
+       boost::shared_ptr<Impl> mImpl;
 
 public:
 
+       // TODO - the Handler would be even better as an object which automagically
+       // removes itself from the dispatcher on destruction, so users don't have to
+       // worry about forgetting
        typedef void* Handler;
        typedef boost::function<void(const Notification*)> Function;
 
@@ -84,13 +88,13 @@ namespace dispatcher {
 inline Dispatcher::Handler addHandler(const std::string& message,
                const Dispatcher::Function& callback)
 {
-       Dispatcher::getInstance().addHandler(message, callback);
+       return Dispatcher::getInstance().addHandler(message, callback);
 }
 
 inline Dispatcher::Handler addHandler(const std::string& message,
                const Dispatcher::Function& callback, Dispatcher::Handler id)
 {
-       Dispatcher::getInstance().addHandler(message, callback, id);
+       return Dispatcher::getInstance().addHandler(message, callback, id);
 }
 
 inline void removeHandler(Dispatcher::Handler id)
@@ -103,7 +107,8 @@ inline void dispatch(const std::string& message, const Notification* param = 0)
        Dispatcher::getInstance().dispatch(message, param);
 }
 
-} // namespace dispatch
+} // namespace dispatcher
+
 
 } // namespace Mf
 
This page took 0.017527 seconds and 4 git commands to generate.