Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

/home/pauldt/projects/IDEA/IDEA-ALL/IDEA-DEV/Core/Agent/Includes/MessageFactory.hh

Go to the documentation of this file.
00001 // -*- Mode: c++ -*-
00002 //      CVS: $Id: MessageFactory.hh,v 1.4 2005/12/30 22:05:33 rijsman Exp $
00003 //      Tag: $name$
00004 //     Info: $CVSROOT/IDEA-DEV/COPYRIGHT
00005 
00006 #ifndef HEADER_MESSAGE_FACTORY_HEADER_
00007 #define HEADER_MESSAGE_FACTORY_HEADER_
00008 
00010 #include "MessageHandle.hh"
00011 #include "PslToken.hh"
00012 
00013 namespace IDEA
00014 {
00015   class StartMessageData;
00016   class StopMessageData;
00017   class ObjectMessageData;
00018   class StatusMessageData;
00019   class TelemetryMessageData;
00020   class UserdefinedMessage;
00021   class ValueMessageData;
00022 
00032   class MessageFactory
00033   {
00034   public:
00038     MessageFactory( const AgentRelay* agentRelay,                         
00039                     const AgentTimingService* ats );
00040 
00044     virtual ~MessageFactory() {}
00045 
00049     virtual MessageHandle createStopMessage( const PslToken* token ) const;
00053     virtual MessageHandle createStartMessage( const PslToken* token ) const;
00057     virtual MessageHandle createValueMessage( const PslToken* token, int index ) const;
00061     virtual MessageHandle createStatusMessage( const PslToken* token ) const;
00067     virtual MessageHandle createTelemetryMessage( const std::string& to, const std::string& objectName, const std::string& attributeName, const std::string& value, int index ) const;
00068   private:
00069     typedef std::map< const PslToken*, ObjectMessageData* > PslToken2ObjectMessageDataMap;
00070     typedef std::list< ObjectMessageData* > ObjectMessageDataList;
00076     virtual ObjectMessageData* createObjectData( const PslToken* token, const PslToken* topToken ) const;
00077 
00084     bool createObjectDataList( const PslToken* token, 
00085                                const PslToken* topToken, 
00086                                PslTokenSet& tokens, 
00087                                ObjectMessageDataList& objectMessageDataList ) const;
00088 
00139     void adjustTimesStartMessage( const PslToken* token, 
00140                                   const Time& estSender,
00141                                   const Time& lstSender, 
00142                                   const Time& eetSender,
00143                                   const Time& letSender, 
00144                                   const Time& latencySender,
00145                                   Time& estReceiver, 
00146                                   Time& lstReceiver, 
00147                                   Time& eetReceiver, 
00148                                   Time& letReceiver, 
00149                                   const Time& latencyReceiver,
00150                                   bool openLoop ) const;
00151 
00152     const AgentRelay* m_AgentRelay;
00153     const AgentTimingService* m_AgentTimingService;
00154   };
00155 
00156 } // namespace IDEA
00157 
00158 #endif //HEADER_MESSAGE_FACTORY_HEADER_

Contact information
© IDEA
Generated on Fri Feb 3 17:09:40 2006 for IDEA.