// forward declares class SubscriberHookup; class SwitchBoard { friend class SubscriberHookup; private: // handle to singleton instance static SwitchBoard* _self; // array of subscribing object hookups // (NULL terminated) SubscriberHookup** _hookups; int _thookups; // total number of subscriber hookups protected: // singleton constructor SwitchBoard(); // api implementation void _subscribe (SubscriberHookup* hookup); void _unsubscribe (SubscriberHookup* hookup); bool _post(const char* subscription); public: // singleton access static SwitchBoard& instance(); // message dispatching static bool post(const char* subscription) { return(instance()._post(subscription)); } }; /* End of File */