ldapsdk 0.0.1
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
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>

Public Member Functions

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

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. More...
 
void components2Url () const
 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) More...
 
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

◆ mode

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

Constructor & Destructor Documentation

◆ LDAPUrl()

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

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

Parameters
urlThe 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::~LDAPUrl ( )

Destructor.

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

Member Function Documentation

◆ components2Url()

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().

◆ getAttrs()

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

References m_Attrs.

◆ getDN()

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

References m_DN.

◆ getExtensions()

const StringList & LDAPUrl::getExtensions ( ) const

References m_Extensions.

◆ getFilter()

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

References m_Filter.

◆ getHost()

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

References m_Host.

Referenced by LDAPAsynConnection::getHost().

◆ getPort()

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

References m_Port.

Referenced by LDAPAsynConnection::getPort().

◆ getScheme()

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

References m_Scheme.

◆ getScope()

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

References m_Scope.

◆ getURLString()

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

References components2Url(), m_urlString, and regenerate.

Referenced by LDAPAsynConnection::init(), and LDAPAsynConnection::initialize().

◆ parseUrl()

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().

◆ percentDecode()

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

Percent-decode a string.

Parameters
srcThe string that is to be decoded
destThe decoded result string

References DEBUG, LDAP_DEBUG_TRACE, and LDAPUrlException::URL_DECODING_ERROR.

Referenced by parseUrl(), and string2list().

◆ percentEncode()

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

Percent-encoded a string.

Parameters
srcThe string that is to be encoded
destThe encoded result string
flags

References PCT_ENCFLAG_COMMA, and PCT_ENCFLAG_SLASH.

Referenced by components2Url().

◆ setAttrs()

void LDAPUrl::setAttrs ( const StringList attrs)

Set the Attributes part of the URL.

Parameters
attrsStringList constaining the List of Attributes

References attrs, m_Attrs, and regenerate.

◆ setDN()

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

Set the DN part of the URL.

Parameters
dnThe new DN part

References m_DN, and regenerate.

◆ setExtensions()

void LDAPUrl::setExtensions ( const StringList ext)

References m_Extensions, and regenerate.

◆ setFilter()

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

Set the Filter part of the URL.

Parameters
filterThe new Filter

References filter, m_Filter, and regenerate.

◆ setHost()

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

Set the Host part of the URL.

Parameters
hostThe new host part

References m_Host, and regenerate.

Referenced by LDAPAsynConnection::init().

◆ setPort()

void LDAPUrl::setPort ( int  port)

Set the port value of the URL.

Parameters
dnThe port value

References m_Port, and regenerate.

Referenced by LDAPAsynConnection::init().

◆ setScheme()

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

Set the Protocol Scheme of the URL.

Parameters
hostThe Protcol scheme. Allowed values are ldap,ldapi,ldaps and cldap

References LDAPUrlException::INVALID_SCHEME, m_Scheme, and regenerate.

Referenced by LDAPAsynConnection::init().

◆ setScope()

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

Set the Scope part of the URL.

Parameters
scopeThe new scope

References LDAPUrlException::INVALID_SCOPE, m_Scope, regenerate, and scope.

◆ setURLString()

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

Set the URL member attribute.

Parameters
urlThe URL String

References m_urlString, parseUrl(), and regenerate.

Referenced by LDAPAsynConnection::initialize().

◆ string2list()

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

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

Referenced by parseUrl().

Member Data Documentation

◆ m_Attrs

StringList LDAPUrl::m_Attrs
protected

◆ m_DN

std::string LDAPUrl::m_DN
protected

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

◆ m_Extensions

StringList LDAPUrl::m_Extensions
protected

◆ m_Filter

std::string LDAPUrl::m_Filter
protected

◆ m_Host

std::string LDAPUrl::m_Host
protected

◆ m_Port

int LDAPUrl::m_Port
protected

◆ m_Scheme

std::string LDAPUrl::m_Scheme
protected

◆ m_Scope

int LDAPUrl::m_Scope
protected

◆ m_urlString

std::string LDAPUrl::m_urlString
mutableprotected

◆ regenerate

bool LDAPUrl::regenerate
mutableprotected

The documentation for this class was generated from the following files: