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

Go to the documentation of this file.
00001 // -*- Mode: C++ -*-
00002 //      CVS: $Id: PlannerImpl.hh,v 1.5 2005/12/30 22:10:56 rijsman Exp $
00003 //      Tag: $name$
00004 //     Info: $CVSROOT/IDEA-DEV/COPYRIGHT
00005 #ifndef PLANNER_IMPLEMENTATION_HEADER_FILE_
00006 #define PLANNER_IMPLEMENTATION_HEADER_FILE_
00007 
00008 #include <string>
00009 #include "StatusTypes.hh"
00010 #include "TimeBasics.hh"
00011 #include "HorizonSettings.hh"
00012 
00013 namespace IDEA
00014 {
00015   class AgentTimingService;
00016   class PslDatabase;
00017   class PslAttribute;
00018 
00024   class PlannerHorizonPolicy
00025   {
00026   public:
00030     PlannerHorizonPolicy( const PslDatabase* database, 
00031                           const AgentTimingService* ats,
00032                           const HorizonSetting& setting = CUSTOM );
00036     virtual ~PlannerHorizonPolicy();
00040     const HorizonSetting& getSetting() const;
00044     const PslDatabase* getDatabase() const;
00045 
00046     void set( const HorizonSetting& setting );
00050     virtual Time getStartHorizon();
00054     virtual Time getEndHorizon();
00055   private:
00056     const PslDatabase* m_Database;
00057     const AgentTimingService* m_AgentTimingService;
00058 
00059     HorizonSetting m_HorizonSetting;
00060   };
00061 
00067   class PlannerImpl
00068   {
00069     friend class Planner;
00070   public:
00074     PlannerImpl( const std::string& name, 
00075                  const PslDatabase* database,
00076                  const AgentTimingService* ats );
00080     virtual ~PlannerImpl();
00086     void setHorizonPolicy( PlannerHorizonPolicy* horizonPolicy, bool deleteInstance );
00090     const PlannerHorizonPolicy* getHorizonPolicy() const; 
00094     static int createAuthority();
00098     int getAuthority() const;
00102     const PslDatabase* getDatabase() const;
00106     const std::string& getName() const;
00110     virtual StatusType replan() = 0;
00114     void stopPlanner();
00118     virtual void ignore( const PslAttribute* attribute ) = 0;
00119   protected:
00120     Time getStartHorizon() const;
00121     Time getEndHorizon() const;
00125     bool continuePlanning() const;
00126   private:
00127     virtual void initialize() = 0;
00128 
00129     bool m_DeleteHorizonPolicy;
00130     PlannerHorizonPolicy* m_HorizonPolicy;
00131 
00132     std::string m_Name;
00133     int m_Authority;
00134     bool m_StopPlanner;
00135 
00136     const PslDatabase* m_Database;
00137     const AgentTimingService* m_AgentTimingService;
00138 
00139     static int s_Authority;
00140   };
00141 }
00142 
00143 #endif // PLANNER_IMPLEMENTATION_HEADER_FILE_
00144  

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