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

Go to the documentation of this file.
00001 //      CVS: $Id: PslTimelineImpl.hh,v 1.3 2005/11/08 18:32:44 rijsman Exp $
00002 //     Info: $CVSROOT/Idea3/Copyright.txt
00003 #ifndef PSL_TIMELINE_IMPL_HEADER_
00004 #define PSL_TIMELINE_IMPL_HEADER_
00005 
00006 #include "PslContainers.hh"
00007 
00008 #include "TimeBasics.hh"
00009 #include "TokenLocation.hh"
00010 
00011 namespace IDEA
00012 {
00013   class PslAttribute;
00014   class PslDatabase;
00015   class PslObject;
00016   
00024   class PslTimelineImpl
00025   {
00026   public:
00027     virtual ~PslTimelineImpl();
00028 
00029     const PslDatabase* getDatabase() const;
00030 
00031     const std::string& getName() const;
00032 
00033     virtual const PslToken* getNextToken( const PslToken* token ) const = 0;
00034 
00035     virtual const PslToken* getPreviousToken( const PslToken* token ) const = 0;
00036 
00037     const PslToken* getToken( const Time& time );
00038 
00039     const PslTokenList& getTokens();
00040 
00046     const std::string& getComRelayName() const;
00050     const TokenLocation& getTargetLocation() const;
00054     const Time& getTargetLatency() const;
00058     const PslAttribute* getAttribute() const;
00062     const PslObject* getObject() const;
00063 
00066     bool isGoal() const;
00070     bool isExecutable() const;
00071     void setAsExecutable();
00072     void setAsGoal();
00073     void setComRelayName( const std::string& name );
00074     void setTargetLocation( const TokenLocation& tokenLocation );
00075     void setTargetLatency( const Time& t );
00076     void print( std::ostream& os );
00077   protected:
00078     PslTimelineImpl( const PslDatabase* database, 
00079                      const PslObject* object, 
00080                      const PslAttribute* attribute );
00081 
00082     PslTokenList m_TokenList;
00083   private:
00087     virtual bool updateTokenList() = 0;
00088 
00089     typedef enum 
00090       {
00091         GOAL = 0,
00092         EXECUTABLE,
00093         INTERMEDIATE
00094       } Type;
00095 
00096     std::string m_ComRelayName;
00097     TokenLocation m_TargetLocation;
00098     Time m_TargetLatency;
00099     Type m_Type;
00100 
00101     const PslDatabase* m_Database;
00102     const PslAttribute* m_Attribute;
00103     const PslObject* m_Object;
00104   };
00105 }
00106 
00107 #endif //PSL_TIMELINE_IMPL_HEADER_
00108 

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