jdl-api-cpp-3.4.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Ad.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_AD_H
21 #define GLITE_WMS_COMMON_REQUESTAD_AD_H
22 /*
23  * Ad.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 
28 
51 #include "classad_distribution.h"
52 
53 namespace glite {
54 namespace jdl {
55 
67 class Ad : protected classad::ClassAd{
68  public :
73  Ad() ;
76  virtual ~Ad() throw();
80  Ad(const classad::ClassAd& classAd );
84  Ad(const std::string& jdl_string) ;
85  Ad(const Ad& jobad);
87  virtual void operator=(const Ad& jobad);
88 
90 
96  void fromString(const std::string& jdl_string, std::string jdl_file= "") ;
100  void fromFile(const std::string& jdl_file) ;
105  void fromStream(std::istream& jdl_in) ;
109  virtual void fromClassAd(const classad::ClassAd& classAd);
111 
116  virtual std::string toString();
120  virtual std::string toString( const std::string& attr_name );
124  virtual std::string toLines();
127  bool isSet() ;
129  void clear();
131 
135  classad::ClassAd* const ad(){return static_cast<ClassAd*>(Copy());}
139  bool hasAttribute(const std::string& attr_name);
145  virtual classad::ExprTree* delAttribute(const std::string& attr_name) ;
150  void remAttribute(const std::string& attr_name) ;
155  virtual classad::ExprTree* lookUp(const std::string& attr_name){ return Lookup(attr_name);};
156 
159  bool hasAttribute(const std::string& attr_name, const std::string& attr_value);
164  std::vector<std::string> attributes() ;
171  void merge (Ad source, bool overwrite=true);
173 
175  enum {
178  TYPE_UNKNOWN = classad::Value::ERROR_VALUE,
181  TYPE_INTEGER =classad::Value::INTEGER_VALUE,
184  TYPE_BOOLEAN =classad::Value::BOOLEAN_VALUE,
187  TYPE_STRING =classad::Value::STRING_VALUE,
190  TYPE_REAL =classad::Value::REAL_VALUE,
193  TYPE_CLASSAD =classad::Value::CLASSAD_VALUE,
196  TYPE_EXPRESSION =classad::Value::UNDEFINED_VALUE
197  };
210  int getType (const std::string& attr_name ) ;
218  void addAttribute (const std::string& attr_name, int attr_value) ;
226  void addAttribute (const std::string& attr_name, double attr_value) ;
234  void addAttribute (const std::string& attr_name, bool attr_value) ;
243  void addAttribute (const std::string& attr_name, const std::string& attr_value);
252  void addAttribute (const std::string& attr_name, const char *attr_value){addAttribute(attr_name , std::string(attr_value));}
261  void addAttribute (const std::string& attr_name, Ad* attr_value);
268  virtual void setAttributeExpr (const std::string& attr_name, const std::string& attr_value);
275  virtual void setAttribute (const std::string& attr_name, int attr_value) ;
282  virtual void setAttribute (const std::string& attr_name, const std::string& attr_value) ;
289  virtual void setAttribute (const std::string& attr_name, const char *attr_value ) { setAttribute (attr_name , std::string(attr_value) ); }
296  virtual void setAttribute (const std::string& attr_name, double attr_value) ;
303  virtual void setAttribute (const std::string& attr_name, bool attr_value) ;
310  virtual void setAttribute (const std::string& attr_name, Ad* attr_value) ;
317  virtual void setAttributeExpr (const std::string& attr_name, classad::ExprTree* attr_value) ;
324  virtual std::string getAttributeExpr (const std::string& attr_name) ;
331  std::vector<int> getIntValue(const std::string& attr_name) ;
338  std::vector<double> getDoubleValue(const std::string& attr_name) ;
345  std::vector<bool> getBoolValue(const std::string& attr_name) ;
352  virtual std::vector<std::string> getStringValue(const std::string& attr_name) ;
359  std::vector<std::vector<std::string> > getStringList(const std::string& attr_name) ;
366  virtual Ad getAd(const std::string& attr_name);
373  virtual std::string getString(const std::string& attr_name) ;
380  virtual int getInt(const std::string& attr_name) ;
387  virtual double getDouble(const std::string& attr_name) ;
394  virtual bool getBool(const std::string& attr_name) ;
396 
404  bool hasWarnings();
411  std::vector<std::string> getWarnings();
418  void addWarning(const std::string &msg);
420  protected:
428  virtual void addAttribute(std::string attr_name , classad::Value val) ;
435  virtual void appendValue(classad::ExprTree* tree , const classad::Value& val, const std::string& attr_name) ;
441  virtual void insertAttribute(const std::string& attr_name , classad::ExprTree* val);
447  virtual void insertAttribute(const std::string& attr_name , classad::Value val);
453  virtual classad::Value getTypeValue(const std::string& attr_name);
458  bool hasAttribute( classad::ExprTree* tree , const std::string& attr_value);
460  std::vector<std::string> warning_messages_v ;
461 
462 };
463 /******************************************************************
464  method : glite_wms_jdl_toLower
465 return the input string as in lower case
466 *******************************************************************/
467 std::string glite_wms_jdl_toLower ( const std::string &src);
468 } // jdl namespace
469 } // glite namespace
470 
471 #endif
472 
473 //EOF
474 
Definition: Ad.h:187
virtual std::string getAttributeExpr(const std::string &attr_name)
Definition: Ad.h:184
std::vector< int > getIntValue(const std::string &attr_name)
virtual int getInt(const std::string &attr_name)
std::vector< std::vector< std::string > > getStringList(const std::string &attr_name)
virtual ~Ad()
void remAttribute(const std::string &attr_name)
virtual std::string getString(const std::string &attr_name)
virtual classad::ExprTree * delAttribute(const std::string &attr_name)
std::vector< bool > getBoolValue(const std::string &attr_name)
void fromStream(std::istream &jdl_in)
void addAttribute(const std::string &attr_name, const char *attr_value)
Definition: Ad.h:252
virtual void setAttributeExpr(const std::string &attr_name, const std::string &attr_value)
virtual void fromClassAd(const classad::ClassAd &classAd)
void fromString(const std::string &jdl_string, std::string jdl_file="")
std::vector< std::string > attributes()
void fromFile(const std::string &jdl_file)
std::vector< std::string > getWarnings()
Definition: Ad.h:67
int getType(const std::string &attr_name)
Definition: Ad.h:193
virtual void operator=(const Ad &jobad)
virtual classad::Value getTypeValue(const std::string &attr_name)
std::vector< std::string > warning_messages_v
Definition: Ad.h:460
virtual std::string toLines()
virtual classad::ExprTree * lookUp(const std::string &attr_name)
Definition: Ad.h:155
virtual double getDouble(const std::string &attr_name)
void addWarning(const std::string &msg)
bool hasWarnings()
bool hasAttribute(const std::string &attr_name)
virtual std::vector< std::string > getStringValue(const std::string &attr_name)
virtual std::string toString()
void merge(Ad source, bool overwrite=true)
void addAttribute(const std::string &attr_name, int attr_value)
virtual void setAttribute(const std::string &attr_name, const char *attr_value)
Definition: Ad.h:289
virtual Ad getAd(const std::string &attr_name)
Definition: Ad.h:178
virtual void setAttribute(const std::string &attr_name, int attr_value)
classad::ClassAd *const ad()
Definition: Ad.h:135
virtual void insertAttribute(const std::string &attr_name, classad::ExprTree *val)
Definition: Ad.h:190
std::string glite_wms_jdl_toLower(const std::string &src)
std::vector< double > getDoubleValue(const std::string &attr_name)
virtual void appendValue(classad::ExprTree *tree, const classad::Value &val, const std::string &attr_name)
virtual bool getBool(const std::string &attr_name)
Definition: Ad.h:181