CCAFFEINE  0.8.8
DataCollectorFactory.h
00001 #ifdef CCAFE_THREADS
00002 
00003 #ifndef DataCollectorFactory_seen
00004 #define DataCollectorFactory_seen
00005 
00006 
00021 class DataCollectorFactory :public virtual JCPN(Object) {
00022  private:
00023   JCPN(GenericHashTable) collectors;
00024  public:
00025   DataCollectorFactory();
00026   ~DataCollectorFactory();
00027   CDELETE ClientOutputCollector* create(char* name, ClientOutputRelay* relay);
00028 };
00029 
00030 class CollectorCreator :public virtual JCPN(Object) {
00031   CDELETE ClientOutputCollector* (*creationFunc) (ClientOutputRelay*);
00032  public:
00033   CollectorCreator( CDELETE ClientOutputCollector* (*creationFunc)(ClientOutputRelay*))
00034     { this->creationFunc = creationFunc; }; 
00035   CDELETE ClientOutputCollector* create(ClientOutputRelay* relay) { return creationFunc(relay); };
00036 };
00037 #endif // seen datacollector
00038 #else // CCAFE_THREADS
00039 extern int ccafe_no_datacollector;
00040 #endif // CCAFE_THREADS