/* * DNN - Data News Network * * by Stephane Chatty * * Copyright 1993-1994 * Centre d'Etudes de la Navigation Aerienne (CENA) * * Event triggers. * * $Id$ * $CurLog$ */ #ifndef DnnTrigger_H_ #define DnnTrigger_H_ #ifdef __GNUG__ #pragma interface #endif #include "cplus_bugs.h" #include "ccu/List.h" class DnnReaction; class DnnWindow; class DnnEvent; class DnnTrigger { friend class DnnBaseReaction; private: DnnTrigger (const DnnTrigger&); DnnTrigger& operator = (const DnnTrigger&); protected: CcuListOf Subscribers; CcuListOf Grabs; void Subscribe (DnnBaseReaction&); void Unsubscribe (DnnBaseReaction&); void Grab (DnnBaseReaction&); void Release (DnnBaseReaction&); public: DnnTrigger (); ~DnnTrigger (); inline const CcuListOf & GetSubscribers () const { return Subscribers; } void Dispatch (DnnEvent&); }; #endif /* DnnTrigger_H_ */