/home/fwph/code/wurde/rde/core/capabilities/LoggerTransport.H

Go to the documentation of this file.
00001 
00030 #ifndef _LOGGERTRANSPORT_H
00031 #define _LOGGERTRANSPORT_H
00032 #include <WritableType.H>
00033 #include <Capability.H>
00034 #include <COMObject.H>
00035 #include <queue>
00036 #include <vector>
00037 
00038 // $Id: Type.H 66 2007-01-23 20:53:23Z fwph $
00039 
00040 #define LOGGERTRANSPORT "LoggerTransport"
00041 // IDNUMBER is used to identify data events . IDNUMBER+1 is the info event. this
00042 // system will probably go away soon...
00043 //#define LOGGERTRANSPORTIDNUMBER 16
00044 
00045 namespace WURDE {
00046         class Capability;
00047         class CommsManager;
00048         class Logger;
00049 
00050         
00051 
00052         
00053         class LoggerTransportInfoStruct {
00054         public:         std::string source;
00055                 std::string target;
00056                 Time timestamp;
00057                 MessageType mType;
00058         };
00059 
00060         
00061         class LoggerTransportDataStruct {
00062         public:         int priority;
00063                 std::string source;
00064                 std::vector< char > logData;
00065                 Time timestamp;
00066                 std::string logFormat;
00067                 std::string logString;
00068         };
00069   
00075         class LoggerTransport : virtual public Capability {
00076 
00077         public:
00083                explicit LoggerTransport(const std::string & streamname);               
00084 
00090                LoggerTransport(const ConnectionStrategy & strategy,const std::string & gblName);
00091 
00097                LoggerTransport(const std::string & streamname,const std::string & gblName);
00098                
00099                ~LoggerTransport();
00100 
00101 
00105                void init(const std::string & streamname,const ConnectionStrategy & strategy, const std::string & gblName);
00106 
00107                
00112                LoggerTransportDataStruct data;    
00113                
00117                LoggerTransportInfoStruct info;
00118                
00122                LoggerTransportInfoStruct requests;
00123                
00124                //RobotObject imps
00125                void runUpdate();
00126                void setManager(CommsManager *myManager_);
00127                void setCOMObject(COMBase *object){ myCOMObject = dynamic_cast<COMObject<LoggerTransportInfoStruct,LoggerTransportDataStruct> *> (object);}
00128                void disconnect(){if(myCOMObject){myCOMObject->disconnect();}}
00129                void activateSupplier();
00130                void activateConsumer();
00131                std::string getInterfaceName(){ return LOGGERTRANSPORT;}
00132                void setStreamName(const std::string & name);
00133                void setGlobalName(const std::string & name);
00134                bool newData();
00135                bool newInfo();
00136                void setAutoPing(const bool & val);
00137                void doPing();
00138                //              int getID(){return LOGGERTRANSPORTIDNUMBER;}
00139 
00143                bool getQueueMode(){return m_queue;};
00144 
00148                void setQueueMode(const bool & val);
00149                
00154                LoggerTransportDataStruct getNextData();
00155                
00160                LoggerTransportInfoStruct getNextInfo();
00161 
00165                LoggerTransportInfoStruct getNextRequest(){return getNextInfo();}
00166 
00167                void publishData();
00168                void publishInfo();
00169                //void publishRequest();
00170                
00171         protected:
00172                COMObject<LoggerTransportInfoStruct, LoggerTransportDataStruct> *myCOMObject;
00173 
00174                bool m_queue;
00175 
00176                //notes that the object should be initialized as soon as a streamname is received
00177                bool m_initialize;
00178                std::queue<LoggerTransportDataStruct> m_dataVector;
00179                std::queue<LoggerTransportInfoStruct> m_infoVector;
00180                std::queue<LoggerTransportInfoStruct> m_requestVector;
00181         
00182         };
00183 
00184 }
00185 
00186 
00187 #endif

Generated on Thu Feb 1 15:31:53 2007 for WURDE by  doxygen 1.5.1