LDAPFilter¶
-
std::ostream &
cppmicroservices::
operator<<
(std::ostream &os, LDAPFilter const &filter)¶ Streams the string representation of
filter
into the streamos
via LDAPFilter::ToString().
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator==
(std::string const &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator==
(bool b) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator==
(T const &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator!=
(std::string const &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator!=
(T const &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator>=
(std::string const &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator>=
(T const &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator<=
(std::string const &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::
operator<=
(T const &s) const¶
-
LDAPPropExpr
cppmicroservices::LDAPProp::
Approx
(std::string const &s) const¶
- template <class T>
-
LDAPPropExpr
cppmicroservices::LDAPProp::
Approx
(T const &s) const¶
-
cppmicroservices::LDAPPropExpr
operator&&
(cppmicroservices::LDAPPropExpr const &left, cppmicroservices::LDAPPropExpr const &right)¶ LDAP logical and ‘&’.
- Return
- A LDAP expression
- Parameters
left
: A LDAP expression.right
: A LDAP expression.
-
cppmicroservices::LDAPPropExpr
operator||
(cppmicroservices::LDAPPropExpr const &left, cppmicroservices::LDAPPropExpr const &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
LDAPFilter
can 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
LDAPFilter
object that matches nothing.
-
LDAPFilter
(std::string const &filter)¶ Creates a
LDAPFilter
object encapsulating the filter string.This
LDAPFilter
object may be used to match aServiceReference
object or aServiceProperties
object.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
: Iffilter
contains an invalid filter string that cannot be parsed.
-
LDAPFilter
(LDAPFilter const &other)¶
-
~LDAPFilter
()¶
-
operator bool
() const¶
-
bool
Match
(ServiceReferenceBase const &reference) const¶ Filter using a service’s properties.
This
LDAPFilter
is executed using the keys and values of the referenced service’s properties. The keys are looked up in a case insensitive manner.- Return
true
if the service’s properties match thisLDAPFilter
false
otherwise.- Parameters
reference
: The reference to the service whose properties are used in the match.
-
bool
Match
(Bundle const &bundle) const¶ Filter using a bundle’s manifest headers.
This
LDAPFilter
is executed using the keys and values of the bundle’s manifest headers. The keys are looked up in a case insensitive manner.- Return
true
if the bundle’s manifest headers match thisLDAPFilter
false
otherwise.- 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
(AnyMap const &dictionary) const¶ Filter using a
AnyMap
object with case insensitive key lookup.This
LDAPFilter
is executed using the specifiedAnyMap
‘s keys and values. The keys are looked up in a case insensitive manner.- Return
true
if theAnyMap
‘s values match this filter;false
otherwise.- Parameters
dictionary
: TheAnyMap
whose key/value pairs are used in the match.
- Exceptions
std::runtime_error
: If the number of keys in thedictionary
exceeds the value returned by std::numeric_limits<int>::max().std::runtime_error
: If thedictionary
contains case variants of the same key name.
-
bool
MatchCase
(AnyMap const &dictionary) const¶ Filter using a
AnyMap
.This
LDAPFilter
is executed using the specifiedAnyMap
‘s keys and values. The keys are looked up in a normal manner respecting case.- Return
true
if theAnyMap
‘s values match this filter;false
otherwise.- Parameters
dictionary
: TheAnyMap
whose key/value pairs are used in the match.
- Exceptions
std::runtime_error
: If the number of keys in thedictionary
exceeds the value returned by std::numeric_limits<int>::max().std::runtime_error
: If thedictionary
contains 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==
(LDAPFilter const &other) const¶ Compares this
LDAPFilter
to 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=
(LDAPFilter const &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==
(std::string const &s) const
-
LDAPPropExpr
operator==
(cppmicroservices::Any const &s) const
-
LDAPPropExpr
operator==
(bool b) const
- template <class T>
-
LDAPPropExpr
operator==
(T const &s) const
-
operator LDAPPropExpr
() const¶
-
LDAPPropExpr
operator!
() const¶ States the absence of the LDAP property.
- Return
- A LDAP expression object.
-
LDAPPropExpr
operator!=
(std::string const &s) const
-
LDAPPropExpr
operator!=
(cppmicroservices::Any const &s) const
- template <class T>
-
LDAPPropExpr
operator!=
(T const &s) const
-
LDAPPropExpr
operator>=
(std::string const &s) const
-
LDAPPropExpr
operator>=
(cppmicroservices::Any const &s) const
- template <class T>
-
LDAPPropExpr
operator>=
(T const &s) const
-
LDAPPropExpr
operator<=
(std::string const &s) const
-
LDAPPropExpr
operator<=
(cppmicroservices::Any const &s) const
- template <class T>
-
LDAPPropExpr
operator<=
(T const &s) const
-
LDAPPropExpr
Approx
(std::string const &s) const
-
LDAPPropExpr
Approx
(cppmicroservices::Any const &s) const
- template <class T>
-
LDAPPropExpr
Approx
(T const &s) const