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/Modules/PLASMA/PlanServer/Includes/PlasmaFactory.hh

Go to the documentation of this file.
00001 // -*- Mode: C++ -*-
00002 //      CVS: $Id: PlasmaFactory.hh,v 1.11 2005/12/30 22:42:29 rijsman Exp $
00003 //      Tag: $name$
00004 //     Info: $CVSROOT/IDEA-DEV/COPYRIGHT
00005 
00006 #ifndef PLASMA_FACTORY_HEADER_
00007 #define PLASMA_FACTORY_HEADER_
00008 
00009 #include "PslFactory.hh"
00010 
00011 #include "PlanDatabase.hh"
00012 #include "ConstrainedVariable.hh"
00013 
00019 #define PLASMA_FACTORY "EUROPA2"
00020 
00021 namespace IDEA
00022 {
00030   class PlasmaFactory:
00031     public PslModelManagerFactory
00032   {
00033   public:
00034     PlasmaFactory();
00035 
00036     PslArgumentImpl* createArgumentImpl( const PslPredicate* predicate, 
00037                                          const PslDomain* domain, 
00038                                          int index, 
00039                                          const PslArgumentType& aType, 
00040                                          const PslSelectorType& mType, 
00041                                          const std::string& name ) const;
00042 
00043     
00044     PslLabelSetImpl* createLabelSetImpl(  const std::string& name, 
00045                                           const StringSet& values ) const;
00046 
00047     PslObjectClassImpl* createObjectClassImpl( const std::string& objectClassName ) const;
00048 
00049     PslAttributeImpl* createAttributeImpl( const std::string& name ) const;
00050 
00051     PslConstraintImpl* createTimeConstraintImpl( const PslToken* token,
00052                                                  int authority ) const;
00053 
00054     PslConstraintImpl* createReturnFlagReceivedConstraintImpl( const PslParameter* parameter,
00055                                                                int authority ) const;
00056 
00057     PslConstraintImpl* createObservedConstraintImpl( const PslParameter* parameter,
00058                                                      int authority ) const;
00059 
00060     PslConstraintImpl* createEndTimeConstraintImpl( const PslToken* token,
00061                                                     const Time& time,
00062                                                     int authority ) const;
00063 
00064     PslConstraintImpl* createStartTimeConstraintImpl( const PslToken* token,
00065                                                       const Time& time,
00066                                                       int authority ) const;
00067 
00068     PslConstraintImpl* createUnaryConstraintImpl( const EUROPA::PlanDatabaseId& db,
00069                                                   const EUROPA::ConstrainedVariableId& variable,
00070                                                   int value,
00071                                                   int authority ) const;
00072 
00073 
00074     PslDatabaseImpl* createDatabaseImpl( const PslModelManager* modelManager, 
00075                                          const std::string& agentName,
00076                                          const std::string& name ) const;
00077 
00078     PslInitialStateLoaderImpl* createInitialStateLoaderImpl() const;
00079 
00080     PslModelManagerImpl* createModelManagerImpl() const;
00081 
00082     PslObjectImpl* createObjectImpl( const PslDatabase* database,
00083                                      const PslObjectClass* objectClass,
00084                                      const std::string& name ) const;
00085 
00086     PslPredicateImpl* createPredicateImpl( const PslAttribute* attribute, 
00087                                            const std::string& name ) const;
00088 
00089 
00090     PslTimelineImpl* createTimelineImpl( const PslDatabase* database, 
00091                                          const PslObject* object, 
00092                                          const PslAttribute* attribute ) const;
00093 
00094     EUROPA::TokenId createEuropaToken( const PslDatabase* database, 
00095                                        const PslTimeline* timeline,
00096                                        const PslPredicate* predicate,
00097                                        const Time& earliestStart,
00098                                        const Time& latestStart,
00099                                        const Time& earliestEnd,
00100                                        const Time& latestEnd ) const;
00101 
00102     PslTokenImpl* createTokenImpl( const PslDatabase* database, 
00103                                    const PslTimeline* timeline,
00104                                    const PslPredicate* predicate,
00105                                    const Time& earliestStart,
00106                                    const Time& latestStart,
00107                                    const Time& earliestEnd,
00108                                    const Time& latestEnd,
00109                                    unsigned int externalTokenId, 
00110                                    const TokenLocation& source,
00111                                    const std::string& comRelayName) const;
00112 
00113     PslVariableImpl* createVariableImpl( const PslVariable* ) const;
00114 
00115     PslVariableImpl* createObjectVariableImpl( const PslDatabase* database,
00116                                                const std::set< PslObject* >& objects,
00117                                                const std::string& name ) const;
00118     
00119     PslVariableImpl* createTimelineVariableImpl( const PslDatabase* database,
00120                                                  const std::set< PslTimeline* >& timelines,
00121                                                  const std::string& name ) const;
00122 
00123     PslNumericLimitsImpl* createPslNumericLimitsImpl() const;
00124 
00125     PslVariableImpl* createEnumeratedLabelVariableImpl( const PslDatabase* db,
00126                                                         const std::set<std::string>& values, 
00127                                                         const std::string& name ) const;
00128   protected:
00129 
00130     PslVariableImpl* createFullIntVariableImpl( const PslDatabase* db,
00131                                                 const std::string& name ) const;
00132 
00133     PslVariableImpl* createSingletonIntVariableImpl( const PslDatabase* db,
00134                                                      const int&, 
00135                                                      const std::string& name ) const;
00136 
00137     PslVariableImpl* createIntervalIntVariableImpl( const PslDatabase* db, 
00138                                                     int min, 
00139                                                     int max, 
00140                                                     const std::string& name ) const;
00141 
00142     PslVariableImpl* createEnumeratedIntVariableImpl( const PslDatabase* db,
00143                                                       const std::set<int>&, 
00144                                                       const std::string& name ) const;
00145 
00146     PslVariableImpl* createFullDoubleVariableImpl( const PslDatabase* db,
00147                                                    const std::string& name ) const;
00148 
00149     PslVariableImpl* createSingletonDoubleVariableImpl( const PslDatabase* db,
00150                                                         const double&, 
00151                                                         const std::string& name ) const;
00152 
00153     PslVariableImpl* createIntervalDoubleVariableImpl( const PslDatabase* db, 
00154                                                        double min, 
00155                                                        double max, 
00156                                                        const std::string& name ) const;
00157 
00158     PslVariableImpl* createEnumeratedDoubleVariableImpl( const PslDatabase* db,
00159                                                          const std::set<double> &, 
00160                                                          const std::string& name ) const;
00161 
00162     PslVariableImpl* createFullBoolVariableImpl( const PslDatabase* db,
00163                                                  const std::string& name ) const;
00164 
00165     PslVariableImpl* createSingletonBoolVariableImpl( const PslDatabase* db,
00166                                                       const bool& datum, 
00167                                                       const std::string& name ) const;
00168 
00169     PslVariableImpl* createIntervalBoolVariableImpl( const PslDatabase* db, 
00170                                                      bool min, 
00171                                                      bool max, 
00172                                                      const std::string& name ) const;
00173 
00174     PslVariableImpl* createEnumeratedBoolVariableImpl( const PslDatabase* db,
00175                                                        const std::set<bool>&, 
00176                                                        const std::string& name ) const;
00177 
00178     PslVariableImpl* createSingletonObjectVariableImpl( const PslDatabase* db,
00179                                                         const PslObject &, 
00180                                                         const std::string& name ) const;
00181 
00182     PslVariableImpl* createEnumeratedObjectVariableImpl( const PslDatabase* db,
00183                                                          const std::set<PslObject>&, 
00184                                                          const std::string& name ) const;
00185   };
00186 }
00187 
00188 #endif // PLASMA_FACTORY_HEADER_

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