notification::~notification() {}
-class dispatcher_impl
+class dispatcher::dispatcher_impl
{
public:
dispatcher_impl() : id(1) {}
};
-dispatcher::dispatcher() : impl(new dispatcher_impl) {}
+dispatcher::dispatcher() : impl(new dispatcher::dispatcher_impl) {}
+// TODO these methods are ugly
+
dispatcher::handler dispatcher::addHandler(const std::string& message,
const function& callback)
{
dispatcher::handler dispatcher::addHandler(const std::string& message,
const function& callback, handler id)
{
- std::pair<std::string,dispatcher_impl::callback_t>
- callbackPair(message, dispatcher_impl::callback_t(id, callback));
+ std::pair<std::string,dispatcher::dispatcher_impl::callback_t>
+ callbackPair(message, dispatcher::dispatcher_impl::callback_t(id, callback));
std::pair<handler,std::string> handlerPair(id, message);
void dispatcher::removeHandler(handler id)
{
- std::pair<dispatcher_impl::handler_it_t,dispatcher_impl::handler_it_t>
+ std::pair<dispatcher::dispatcher_impl::handler_it_t,dispatcher::dispatcher_impl::handler_it_t>
handlers(impl->handlers.equal_range(id));
- dispatcher_impl::handler_it_t i;
+ dispatcher::dispatcher_impl::handler_it_t i;
for (i = handlers.first; i != handlers.second; i++)
{
- dispatcher_impl::callback_it_t it = impl->callbacks.find((*i).second);
- dispatcher_impl::callback_it_t last = impl->callbacks.end();
+ dispatcher::dispatcher_impl::callback_it_t it = impl->callbacks.find((*i).second);
+ dispatcher::dispatcher_impl::callback_it_t last = impl->callbacks.end();
- dispatcher_impl::callback_it_t j;
+ dispatcher::dispatcher_impl::callback_it_t j;
for (j = it; j != last; j++)
{
if (((*j).second).first == id)
void dispatcher::dispatch(const std::string& message, const notification& param)
{
- std::pair<dispatcher_impl::callback_it_t,dispatcher_impl::callback_it_t>
+ std::pair<dispatcher::dispatcher_impl::callback_it_t,dispatcher::dispatcher_impl::callback_it_t>
callbacks(impl->callbacks.equal_range(message));
- dispatcher_impl::callback_it_t i;
+ dispatcher::dispatcher_impl::callback_it_t i;
for (i = callbacks.first; i != callbacks.second; i++)
{
function callback = ((*i).second).second;
} // namespace dc
+/** vim: set ts=4 sw=4 tw=80: *************************************************/
+