X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FDispatcher.hh;h=7945752df0b21ff3b97aa2104ee1b6bc1c3e4c0b;hp=da82f3824256b70bf50ee283f446133594a1c009;hb=c9e20ac06383b20ceb5404c9237e319c2e90d157;hpb=f72400af4fa3e7b54dab154b5a2b6503a6f9af18 diff --git a/src/Moof/Dispatcher.hh b/src/Moof/Dispatcher.hh index da82f38..7945752 100644 --- a/src/Moof/Dispatcher.hh +++ b/src/Moof/Dispatcher.hh @@ -31,6 +31,7 @@ #include +#include #include #include @@ -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_; + boost::shared_ptr 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 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