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/Simulator/Includes/Simulator.hh

Go to the documentation of this file.
00001 // -*- Mode: c++ -*-
00002 //     File: $Source: /home/cvs/ISG-Repository/IDEA-DEV/Core/Simulator/Includes/Simulator.hh,v $
00003 //      Tag: $Name: DR_01_11_06 $
00004 //      CVS: $Id: Simulator.hh,v 1.6 2005/12/30 22:16:18 rijsman Exp $
00005 //     Info: $CVSROOT/Idea3/Copyright.txt
00006 #ifndef SIMULATOR_HEADER_FILE__
00007 #define SIMULATOR_HEADER_FILE__
00008 
00009 #include <map>
00010 
00011 #include "MessageHandle.hh"
00012 
00013 namespace IDEA
00014 {
00015   /*
00016     \defgroup Simulator
00017   */
00018   class AgentRelay;
00019   class AgentTimingService;
00020   class AgentTimingServiceImpl;
00021   class ComRelay;
00022   class IPCRelay;
00023   class ResponseMessageFactory;
00024   class SimulatorResponseScheduler;
00025 
00033   class Simulator
00034   {
00035   public:
00039     ~Simulator();
00043     const std::string& getName() const;
00047     const AgentRelay* getAgentRelay() const;
00051     const AgentTimingService* getAgentTimingService() const;
00058     bool initialize(const std::string& name, const std::string& poolName);
00062     void scheduleMessage( const Time& time,  MessageHandle message );
00066     void bufferMessage( const Time& time, MessageHandle message );
00071     void triggerBuffer( const Time& time );
00076     ResponseMessageFactory* getResponseMessageFactory(  const std::string& predicateName );
00080     void registerResponseMessageFactory(  ResponseMessageFactory* factory );
00085     void sendScheduledEvents( const Time& time );
00091     void run();
00095     void setComRelay( ComRelay* comRelay );
00099     bool isInitialized() const;
00103     static Simulator* instance();
00107     static void release();
00108   private:
00112     Simulator();
00116     static Simulator* s_Instance;
00120     typedef std::map< std::string, ResponseMessageFactory* > String2ResponseMessageFactory;
00124     String2ResponseMessageFactory m_ResponseFactories;
00128     MessageHandleList getScheduledMessages( const Time& time );
00132     std::string m_Name;
00136     std::string m_PoolName;
00140     typedef std::multimap< Time, MessageHandle > Time2MessageMap;
00144     Time2MessageMap m_ScheduledMessages;
00148     typedef std::pair< Time, MessageHandle > TimeMessagePair;
00152     typedef std::list< TimeMessagePair > TimeMessagePairList;
00156     TimeMessagePairList m_BufferedMessages;
00160     AgentRelay* m_AgentRelay;
00164     AgentTimingService* m_AgentTimingService;
00168     ComRelay* m_ComRelay; 
00172     bool m_Initialized;
00173   };
00174 
00175 } //namespace IDEA
00176 
00177 #endif //SIMULATOR_HEADER_FILE__

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