1 #ifndef __ARC_SOFTWAREVERSION_H__ 2 #define __ARC_SOFTWAREVERSION_H__ 13 #include <arc/Logger.h> 17 class ApplicationEnvironment;
58 Software() : family(
""), name(
""), version(
"") {};
73 Software(
const std::string& name_version);
83 Software(
const std::string& name,
const std::string& version);
94 Software(
const std::string& family,
const std::string& name,
const std::string& version);
131 bool empty()
const {
return name.empty(); }
145 version == sw.version; }
267 const std::string&
getName()
const {
return name; }
274 const std::list<std::string>& getOptions()
const {
return option; }
276 void addOption(
const std::string& opt) { option.push_back(opt); }
278 void addOptions(
const std::list<std::string>& opts) { option.insert(option.end(),opts.begin(),opts.end()); }
302 std::list<std::string> tokenizedVersion;
303 std::list<std::string> option;
411 bool isSatisfied(
const std::list<Software>& swList)
const {
return isSatisfiedSelect(swList); }
426 bool isSatisfied(
const std::list<ApplicationEnvironment>& swList)
const;
484 bool selectSoftware(
const std::list<ApplicationEnvironment>& swList);
513 bool empty()
const {
return softwareList.empty(); }
519 void clear() { softwareList.clear(); comparisonOperatorList.clear(); }
539 std::list<Software> softwareList;
540 std::list<Software::ComparisonOperatorEnum> comparisonOperatorList;
548 #endif // __ARC_SOFTWAREVERSION_H__ Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
static ComparisonOperator convert(const ComparisonOperatorEnum &co)
Convert a ComparisonOperatorEnum value to a comparison method pointer.
const std::string & getVersion() const
Get version.
Definition: Software.h:272
bool operator<=(const Software &sw) const
Less-than or equal operator.
Definition: Software.h:225
Class used to express and resolve version requirements on software.
Definition: Software.h:327
bool isResolved() const
Indicates whether requirements have been resolved or not.
bool isSatisfied(const Software &sw) const
Test if requirements are satisfied.
Definition: Software.h:392
bool operator!=(const Software &sw) const
Inequality operator.
Definition: Software.h:155
std::string operator()() const
Get string representation.
Definition: Software.h:104
static const std::string VERSIONTOKENS
Tokens used to split version string.
Definition: Software.h:296
bool operator>=(const Software &sw) const
Greater-than or equal operator.
Definition: Software.h:212
bool operator==(const Software &sw) const
Equality operator.
Definition: Software.h:143
void clear()
Clear the object.
Definition: Software.h:519
A logger class.
Definition: Logger.h:493
ComparisonOperatorEnum
Comparison operator enum.
Definition: Software.h:103
bool operator<(const Software &sw) const
Less-than operator.
Definition: Software.h:199
SoftwareRequirement()
Create a empty SoftwareRequirement object.
Definition: Software.h:334
Software()
Dummy constructor.
Definition: Software.h:58
Definition: Software.h:106
Definition: Software.h:105
SoftwareRequirement(const SoftwareRequirement &sr)
Copy constructor.
Definition: Software.h:365
SoftwareRequirement & operator=(const SoftwareRequirement &sr)
Assignment operator.
void add(const Software &sw, Software::ComparisonOperatorEnum co)
Add a Software object a corresponding comparion operator to this object.
bool selectSoftware(const Software &sw)
Select software.
Definition: Software.h:444
bool(Software::* ComparisonOperator)(const Software &) const
Definition of a comparison operator method pointer.
Definition: Software.h:52
bool operator>(const Software &sw) const
Greater-than operator.
bool empty() const
Indicates whether the object is empty.
Definition: Software.h:131
const std::list< Software > & getSoftwareList() const
Get list of Software objects.
Definition: Software.h:528
const std::string & getFamily() const
Get family.
Definition: Software.h:262
Definition: Software.h:109
const std::string & getName() const
Get name.
Definition: Software.h:267
Definition: Software.h:107
bool isSatisfied(const std::list< Software > &swList) const
Test if requirements are satisfied.
Definition: Software.h:411
friend std::ostream & operator<<(std::ostream &out, const Software &sw)
Write Software string representation to a std::ostream.
Definition: Software.h:237
Definition: Software.h:108
static std::string toString(ComparisonOperatorEnum co)
Convert Software::ComparisonOperator to a string.
bool empty() const
Test if the object is empty.
Definition: Software.h:513
Used to represent software (names and version) and comparison.
Definition: Software.h:38
const std::list< Software::ComparisonOperatorEnum > & getComparisonOperatorList() const
Get list of comparison operators.
Definition: Software.h:536