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