From bcb19dbd53973ff7efd9b2838de121d1e23430f4 Mon Sep 17 00:00:00 2001 From: chatty Date: Tue, 28 Nov 2000 14:52:15 +0000 Subject: Lots of files were added around '96 --- dnn/Source.h | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100755 dnn/Source.h (limited to 'dnn/Source.h') diff --git a/dnn/Source.h b/dnn/Source.h new file mode 100755 index 0000000..ab5d55c --- /dev/null +++ b/dnn/Source.h @@ -0,0 +1,72 @@ +/* + * DNN - Data News Network + * + * by Stephane Chatty + * + * Copyright 1993-1996 + * Centre d'Etudes de la Navigation Aerienne (CENA) + * + * Event sources. + * + * $Id$ + * $CurLog$ + */ + +#ifndef DnnSource_H_ +#define DnnSource_H_ + +#include "cplus_bugs.h" +template class CcuArrayOf; +template class CcuHashTableOf; +class DnnTrigger; +class DnnEvent; +class DnnBaseReaction; + + +class DnnEventSource { +protected: + DnnEventSource (); +virtual ~DnnEventSource (); + void Emit (DnnEvent*); +virtual void DispatchEvent (DnnEvent*) = 0; +}; + +class DnnEventSelector { +public: + DnnEventSelector (); +virtual ~DnnEventSelector (); +virtual DnnTrigger* FindTrigger (DnnEvent*) = 0; +}; + +typedef int (*DnnIntExtractor) (DnnEvent*); + +class DnnEventIntSelector : public DnnEventSelector { +protected: + DnnIntExtractor IdExtractor; + int MaxSize; + CcuArrayOf *Triggers; +public: + DnnEventIntSelector (DnnIntExtractor, int); + ~DnnEventIntSelector (); + DnnTrigger* UseTrigger (int); + void UnuseTrigger (int, DnnBaseReaction*); + DnnTrigger* FindTrigger (DnnEvent*); +}; + +typedef void* (*DnnPtrExtractor) (DnnEvent*); + +class DnnEventPtrSelector : public DnnEventSelector { +protected: + DnnPtrExtractor PtrExtractor; + int TblSize; + CcuHashTableOf *Triggers; +public: + DnnEventPtrSelector (DnnPtrExtractor, int); + ~DnnEventPtrSelector (); + DnnTrigger* UseTrigger (void*); + void UnuseTrigger (void*, DnnBaseReaction*); + DnnTrigger* FindTrigger (DnnEvent*); +}; + + +#endif /* DnnSource_H_ */ -- cgit v1.1