00001 00009 #pragma once 00010 #pragma warning(disable: 4786) 00011 00012 #include <list> 00013 #include <map> 00014 00015 using namespace std; 00016 00017 #include "WDError.h" 00018 class IManagedObject; 00019 00020 typedef list<IManagedObject*> EventSubscriberList; 00021 typedef map<void*, EventSubscriberList*> EventSubscriberMap; 00022 typedef pair<void*, EventSubscriberList*> EventSubscriberPair; 00023 00024 00031 class SubscriberMap 00032 { 00033 private: 00034 EventSubscriberMap mSubscriberMap; 00036 public: 00041 WDError subscribe(IManagedObject *inSubscriber, void *inKey); 00042 00047 WDError unSubscribe(IManagedObject*inSubscriber, void *inKey); 00048 00052 EventSubscriberList* getSubscribers(void *inKey); 00053 };