jdl-api-cpp-3.4.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
adconverter.h
Go to the documentation of this file.
1 /*
2 Copyright (c) Members of the EGEE Collaboration. 2004.
3 See http://www.eu-egee.org/partners/ for details on the
4 copyright holders.
5 
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
9 
10  http://www.apache.org/licenses/LICENSE-2.0
11 
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
15 either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 */
19 
20 #ifndef GLITE_WMS_COMMON_REQUESTAD_ADCONVERTER_H
21 #define GLITE_WMS_COMMON_REQUESTAD_ADCONVERTER_H
22 /*
23  * AdConverter.h
24  * Copyright (c) 2001 The European Datagrid Project - IST programme, all rights reserved.
25  * Contributors are mentioned in the code where appropriate.
26  */
27 #include "Ad.h"
28 #include "DAGAd.h"
29 #include "collectionad.h"
30 #include "ExpDagAd.h"
31 #include "JdlAttributeList.h"
32 #include <classad_distribution.h>
33 namespace glite {
34 namespace jdl {
35 
41 struct NodeStruct {
42 
44  NodeStruct();
45 
47  NodeStruct(std::string* name);
48 
50  NodeStruct(const NodeStruct& node);
51 
53  ~NodeStruct();
54 
56  NodeStruct& operator=(const NodeStruct& node);
57 
59  std::string* name ;
60 
62  std::vector< NodeStruct* > childrenNodes ;
63 
64 private:
65 
69  void flushMemory(void);
70 };
71 
72 
85 class AdConverter {
86 public:
91  enum jobtype {
92  /*** Normal Jobs */
94  /*** Parametric Jobs */
96  /*** Interactive Jobs */
98  /*** Mpi Jobs */
100  /*** PArtitionable Jobs */
102  /*** Checkpointable Jobs */
104  };
111  enum attribute {
112  /*** InputSandbox */
114  /*** InputData */
116  /*** Arguments */
118  };
119 
132  static JobAd* createJobTemplate (int type, const std::string &executable, const std::string &arguments,
133  const std::string &requirements, const std::string &rank, const std::string &vo="" ) ;
142  static JobAd* createStringParametricTemplate(std::vector<std::string> parametrised, std::vector<std::string> parameters,
143  const std::string &requirements, const std::string &rank, const std::string &vo="");
144  // DEPRECATED
145  static JobAd* createStringParametricTemplate(int parametrised ,std::vector<std::string> parameters ,
146  const std::string &requirements, const std::string &rank , const std::string &vo="" ) ;
156  static JobAd* createIntParametricTemplate(std::vector<std::string> parametrised, int param_number, int param_start,
157  int param_step, const std::string &requirements, const std::string &rank,
158  const std::string &vo="");
159  // DEPRECATED
160  static JobAd* createIntParametricTemplate(int parametrised, int param_number, int param_start, int param_step,
161  const std::string &requirements, const std::string &rank, const std::string &vo="");
170  static ExpDagAd* createDAGTemplate(NodeStruct dependencies, const std::string &requirements, const std::string &rank,
171  const std::string &vo="");
180  static CollectionAd* createCollectionTemplate (unsigned int jobNumber,const std::string &requirements, const std::string &rank,
181  const std::string &vo="") ;
188  static CollectionAd* createCollectionFromPath ( const std::string &path, const std::string &vo="");
196  static Ad* createDagAdFromPath (const std::string &path, const std::string &vo="");
204  static ExpDagAd* createDagAdFromPath (NodeStruct dependencies, const std::string &path, const std::string &vo="");
206 
213  static ExpDagAd* part2dag ( const std::string &jdl ) ;
219  static ExpDagAd* part2dag ( Ad* ad ) ;
225  static ExpDagAd* collection2dag ( const std::string &jdl ) ;
231  static ExpDagAd* collection2dag ( Ad* ad ) ;
238  static ExpDagAd* bulk2dag (const std::string &jdl, unsigned int maxCycles=0) ;
245  static ExpDagAd* bulk2dag (Ad* ad, unsigned int maxCycles_i=0) ;
247 
250  static const std::string VALUES ;
251  static const std::string VALUE ;
252  static const std::string NODE ;
253  static const std::string SIMPLE_NODE_TYPE;
254  static const std::string PARAMETRIC_PARAMETERS ;
255  static const std::string PARAMETRIC_START;
256  static const std::string PARAMETRIC_STEP ;
257  static const std::string PARAMETER_VALUE ;
258 }; // end AdConverter class
259 } // jdl namespace
260 } // glite namespace
261 
262 #endif
263 //EOF
Provides a representation of collection (bunch) of jobs.
Definition: collectionad.h:41
Provides a representation of the job description in the JDL language.
Definition: ExpDagAd.h:84
std::string * name
Definition: adconverter.h:59
static const std::string PARAMETRIC_START
Definition: adconverter.h:255
static const std::string PARAMETRIC_STEP
Definition: adconverter.h:256
Definition: Ad.h:67
utilities for converting classad expression into requestad known classes and to create JobAd/ExpDagAd...
Definition: adconverter.h:85
static ExpDagAd * createDAGTemplate(NodeStruct dependencies, const std::string &requirements, const std::string &rank, const std::string &vo="")
static const std::string PARAMETER_VALUE
Definition: adconverter.h:257
static JobAd * createIntParametricTemplate(std::vector< std::string > parametrised, int param_number, int param_start, int param_step, const std::string &requirements, const std::string &rank, const std::string &vo="")
static ExpDagAd * collection2dag(const std::string &jdl)
static ExpDagAd * part2dag(const std::string &jdl)
static CollectionAd * createCollectionTemplate(unsigned int jobNumber, const std::string &requirements, const std::string &rank, const std::string &vo="")
Provides a representation of the job description in the JDL language.
Definition: JobAd.h:55
attribute
Definition: adconverter.h:111
static const std::string NODE
Definition: adconverter.h:252
static const std::string SIMPLE_NODE_TYPE
Definition: adconverter.h:253
jobtype
Definition: adconverter.h:91
std::vector< NodeStruct * > childrenNodes
Definition: adconverter.h:62
static ExpDagAd * bulk2dag(const std::string &jdl, unsigned int maxCycles=0)
NodeStruct & operator=(const NodeStruct &node)
static const std::string VALUE
Definition: adconverter.h:251
static const std::string VALUES
Definition: adconverter.h:250
Definition: adconverter.h:41
static JobAd * createStringParametricTemplate(std::vector< std::string > parametrised, std::vector< std::string > parameters, const std::string &requirements, const std::string &rank, const std::string &vo="")
static CollectionAd * createCollectionFromPath(const std::string &path, const std::string &vo="")
static Ad * createDagAdFromPath(const std::string &path, const std::string &vo="")
static const std::string PARAMETRIC_PARAMETERS
Definition: adconverter.h:254
static JobAd * createJobTemplate(int type, const std::string &executable, const std::string &arguments, const std::string &requirements, const std::string &rank, const std::string &vo="")