LDAPFilter¶
-
std::ostream &
cppmicroservices::operator<<(std::ostream &os, const LDAPFilter &filter)¶ Streams the string representation of
filterinto the streamosvia LDAPFilter::ToString().
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator==(const std::string &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator==(bool b) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator==(const T &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator!=(const std::string &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator!=(const T &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator>=(const std::string &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator>=(const T &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator<=(const std::string &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::operator<=(const T &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::Approx(const std::string &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::Approx(const T &s) const¶
-
cppmicroservices::LDAPPropExpr
operator&&(const cppmicroservices::LDAPPropExpr &left, const cppmicroservices::LDAPPropExpr &right)¶ LDAP logical and ‘&’.
- Return
- A LDAP expression
- Parameters
left: A LDAP expression.right: A LDAP expression.
-
cppmicroservices::LDAPPropExpr
operator||(const cppmicroservices::LDAPPropExpr &left, const cppmicroservices::LDAPPropExpr &right)¶ LDAP logical or ‘|’.
- Return
- A LDAP expression
- Parameters
left: A LDAP expression.right: A LDAP expression.
-
class
cppmicroservices::LDAPFilter¶ - #include <cppmicroservices/LDAPFilter.h>
An RFC 1960-based Filter.
A
LDAPFiltercan be used numerous times to determine if the match argument matches the filter string that was used to create theLDAPFilter.Some examples of LDAP filters are:
- “(cn=Babs Jensen)”
- “(!(cn=Tim Howes))”
- “(&(” + Constants::OBJECTCLASS + “=Person)(|(sn=Jensen)(cn=Babs J*)))”
- “(o=univ*of*mich*)”
- Remark
- This class is thread safe.
- See
- LDAPProp for a fluent API generating LDAP filter strings
Public Functions
-
LDAPFilter()¶ Creates a valid
LDAPFilterobject that matches nothing.
-
LDAPFilter(const std::string &filter)¶ Creates a
LDAPFilterobject encapsulating the filter string.This
LDAPFilterobject may be used to match aServiceReferenceobject or aServicePropertiesobject.If the filter cannot be parsed, an std::invalid_argument will be thrown with a human readable message where the filter became unparsable.
- See
- “Framework specification for a description of the filter string syntax.” TODO!
- Parameters
filter: The filter string.
- Exceptions
std::invalid_argument: Iffiltercontains an invalid filter string that cannot be parsed.
-
LDAPFilter(const LDAPFilter &other)¶
-
~LDAPFilter()¶
-
operator bool() const¶
-
bool
Match(const ServiceReferenceBase &reference) const¶ Filter using a service’s properties.
This
LDAPFilteris executed using the keys and values of the referenced service’s properties. The keys are looked up in a case insensitive manner.- Return
trueif the service’s properties match thisLDAPFilterfalseotherwise.- Parameters
reference: The reference to the service whose properties are used in the match.
-
bool
Match(const Bundle &bundle) const¶ Filter using a bundle’s manifest headers.
This
LDAPFilteris executed using the keys and values of the bundle’s manifest headers. The keys are looked up in a case insensitive manner.- Return
trueif the bundle’s manifest headers match thisLDAPFilterfalseotherwise.- Parameters
bundle: The bundle whose manifest’s headers are used in the match.
- Exceptions
std::runtime_error: If the number of keys of the bundle’s manifest headers exceeds the value returned by std::numeric_limits<int>::max().
-
bool
Match(const AnyMap &dictionary) const¶ Filter using a
AnyMapobject with case insensitive key lookup.This
LDAPFilteris executed using the specifiedAnyMap‘s keys and values. The keys are looked up in a case insensitive manner.- Return
trueif theAnyMap‘s values match this filter;falseotherwise.- Parameters
dictionary: TheAnyMapwhose key/value pairs are used in the match.
- Exceptions
std::runtime_error: If the number of keys in thedictionaryexceeds the value returned by std::numeric_limits<int>::max().std::runtime_error: If thedictionarycontains case variants of the same key name.
-
bool
MatchCase(const AnyMap &dictionary) const¶ Filter using a
AnyMap.This
LDAPFilteris executed using the specifiedAnyMap‘s keys and values. The keys are looked up in a normal manner respecting case.- Return
trueif theAnyMap‘s values match this filter;falseotherwise.- Parameters
dictionary: TheAnyMapwhose key/value pairs are used in the match.
- Exceptions
std::runtime_error: If the number of keys in thedictionaryexceeds the value returned by std::numeric_limits<int>::max().std::runtime_error: If thedictionarycontains case variants of the same key name.
-
std::string
ToString() const¶ Returns this
LDAPFilter‘s filter string.The filter string is normalized by removing whitespace which does not affect the meaning of the filter.
- Return
- This
LDAPFilter‘s filter string.
-
bool
operator==(const LDAPFilter &other) const¶ Compares this
LDAPFilterto anotherLDAPFilter.This implementation returns the result of calling
this->ToString() == other.ToString().- Return
- Returns the result of calling
this->ToString() == other.ToString(). - Parameters
other: The object to compare against thisLDAPFilter.
-
LDAPFilter &
operator=(const LDAPFilter &filter)¶
Protected Attributes
-
std::shared_ptr<LDAPFilterData>
d¶
-
class
cppmicroservices::LDAPProp¶ - #include <cppmicroservices/LDAPProp.h>
A fluent API for creating LDAP filter strings.
Examples for creating LDAPFilter objects:
// This creates the filter "(&(name=Ben)(!(count=1)))" LDAPFilter filter(LDAPProp("name") == "Ben" && !(LDAPProp("count") == 1)); // This creates the filter "(|(presence=*)(!(absence=*)))" LDAPFilter filter(LDAPProp("presence") || !LDAPProp("absence")); // This creates the filter "(&(ge>=-3)(approx~=hi))" LDAPFilter filter(LDAPProp("ge") >= -3 && LDAPProp("approx").Approx("hi"));- See
- LDAPFilter
Public Functions
-
LDAPProp(std::string property)¶ Create a LDAPProp instance for the named LDAP property.
- Parameters
property: The name of the LDAP property.
-
LDAPPropExpr
operator==(const std::string &s) const
-
LDAPPropExpr
operator==(const cppmicroservices::Any &s) const
-
LDAPPropExpr
operator==(bool b) const
- template <class T>
-
LDAPPropExpr
operator==(const T &s) const
-
operator LDAPPropExpr() const¶
-
LDAPPropExpr
operator!() const¶ States the absence of the LDAP property.
- Return
- A LDAP expression object.
-
LDAPPropExpr
operator!=(const std::string &s) const
-
LDAPPropExpr
operator!=(const cppmicroservices::Any &s) const
- template <class T>
-
LDAPPropExpr
operator!=(const T &s) const
-
LDAPPropExpr
operator>=(const std::string &s) const
-
LDAPPropExpr
operator>=(const cppmicroservices::Any &s) const
- template <class T>
-
LDAPPropExpr
operator>=(const T &s) const
-
LDAPPropExpr
operator<=(const std::string &s) const
-
LDAPPropExpr
operator<=(const cppmicroservices::Any &s) const
- template <class T>
-
LDAPPropExpr
operator<=(const T &s) const
-
LDAPPropExpr
Approx(const std::string &s) const
-
LDAPPropExpr
Approx(const cppmicroservices::Any &s) const
- template <class T>
-
LDAPPropExpr
Approx(const T &s) const