|
These are the real relational operator contants to use.
Don't mind that it's not an enum. See also: zypp::Rel::inSwitch
|
enum | for_use_in_switch {
NONE_e = 0U
, GT_e = 1U
, EQ_e = 2U
, LT_e = 4U
,
GE_e = GT_e|EQ_e
, LE_e = LT_e|EQ_e
, NE_e = GT_e|LT_e
, ANY_e = GT_e|EQ_e|LT_e
} |
| Enumarators provided only for use inSwitch statement. More...
|
|
static const Rel | EQ |
|
static const Rel | NE |
|
static const Rel | LT |
|
static const Rel | LE |
|
static const Rel | GT |
|
static const Rel | GE |
|
static const Rel | ANY |
|
static const Rel | NONE |
|
for_use_in_switch | _op |
| The operator.
|
|
| Rel () |
| DefaultCtor ANY.
|
|
| Rel (const std::string &strval_r) |
| Ctor from string.
|
|
| Rel (const std::string &strval_r, const Rel &default_r) |
| Ctor from string (non-throwing).
|
|
bool | parseFrom (const std::string &strval_r) |
| Assign from string IFF it contains a legal value.
|
|
| Rel (unsigned bits_r) |
| Ctor from bits.
|
|
const std::string & | asString () const |
| String representation of relational operator.
|
|
const char * | c_str () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|
for_use_in_switch | inSwitch () const |
| Enumarator provided for use in switch statement.
|
|
unsigned | bits () const |
| Enumarator values suitable for libsolv.
|
|
static bool | isRel (unsigned bits_r) |
| Test whether bits_r is a valid Rel (no extra bits set).
|
|
| Rel (for_use_in_switch op_r) |
| Ctor to initialize the relational operator contants.
|
|
Relational operators.
Yes, it could as well be simply an enum
.
Yes, you can use the relational operators as if it was an enum
.
Except for use in a switch
statement; see inSwitch for this.
But we want to construct them from a string representation, as well as providing one. And this way they are wrapped into a namespace, which is a good idea anyway.
ANY and NONE are somewhat special. ANY is the operator created by the default ctor, and it should always resolve to true
. This may be handy in queries when you're looking for a Resolvable in ANY
Edition if no operator was specified. While NONE should always resolve to false
.
Definition at line 43 of file Rel.h.
zypp::Rel::Rel |
( |
const std::string & |
strval_r | ) |
|
|
explicit |
Ctor from string.
Legal values for strval_r are: "="/"==", "!=", "<", "<=", ">", ">=",
as well as "EQ", "NE", "LT", "LE", "GT", "GE", "ANY", "NONE"
and "" (empty string resolves to ANY).
Lower case names are accepted as well.
- Exceptions
-
PARSE | if strval_r is not legal. |
- Todo:
- refine exceptions and check throw.
Definition at line 81 of file Rel.cc.