|
solarpowerlog trunk
|
00001 00032 #ifndef CSHAREDCONNECTION_H_ 00033 #define CSHAREDCONNECTION_H_ 00034 00035 #ifdef HAVE_CONFIG_H 00036 #include "config.h" 00037 #include "porting.h" 00038 #endif 00039 00040 #ifdef HAVE_COMMS_SHAREDCONNECTION 00041 00042 #include <assert.h> 00043 #include "interfaces/IConnect.h" 00044 00045 class CSharedConnection: public IConnect 00046 { 00047 protected: 00048 friend class IConnectFactory; 00049 CSharedConnection(const string & configurationname); 00050 00051 public: 00052 00053 virtual ~CSharedConnection(); 00054 00055 virtual bool Connect(ICommand *callback) 00056 { 00057 assert(concreteSharedConnection); 00058 return concreteSharedConnection->Connect(callback); 00059 } 00060 00061 virtual bool Disconnect(ICommand *callback) 00062 { 00063 assert(concreteSharedConnection); 00064 return concreteSharedConnection->Disconnect(callback); 00065 } 00066 00067 virtual void SetupLogger(const string& parentlogger, const string & = ""); 00068 00069 virtual bool Send(const char *tosend, unsigned int len, ICommand *callback = 00070 NULL) 00071 { 00072 assert(concreteSharedConnection); 00073 return concreteSharedConnection->Send(tosend, len, callback); 00074 } 00075 00076 virtual bool Send(const string& tosend, ICommand *callback = NULL) 00077 { 00078 assert(concreteSharedConnection); 00079 return concreteSharedConnection->Send(tosend, callback); 00080 } 00081 00082 virtual bool Receive(ICommand *callback) 00083 { 00084 assert(concreteSharedConnection); 00085 return concreteSharedConnection->Receive(callback); 00086 } 00087 00088 virtual bool CheckConfig(void); 00089 00090 virtual bool IsConnected(void) 00091 { 00092 assert(concreteSharedConnection); 00093 return concreteSharedConnection->IsConnected(); 00094 } 00095 00096 private: 00097 00098 bool CreateSharedConnectionObject(); 00099 00100 IConnect *concreteSharedConnection; 00101 00102 }; 00103 00104 #endif 00105 00106 #endif /* CSHAREDCONNECTION_H_ */