#include <Rel.h>
Public Types | |
enum | for_use_in_switch { EQ_e, NE_e, LT_e, LE_e, GT_e, GE_e, ANY_e, NONE_e } |
Enumarators provided only for use inSwitch statement. More... | |
Public Member Functions | |
Rel () | |
DefaultCtor ANY. | |
Rel (const std::string &strval_r) | |
Ctor from string. | |
const std::string & | asString () const |
String representation of relational operator. | |
for_use_in_switch | inSwitch () const |
Enumarator provided for use in switch statement. | |
Static Public Attributes | |
Relational operators | |
These are the real relational operator contants to use. Don't mind that it's not an enum. See also: zypp::Rel::inSwitch | |
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 |
Private Member Functions | |
Rel (for_use_in_switch op_r) | |
Ctor to initialize the relational operator contants. | |
Private Attributes | |
for_use_in_switch | _op |
The operator. | |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &str, const Rel &obj) |
bool | operator== (const Rel &lhs, const Rel &rhs) |
bool | operator!= (const Rel &lhs, const Rel &rhs) |
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.
|
Enumarators provided only for use inSwitch statement.
|
|
DefaultCtor ANY.
|
|
Ctor from string.
Legal values for strval_r are: "==", "!=", "<", "<=", ">", ">=", Lower case names are accepted as well.
|
|
Ctor to initialize the relational operator contants.
|
|
String representation of relational operator.
Definition at line 77 of file Rel.cc. References ANY_e, EQ_e, GE_e, GT_e, LE_e, LT_e, NE_e, and NONE_e. Referenced by zypp::capability::VersionedCap::encode(), zypp::capability::HalCap::encode(), and operator<<(). |
|
Enumarator provided for use in
The sole reason for providing enum for_use_in_switch is, that we may want to use the relational operators in a Rel op; switch ( op.inSwitch() ) { case Rel::EQ_e: ... break; case Rel::NE_e: ... // No default! Let compiler warn if case is missing } Definition at line 107 of file Rel.h. References _op. Referenced by zypp::compareByRel(), zypp::CapFactory::Impl::isEditionSpec(), and operator==(). |
|
Stream output. Definition at line 121 of file Rel.h. References asString(). |
|
Definition at line 127 of file Rel.h. References inSwitch(). |
|
|
|
|
Definition at line 51 of file Rel.h. Referenced by zypp::NVRA::operator!=(), zypp::NVR::operator!=(), zypp::Edition::operator!=(), and zypp::range_detail::overlaps(). |
|
Definition at line 52 of file Rel.h. Referenced by zypp::NVRA::operator<(), zypp::NVR::operator<(), zypp::Edition::operator<(), and zypp::range_detail::overlaps(). |
|
Definition at line 53 of file Rel.h. Referenced by zypp::Edition::operator<=(), and zypp::range_detail::overlaps(). |
|
Definition at line 54 of file Rel.h. Referenced by zypp::Edition::operator>(), and zypp::range_detail::overlaps(). |
|
Definition at line 55 of file Rel.h. Referenced by zypp::Edition::operator>=(), and zypp::range_detail::overlaps(). |
|
|
Definition at line 57 of file Rel.h. Referenced by zypp::capability::CapabilityImpl::op(), zypp::operator==(), and zypp::range_detail::overlaps(). |
|
The operator.
Definition at line 116 of file Rel.h. Referenced by inSwitch(). |