classad.h | classad.h | |||
---|---|---|---|---|
skipping to change at line 48 | skipping to change at line 48 | |||
#ifdef WIN32 | #ifdef WIN32 | |||
typedef classad_hash_map<std::string, ExprTree*, StringCaseIgnHash> AttrLis t; | typedef classad_hash_map<std::string, ExprTree*, StringCaseIgnHash> AttrLis t; | |||
#else | #else | |||
typedef classad_hash_map<std::string, ExprTree*, StringCaseIgnHash, CaseIgn EqStr> AttrList; | typedef classad_hash_map<std::string, ExprTree*, StringCaseIgnHash, CaseIgn EqStr> AttrList; | |||
#endif | #endif | |||
typedef std::set<std::string, CaseIgnLTStr> DirtyAttrList; | typedef std::set<std::string, CaseIgnLTStr> DirtyAttrList; | |||
void ClassAdLibraryVersion(int &major, int &minor, int &patch); | void ClassAdLibraryVersion(int &major, int &minor, int &patch); | |||
void ClassAdLibraryVersion(std::string &version_string); | void ClassAdLibraryVersion(std::string &version_string); | |||
// This flag is only meant for use in Condor, which is transitioning | ||||
// from an older version of ClassAds with slightly different evaluation | ||||
// semantics. It will be removed without warning in a future release. | ||||
extern bool _useOldClassAdSemantics; | ||||
/// The ClassAd object represents a parsed %ClassAd. | /// The ClassAd object represents a parsed %ClassAd. | |||
class ClassAd : public ExprTree | class ClassAd : public ExprTree | |||
{ | { | |||
/** \mainpage C++ ClassAd API Documentation | /** \mainpage C++ ClassAd API Documentation | |||
* Welcome to the C++ ClassAd API Documentation. | * Welcome to the C++ ClassAd API Documentation. | |||
* Use the links at the top to navigate. A good link to start with | * Use the links at the top to navigate. A good link to start with | |||
* is the "Class List" link. | * is the "Class List" link. | |||
* | * | |||
* If you are unfamiliar with the ClassAd library, look at the | * If you are unfamiliar with the ClassAd library, look at the | |||
* sample.C file that comes with the ClassAd library. Also check | * sample.C file that comes with the ClassAd library. Also check | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 5 lines changed or added | |||
common.h | common.h | |||
---|---|---|---|---|
skipping to change at line 115 | skipping to change at line 115 | |||
#include "classad/debug.h" | #include "classad/debug.h" | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
#include <string> | #include <string> | |||
#endif | #endif | |||
#include <cstring> | #include <cstring> | |||
#include <string.h> | #include <string.h> | |||
BEGIN_NAMESPACE( classad ) | BEGIN_NAMESPACE( classad ) | |||
static const char ATTR_AD [] = "A | extern const char * const ATTR_AD; | |||
d"; | extern const char * const ATTR_CONTEXT; | |||
static const char ATTR_CONTEXT [] = "Context"; | extern const char * const ATTR_DEEP_MODS; | |||
static const char ATTR_DEEP_MODS [] = "DeepMods" | extern const char * const ATTR_DELETE_AD; | |||
; | extern const char * const ATTR_DELETES; | |||
static const char ATTR_DELETE_AD [] = "DeleteAd" | extern const char * const ATTR_KEY; | |||
; | extern const char * const ATTR_NEW_AD; | |||
static const char ATTR_DELETES [] = "Deletes"; | extern const char * const ATTR_OP_TYPE; | |||
static const char ATTR_KEY [] = "K | extern const char * const ATTR_PARENT_VIEW_NAME; | |||
ey"; | extern const char * const ATTR_PARTITION_EXPRS; | |||
static const char ATTR_NEW_AD [] = "NewAd"; | extern const char * const ATTR_PARTITIONED_VIEWS; | |||
static const char ATTR_OP_TYPE [] = "OpType"; | extern const char * const ATTR_PROJECT_THROUGH; | |||
static const char ATTR_PARENT_VIEW_NAME [] = "ParentVie | extern const char * const ATTR_RANK_HINTS; | |||
wName"; | extern const char * const ATTR_REPLACE; | |||
static const char ATTR_PARTITION_EXPRS [] = "PartitionExpr | extern const char * const ATTR_SUBORDINATE_VIEWS; | |||
s"; | extern const char * const ATTR_UPDATES; | |||
static const char ATTR_PARTITIONED_VIEWS [] = "PartitionedViews" | extern const char * const ATTR_WANT_LIST; | |||
; | extern const char * const ATTR_WANT_PRELUDE; | |||
static const char ATTR_PROJECT_THROUGH [] = "ProjectThrough"; | extern const char * const ATTR_WANT_RESULTS; | |||
static const char ATTR_RANK_HINTS [] = "RankHints | extern const char * const ATTR_WANT_POSTLUDE; | |||
"; | extern const char * const ATTR_VIEW_INFO; | |||
static const char ATTR_REPLACE [] = "Replace"; | extern const char * const ATTR_VIEW_NAME; | |||
static const char ATTR_SUBORDINATE_VIEWS [] = "SubordinateViews" | extern const char * const ATTR_XACTION_NAME; | |||
; | ||||
static const char ATTR_UPDATES [] = "Updates"; | ||||
static const char ATTR_WANT_LIST [] = "WantList" | ||||
; | ||||
static const char ATTR_WANT_PRELUDE [] = "WantPrelu | ||||
de"; | ||||
static const char ATTR_WANT_RESULTS [] = "WantResul | ||||
ts"; | ||||
static const char ATTR_WANT_POSTLUDE [] = "WantPostlude"; | ||||
static const char ATTR_VIEW_INFO [] = "ViewInfo" | ||||
; | ||||
static const char ATTR_VIEW_NAME [] = "ViewName" | ||||
; | ||||
static const char ATTR_XACTION_NAME [] = "XactionNa | ||||
me"; | ||||
static const char ATTR_REQUIREMENTS [] = "Requireme | extern const char * const ATTR_REQUIREMENTS; | |||
nts"; | extern const char * const ATTR_RANK; | |||
static const char ATTR_RANK [] = "R | ||||
ank"; | ||||
#if defined(__cplusplus) | #if defined(__cplusplus) | |||
struct CaseIgnLTStr { | struct CaseIgnLTStr { | |||
bool operator( )( const std::string &s1, const std::string &s2 ) const { | bool operator( )( const std::string &s1, const std::string &s2 ) const { | |||
return( strcasecmp( s1.c_str( ), s2.c_str( ) ) < 0 ); | return( strcasecmp( s1.c_str( ), s2.c_str( ) ) < 0 ); | |||
} | } | |||
}; | }; | |||
struct CaseIgnEqStr { | struct CaseIgnEqStr { | |||
bool operator( )( const std::string &s1, const std::string &s2 ) con st { | bool operator( )( const std::string &s1, const std::string &s2 ) con st { | |||
skipping to change at line 198 | skipping to change at line 198 | |||
// not equal-to. | // not equal-to. | |||
bool operator( )( const std::string &s1, const std::string &s2 ) con st { | bool operator( )( const std::string &s1, const std::string &s2 ) con st { | |||
return( strcasecmp( s1.c_str( ), s2.c_str( ) ) < 0 ); | return( strcasecmp( s1.c_str( ), s2.c_str( ) ) < 0 ); | |||
} | } | |||
#endif | #endif | |||
}; | }; | |||
extern std::string CondorErrMsg; | extern std::string CondorErrMsg; | |||
#endif | #endif | |||
extern int CondorErrno; | extern int CondorErrno; | |||
static const std::string NULL_XACTION = ""; | ||||
END_NAMESPACE // classad | END_NAMESPACE // classad | |||
char* strnewp( const char* ); | char* strnewp( const char* ); | |||
#include "classad/classadErrno.h" | #include "classad/classadErrno.h" | |||
#endif//__COMMON_H__ | #endif//__COMMON_H__ | |||
End of changes. 3 change blocks. | ||||
43 lines changed or deleted | 25 lines changed or added | |||
exprTree.h | exprTree.h | |||
---|---|---|---|---|
skipping to change at line 44 | skipping to change at line 44 | |||
class EvalState { | class EvalState { | |||
public: | public: | |||
EvalState( ); | EvalState( ); | |||
~EvalState( ); | ~EvalState( ); | |||
void SetRootScope( ); | void SetRootScope( ); | |||
void SetScopes( const ClassAd* ); | void SetScopes( const ClassAd* ); | |||
int depth_remaining; // max recursion depth - current depth | int depth_remaining; // max recursion depth - current depth | |||
ClassAd *rootAd; | const ClassAd *rootAd; | |||
ClassAd *curAd; | const ClassAd *curAd; | |||
bool flattenAndInline; // NAC | bool flattenAndInline; // NAC | |||
// Cache_to_free are the things in the cache that must be | // Cache_to_free are the things in the cache that must be | |||
// freed when this gets deleted. The problem is that we put | // freed when this gets deleted. The problem is that we put | |||
// two kinds of things into the cache: some that must be | // two kinds of things into the cache: some that must be | |||
// freed, and some that must not be freed. We keep track of | // freed, and some that must not be freed. We keep track of | |||
// the ones that must be freed separately. Memory managment | // the ones that must be freed separately. Memory managment | |||
// is a pain! We should all use languages that do memory | // is a pain! We should all use languages that do memory | |||
// management for you. | // management for you. | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
value.h | value.h | |||
---|---|---|---|---|
skipping to change at line 157 | skipping to change at line 157 | |||
/** Checks if the value is boolean. | /** Checks if the value is boolean. | |||
@param b The boolean value if the value is boolean. | @param b The boolean value if the value is boolean. | |||
@return true iff the value is boolean. | @return true iff the value is boolean. | |||
*/ | */ | |||
inline bool IsBooleanValue(bool& b) const; | inline bool IsBooleanValue(bool& b) const; | |||
/** Checks if the value is boolean. | /** Checks if the value is boolean. | |||
@return true iff the value is boolean. | @return true iff the value is boolean. | |||
*/ | */ | |||
inline bool IsBooleanValue() const; | inline bool IsBooleanValue() const; | |||
/** Checks if the value is boolean or something considered | ||||
equivalent by implicit conversion (e.g. a number), i | ||||
f | ||||
old ClassAd evaluation semantics are being used. If | ||||
they're | ||||
not being used, this method behaves like IsBooleanVa | ||||
lue(). | ||||
@param b The boolean value if return is true. | ||||
@return true iff the value is boolean or equivalent | ||||
*/ | ||||
bool IsBooleanValueEquiv(bool &b) const; | ||||
/** Checks if the value is integral. | /** Checks if the value is integral. | |||
@param i The integer value if the value is integer. | @param i The integer value if the value is integer. | |||
@return true iff the value is an integer. | @return true iff the value is an integer. | |||
*/ | */ | |||
inline bool IsIntegerValue(int &i) const; | inline bool IsIntegerValue(int &i) const; | |||
/** Checks if the value is integral. | /** Checks if the value is integral. | |||
@return true iff the value is an integer. | @return true iff the value is an integer. | |||
*/ | */ | |||
inline bool IsIntegerValue() const; | inline bool IsIntegerValue() const; | |||
/** Checks if the value is real. | /** Checks if the value is real. | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 13 lines changed or added | |||