solarpowerlog trunk
/home/tobi/workspace/solarpowerlog/src/Connections/CSharedConnection.h
Go to the documentation of this file.
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_ */