CppMicroServices

C++ Micro Services: LDAPFilter Class Reference
LDAPFilter Class Reference

An RFC 1960-based Filter. More...

Collaboration diagram for LDAPFilter:

Public Member Functions

 LDAPFilter ()
 Creates in invalid LDAPFilter object. More...
 
 LDAPFilter (const std::string &filter)
 Creates a LDAPFilter object. More...
 
 LDAPFilter (const LDAPFilter &other)
 
 ~LDAPFilter ()
 
 operator bool () const
 
bool Match (const ServiceReference &reference) const
 Filter using a service's properties. More...
 
bool Match (const ServiceProperties &dictionary) const
 Filter using a ServiceProperties object with case insensitive key lookup. More...
 
bool MatchCase (const ServiceProperties &dictionary) const
 Filter using a ServiceProperties. More...
 
std::string ToString () const
 Returns this LDAPFilter's filter string. More...
 
bool operator== (const LDAPFilter &other) const
 Compares this LDAPFilter to another LDAPFilter. More...
 
LDAPFilteroperator= (const LDAPFilter &filter)
 

Protected Attributes

SharedDataPointer< LDAPFilterData > d
 

Detailed Description

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 the LDAPFilter.

Some examples of LDAP filters are:

Remarks
This class is thread safe.

Constructor & Destructor Documentation

LDAPFilter::LDAPFilter ( )

Creates in invalid LDAPFilter object.

Test the validity by using the boolean conversion operator.

Calling methods on an invalid LDAPFilter will result in undefined behavior.

LDAPFilter::LDAPFilter ( const std::string &  filter)

Creates a LDAPFilter object.

This LDAPFilter object may be used to match a ServiceReference object or a ServiceProperties object.

If the filter cannot be parsed, an std::invalid_argument will be thrown with a human readable message where the filter became unparsable.

Parameters
filterThe filter string.
Returns
A LDAPFilter object encapsulating the filter string.
Exceptions
std::invalid_argumentIf filter contains an invalid filter string that cannot be parsed.
See Also
"Framework specification for a description of the filter string syntax." TODO!
LDAPFilter::LDAPFilter ( const LDAPFilter other)
LDAPFilter::~LDAPFilter ( )

Member Function Documentation

bool LDAPFilter::Match ( const ServiceReference 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.

Parameters
referenceThe reference to the service whose properties are used in the match.
Returns
true if the service's properties match this LDAPFilter false otherwise.
bool LDAPFilter::Match ( const ServiceProperties dictionary) const

Filter using a ServiceProperties object with case insensitive key lookup.

This LDAPFilter is executed using the specified ServiceProperties's keys and values. The keys are looked up in a case insensitive manner.

Parameters
dictionaryThe ServiceProperties whose key/value pairs are used in the match.
Returns
true if the ServiceProperties's values match this filter; false otherwise.
bool LDAPFilter::MatchCase ( const ServiceProperties dictionary) const

Filter using a ServiceProperties.

This LDAPFilter is executed using the specified ServiceProperties's keys and values. The keys are looked up in a normal manner respecting case.

Parameters
dictionaryThe ServiceProperties whose key/value pairs are used in the match.
Returns
true if the ServiceProperties's values match this filter; false otherwise.
LDAPFilter::operator bool ( ) const
LDAPFilter& LDAPFilter::operator= ( const LDAPFilter filter)
bool LDAPFilter::operator== ( const LDAPFilter other) const

Compares this LDAPFilter to another LDAPFilter.

This implementation returns the result of calling this->ToString() == other.ToString().

Parameters
otherThe object to compare against this LDAPFilter.
Returns
Returns the result of calling this->ToString() == other.ToString().
std::string LDAPFilter::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.

Returns
This LDAPFilter's filter string.

Member Data Documentation

SharedDataPointer<LDAPFilterData> LDAPFilter::d
protected