LDAPUrl Class Reference

This class is used to analyze and store LDAP-Urls as returned by a LDAP-Server as Referrals and Search References. More...

#include <LDAPUrl.h>

List of all members.

Public Member Functions

 LDAPUrl (const std::string &url="")
 Create a new object from a string that contains a LDAP-Url.
 ~LDAPUrl ()
 Destructor.
int getPort () const
void setPort (int port)
 Set the port value of the URL.
int getScope () const
void setScope (const std::string &scope)
 Set the Scope part of the URL.
const std::string & getURLString () const
void setURLString (const std::string &url)
 Set the URL member attribute.
const std::string & getHost () const
void setHost (const std::string &host)
 Set the Host part of the URL.
const std::string & getScheme () const
void setScheme (const std::string &scheme)
 Set the Protocol Scheme of the URL.
const std::string & getDN () const
void setDN (const std::string &dn)
 Set the DN part of the URL.
const std::string & getFilter () const
void setFilter (const std::string &filter)
 Set the Filter part of the URL.
const StringListgetAttrs () const
void setAttrs (const StringList &attrs)
 Set the Attributes part of the URL.
void setExtensions (const StringList &ext)
const StringListgetExtensions () const
void percentDecode (const std::string &src, std::string &dest)
 Percent-decode a string.
std::string & percentEncode (const std::string &src, std::string &dest, int flags=0) const
 Percent-encoded a string.

Protected Types

enum  mode {
  base, attrs, scope, filter,
  extensions
}

Protected Member Functions

void parseUrl ()
 Split the url string that is associated with this Object into it components.
void components2Url () const
 Generate an URL string from the components that were set with the various set.
void string2list (const std::string &src, StringList &sl, bool percentDecode=false)

Protected Attributes

bool regenerate
int m_Port
int m_Scope
std::string m_Host
std::string m_DN
std::string m_Filter
StringList m_Attrs
StringList m_Extensions
std::string m_urlString
std::string m_Scheme

Detailed Description

This class is used to analyze and store LDAP-Urls as returned by a LDAP-Server as Referrals and Search References.

LDAP-URLs are defined in RFC1959 and have the following format:
ldap://host:port/baseDN[?attr[?scope[?filter]]]


Member Enumeration Documentation

enum LDAPUrl::mode [protected]
Enumerator:
base 
attrs 
scope 
filter 
extensions 

Constructor & Destructor Documentation

LDAPUrl::LDAPUrl ( const std::string &  url = ""  ) 

Create a new object from a string that contains a LDAP-Url.

Parameters:
url The URL String

References DEBUG, LDAP_DEBUG_CONSTRUCT, LDAP_DEBUG_PARAMETER, m_Filter, m_Port, m_Scheme, m_Scope, m_urlString, parseUrl(), and regenerate.

LDAPUrl::~LDAPUrl (  ) 

Destructor.

References StringList::clear(), DEBUG, LDAP_DEBUG_DESTROY, and m_Attrs.


Member Function Documentation

void LDAPUrl::components2Url (  )  const [protected]

Generate an URL string from the components that were set with the various set.

..() methods (this function is mostly for internal use and gets called automatically whenever necessary)

References StringList::begin(), StringList::empty(), StringList::end(), m_Attrs, m_DN, m_Extensions, m_Filter, m_Host, m_Port, m_Scheme, m_Scope, m_urlString, PCT_ENCFLAG_SLASH, and percentEncode().

Referenced by getURLString().

const StringList & LDAPUrl::getAttrs (  )  const
Returns:
The List of attributes that was in the URL

References m_Attrs.

const string & LDAPUrl::getDN (  )  const
Returns:
The Base-DN part of the URL

References m_DN.

const StringList & LDAPUrl::getExtensions (  )  const

References m_Extensions.

const string & LDAPUrl::getFilter (  )  const
Returns:
The Filter part of the URL

References m_Filter.

const string & LDAPUrl::getHost (  )  const
Returns:
The hostname or IP-Address of the destination host.

References m_Host.

Referenced by LDAPAsynConnection::getHost().

int LDAPUrl::getPort (  )  const
Returns:
The part of the URL that is representing the network port

References m_Port.

Referenced by LDAPAsynConnection::getPort().

const std::string & LDAPUrl::getScheme (  )  const
Returns:
The Protocol Scheme of the URL.

References m_Scheme.

int LDAPUrl::getScope (  )  const
Returns:
The scope part of the URL is returned.

References m_Scope.

const string & LDAPUrl::getURLString (  )  const
Returns:
The complete URL as a string

References components2Url(), m_urlString, and regenerate.

Referenced by LDAPAsynConnection::initialize().

void LDAPUrl::parseUrl (  )  [protected]

Split the url string that is associated with this Object into it components.

The compontens of the URL can be access via the get...() methods. (this function is mostly for internal use and gets called automatically whenever necessary)

References attrs, base, DEBUG, extensions, filter, LDAPUrlException::INVALID_PORT, LDAPUrlException::INVALID_SCHEME, LDAPUrlException::INVALID_SCOPE, LDAPUrlException::INVALID_URL, LDAP_DEBUG_TRACE, LDAP_DEFAULT_PORT, LDAPS_DEFAULT_PORT, m_Attrs, m_DN, m_Extensions, m_Filter, m_Host, m_Port, m_Scheme, m_Scope, m_urlString, percentDecode(), scope, and string2list().

Referenced by LDAPUrl(), and setURLString().

void LDAPUrl::percentDecode ( const std::string &  src,
std::string &  dest 
)

Percent-decode a string.

Parameters:
src The string that is to be decoded
dest The decoded result string

References DEBUG, LDAP_DEBUG_TRACE, and LDAPUrlException::URL_DECODING_ERROR.

Referenced by parseUrl(), and string2list().

std::string & LDAPUrl::percentEncode ( const std::string &  src,
std::string &  dest,
int  flags = 0 
) const

Percent-encoded a string.

Parameters:
src The string that is to be encoded
dest The encoded result string
flags 

References PCT_ENCFLAG_COMMA, and PCT_ENCFLAG_SLASH.

Referenced by components2Url().

void LDAPUrl::setAttrs ( const StringList attrs  ) 

Set the Attributes part of the URL.

Parameters:
attrs StringList constaining the List of Attributes

References m_Attrs, and regenerate.

void LDAPUrl::setDN ( const std::string &  dn  ) 

Set the DN part of the URL.

Parameters:
dn The new DN part

References m_DN, and regenerate.

void LDAPUrl::setExtensions ( const StringList ext  ) 

References m_Extensions, and regenerate.

void LDAPUrl::setFilter ( const std::string &  filter  ) 

Set the Filter part of the URL.

Parameters:
filter The new Filter

References m_Filter, and regenerate.

void LDAPUrl::setHost ( const std::string &  host  ) 

Set the Host part of the URL.

Parameters:
host The new host part

References m_Host, and regenerate.

void LDAPUrl::setPort ( int  port  ) 

Set the port value of the URL.

Parameters:
dn The port value

References m_Port, and regenerate.

void LDAPUrl::setScheme ( const std::string &  scheme  ) 

Set the Protocol Scheme of the URL.

Parameters:
host The Protcol scheme. Allowed values are ldap,ldapi,ldaps and cldap

References LDAPUrlException::INVALID_SCHEME, m_Scheme, and regenerate.

void LDAPUrl::setScope ( const std::string &  scope  ) 

Set the Scope part of the URL.

Parameters:
scope The new scope

References LDAPUrlException::INVALID_SCOPE, m_Scope, and regenerate.

void LDAPUrl::setURLString ( const std::string &  url  ) 

Set the URL member attribute.

Parameters:
url The URL String

References m_urlString, parseUrl(), and regenerate.

Referenced by LDAPAsynConnection::initialize().

void LDAPUrl::string2list ( const std::string &  src,
StringList sl,
bool  percentDecode = false 
) [protected]

References StringList::add(), and percentDecode().

Referenced by parseUrl().


Member Data Documentation

std::string LDAPUrl::m_DN [protected]

Referenced by components2Url(), getDN(), parseUrl(), and setDN().

std::string LDAPUrl::m_Filter [protected]
std::string LDAPUrl::m_Host [protected]
int LDAPUrl::m_Port [protected]
std::string LDAPUrl::m_Scheme [protected]
int LDAPUrl::m_Scope [protected]
std::string LDAPUrl::m_urlString [mutable, protected]
bool LDAPUrl::regenerate [mutable, protected]

The documentation for this class was generated from the following files:
Generated on Mon Jul 5 13:45:11 2010 for ldapsdk by  doxygen 1.6.3