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

Go to the documentation of this file.
00001 // -*- Mode: C++ -*-
00002 //      CVS: $Id: PslPredicateImpl.hh,v 1.9 2005/12/30 22:15:01 rijsman Exp $
00003 //      Tag: $name$
00004 //     Info: $CVSROOT/IDEA-DEV/COPYRIGHT
00005 
00006 #ifndef PSL_PREDICATE_IMPL_HEADER
00007 #define PSL_PREDICATE_IMPL_HEADER
00008 
00009 #include "Utilities.hh"
00010 #include "TokenLocation.hh"
00011 #include "PslContainers.hh"
00012 #include "PslArgumentTypes.hh"
00013 
00014 namespace IDEA
00015 {
00016   class PslAttribute;
00017   class PslDomain;
00025   class PslPredicateImpl
00026   {
00027     friend class PslPredicate;
00028   public:
00032     virtual ~PslPredicateImpl();
00036     const TokenLocation& getTargetLocation() const;
00040     const PslArgument* createArgument( const PslPredicate* predicate, 
00041                                        int index, 
00042                                        const PslDomain* domain, 
00043                                        const PslArgumentType& type, 
00044                                        const PslSelectorType& type, 
00045                                        const std::string& name );
00049     virtual int getArgumentCount() const = 0;
00053     virtual const std::string& getName() const;
00057     bool usesCPU() const;
00061     void setUsesCPU();
00065     const PslArgument* getArgument( int index ) const;
00069     const PslAttribute* getAttribute() const;
00073     const PslArgumentList getCallArguments() const;
00077     const PslArgumentList getReturnArguments() const;
00081     const PslArgument* getReturnStatusArgument() const;
00085     bool hasComRelayName() const;
00089     const std::string& getComRelayName() const;
00093     void setComRelayName( const std::string& name, const TokenLocation& target );
00094   protected:
00098     PslPredicateImpl( const PslAttribute* attribute, const std::string& name );
00102     Int2PslArgumentMap m_Arguments;
00103   private:
00107     const PslAttribute* m_Attribute;
00111     bool m_UsesCPU;
00115     std::string m_Name;
00119     std::string m_ComRelayName;
00123     TokenLocation m_TargetLocation;
00124   };
00125   
00126 }
00127 
00128 #endif //PSL_PREDICATE_IMPL_HEADER

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