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/AgentImpl.hh

Go to the documentation of this file.
00001 // -*- Mode: C++ -*-
00002 //      CVS: $Id: AgentImpl.hh,v 1.9 2005/12/30 22:05:31 rijsman Exp $
00003 //      Tag: $name$
00004 //     Info: $CVSROOT/IDEA-DEV/COPYRIGHT
00005 
00006 #ifndef AGENT_IMPLEMENTATION_HEADER
00007 #define AGENT_IMPLEMENTATION_HEADER
00008 
00009 #include "Utilities.hh"
00010 #include "TimeBasics.hh"
00011 
00012 #include "Trace.hh"
00013 
00019 namespace IDEA
00020 {
00021   class AgentRelay;
00022   class AgentTimingService;
00023   class PlanRunner;
00024   class PlannerImpl;
00025   class PslDatabase;
00026   class PslModelManager;
00027   class PslPlanServer;
00028   class ReactivePlanner;
00029   class ReactivePlannerImpl;
00030 
00040   class AgentImpl
00041   {
00042     friend class Agent;
00043   public:
00047     AgentImpl();
00051     virtual ~AgentImpl();
00060     const std::string& getXIDDLFileName() const;
00069     const Trace::OutputLevel& getOutputLevel() const;
00078     const std::string& getInitialStateFileName() const;
00087     const std::string& getOutputFilterFileName() const;
00091     AgentTimingService* getAgentTimingService() const;
00095     AgentRelay* getAgentRelay() const;
00099     PslDatabase* getDatabase() const;
00103     PslModelManager* getModelManager() const;
00107     void start();
00111     void stop();
00125     bool initialize();
00129     bool isInitialized() const;
00130   private:
00131     void createInstances();
00132 
00136     void wait();
00137 
00138     virtual bool loadInitialState() {};
00139 
00140     virtual bool loadModel() {};
00144     bool loadPostInitModules();
00148     virtual bool preInitialize() {};
00152     virtual bool postInitialize() {};
00156     bool m_Initialized;
00157 
00158     std::string m_XIDDLFileName;
00159     Trace::OutputLevel m_OutputLevel;
00160     std::string m_InitialStateFileName;
00161     std::string m_OutputFilterFileName;
00162     bool m_OutputFilterFileNamePassed;
00163 
00164     std::string m_PoolName;
00165     std::string m_Name;
00166   protected:
00171     void deleteInstances();
00172 
00173     AgentRelay* m_AgentRelay;
00174     PslDatabase* m_Database;
00175     PslModelManager* m_ModelManager;
00176     AgentTimingService* m_AgentTimingService;
00177   private:
00178     typedef ACE_Thread_Mutex MutexLock;
00179 
00180     MutexLock m_Mutex;
00181 
00182     typedef ACE_Thread_Condition< MutexLock > ConditionVariable;
00183     
00184     ConditionVariable* m_ConditionVariable;
00185 
00186   };
00187 }
00188 
00189 #endif // AGENT_IMPLEMENTATION_HEADER

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