CCAFFEINE
0.8.8
|
00001 #ifdef CCAFE_THREADS 00002 00003 #ifndef ClientInterfaces_seen 00004 #define ClientInterfaces_seen 00005 00006 #include <string.h> 00016 class ClientOutputListener; 00017 00018 class Client :public virtual JCPN(HashKey), public CCAFERunnable, 00019 public ReadCallback, public ConnectCallback 00020 { 00021 public: 00023 virtual void addClientOutputListener(ClientOutputListener* l) = 0; 00025 virtual void removeClientOutputListener(ClientOutputListener* l) = 0; 00027 virtual void write(char* s) = 0; 00029 virtual void flush() = 0; 00031 virtual int getId() = 0; 00033 virtual char* getSourceName() = 0; 00036 virtual void disconnect() = 0; 00039 virtual void shutdown() = 0; 00040 00041 virtual int hashValue() { return getId(); } 00042 }; 00043 00044 // BUGBUG - give the src a specific interface. 00045 00046 class ClientOutputEvent :public virtual JCPN(Object) { 00047 private: 00048 char* s; 00049 Client* source; 00050 public: 00051 ClientOutputEvent(Client* source, char*& s) 00052 { 00053 this->source = source; 00054 this->s = strdup(s); 00055 } 00056 ~ClientOutputEvent(){ 00057 delete s; 00058 } 00059 Client* getSource() { return source; }; 00060 char* getString() { 00061 return s; 00062 } 00063 }; 00064 00065 // BUGBUG - give the src a specific interface. 00066 00067 class OutOfBandEvent :public virtual JCPN(Object) { 00068 private: 00069 Client* source; 00070 char* cmd; 00071 public: 00072 OutOfBandEvent(Client* src, char* cmd) { 00073 this->source = src; 00074 this->cmd = strdup(cmd); 00075 } 00076 ~OutOfBandEvent() { 00077 delete cmd; 00078 } 00079 char* getOutOfBandCommand() { 00080 return cmd; 00081 } 00082 Client* getSource() { return source; }; 00083 }; 00084 00085 00086 class ClientOutputListener :public virtual JCPN(Object) { 00087 public: 00088 virtual void clientOutput(ClientOutputEvent* evt) = 0; 00089 }; 00090 00093 class ClientOutputRelay { 00094 public: 00095 virtual void relayMessageFromDataProducers(char* s) = 0; 00096 virtual void relayMessageFromController(char* s) = 0; 00097 virtual void setDataCollectorByName( char* className ) = 0; 00098 virtual int getNumClients() = 0; 00099 }; 00100 00101 00102 00103 class OutOfBandListener :public virtual JCPN(Object) { 00104 00108 public: 00109 virtual void processOutOfBand(OutOfBandEvent* evt) = 0; 00110 }; 00111 00112 00113 class ClientOutputCollector :public virtual OutOfBandListener { 00114 public: 00115 virtual void computeClientOutput(ClientOutputEvent* evt) = 0; 00116 virtual void controllerClientOutput(ClientOutputEvent* evt) = 0; 00117 virtual void setClientOutputRelay( ClientOutputRelay* cR) = 0; 00118 }; 00119 00120 00121 #endif // seen client 00122 #else //CCAFE_THREADS 00123 extern int ccafe_no_clientinterfaces; 00124 #endif //CCAFE_THREADS