ldapsdk  0.0.1
LDAPUrl.h
Go to the documentation of this file.
1 // $OpenLDAP$
2 /*
3  * Copyright 2000-2013 The OpenLDAP Foundation, All Rights Reserved.
4  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5  */
6 
7 
8 #ifndef LDAP_URL_H
9 #define LDAP_URL_H
10 
11 #include <StringList.h>
12 
13 class LDAPUrlException;
22 class LDAPUrl{
23 
24  public :
29  LDAPUrl(const std::string &url="");
30 
34  ~LDAPUrl();
35 
40  int getPort() const;
41 
46  void setPort(int port);
47 
51  int getScope() const;
52 
57  void setScope(const std::string& scope);
58 
62  const std::string& getURLString() const;
63 
68  void setURLString(const std::string &url);
69 
73  const std::string& getHost() const;
74 
79  void setHost( const std::string &host);
80 
84  const std::string& getScheme() const;
85 
91  void setScheme( const std::string &scheme );
92 
96  const std::string& getDN() const;
97 
102  void setDN( const std::string &dn);
103 
104 
108  const std::string& getFilter() const;
109 
114  void setFilter( const std::string &filter);
115 
119  const StringList& getAttrs() const;
120 
125  void setAttrs( const StringList &attrs);
126  void setExtensions( const StringList &ext);
127  const StringList& getExtensions() const;
128 
134  void percentDecode( const std::string& src, std::string& dest );
135 
142  std::string& percentEncode( const std::string& src,
143  std::string& dest,
144  int flags=0 ) const;
145 
146  protected :
154  void parseUrl();
155 
162  void components2Url() const;
163 
164  void string2list(const std::string &src, StringList& sl,
165  bool percentDecode=false);
166 
167  protected :
168  mutable bool regenerate;
169  int m_Port;
170  int m_Scope;
171  std::string m_Host;
172  std::string m_DN;
173  std::string m_Filter;
176  mutable std::string m_urlString;
177  std::string m_Scheme;
179 };
180 
182 struct code2string_s {
183  int code;
184  const char* string;
185 };
187 
189  public :
190  LDAPUrlException(int code, const std::string &msg="" );
191 
192  int getCode() const;
193  const std::string getErrorMessage() const;
194  const std::string getAdditionalInfo() const;
195 
196  static const int INVALID_SCHEME = 1;
197  static const int INVALID_PORT = 2;
198  static const int INVALID_SCOPE = 3;
199  static const int INVALID_URL = 4;
200  static const int URL_DECODING_ERROR = 5;
201  static const code2string_s code2string[];
202 
203  private:
204  int m_code;
205  std::string m_addMsg;
206 };
207 #endif //LDAP_URL_H
void setURLString(const std::string &url)
Set the URL member attribute.
Definition: LDAPUrl.cpp:84
void percentDecode(const std::string &src, std::string &dest)
Percent-decode a string.
Definition: LDAPUrl.cpp:295
LDAPUrl(const std::string &url="")
Create a new object from a string that contains a LDAP-Url.
Definition: LDAPUrl.cpp:22
mode
Definition: LDAPUrl.h:178
Definition: LDAPUrl.h:188
void setDN(const std::string &dn)
Set the DN part of the URL.
Definition: LDAPUrl.cpp:108
void setHost(const std::string &host)
Set the Host part of the URL.
Definition: LDAPUrl.cpp:98
const std::string getAdditionalInfo() const
Definition: LDAPUrl.cpp:504
void setAttrs(const StringList &attrs)
Set the Attributes part of the URL.
Definition: LDAPUrl.cpp:128
void setScope(const std::string &scope)
Set the Scope part of the URL.
Definition: LDAPUrl.cpp:60
bool regenerate
Definition: LDAPUrl.h:168
const std::string getErrorMessage() const
Definition: LDAPUrl.cpp:509
static const code2string_s code2string[]
Definition: LDAPUrl.h:201
std::string m_DN
Definition: LDAPUrl.h:172
const std::string & getURLString() const
Definition: LDAPUrl.cpp:75
int m_Scope
Definition: LDAPUrl.h:170
void setExtensions(const StringList &ext)
Definition: LDAPUrl.cpp:139
int getCode() const
Definition: LDAPUrl.cpp:499
std::string m_Scheme
Definition: LDAPUrl.h:177
StringList m_Extensions
Definition: LDAPUrl.h:175
static const int INVALID_PORT
Definition: LDAPUrl.h:197
const std::string & getFilter() const
Definition: LDAPUrl.cpp:114
int getPort() const
Definition: LDAPUrl.cpp:44
static const int INVALID_URL
Definition: LDAPUrl.h:199
const std::string & getScheme() const
Definition: LDAPUrl.cpp:145
LDAPUrlException(int code, const std::string &msg="")
Definition: LDAPUrl.cpp:496
std::string m_urlString
Definition: LDAPUrl.h:176
int getScope() const
Definition: LDAPUrl.cpp:55
void parseUrl()
Split the url string that is associated with this Object into it components.
Definition: LDAPUrl.cpp:163
StringList m_Attrs
Definition: LDAPUrl.h:174
void setFilter(const std::string &filter)
Set the Filter part of the URL.
Definition: LDAPUrl.cpp:118
Definition: LDAPUrl.h:178
static const int INVALID_SCOPE
Definition: LDAPUrl.h:198
const std::string & getDN() const
Definition: LDAPUrl.cpp:104
std::string & percentEncode(const std::string &src, std::string &dest, int flags=0) const
Percent-encoded a string.
Definition: LDAPUrl.cpp:418
void setPort(int port)
Set the port value of the URL.
Definition: LDAPUrl.cpp:49
Definition: LDAPUrl.h:178
Definition: LDAPUrl.h:178
static const int URL_DECODING_ERROR
Definition: LDAPUrl.h:200
const StringList & getExtensions() const
Definition: LDAPUrl.cpp:134
This class is used to analyze and store LDAP-Urls as returned by a LDAP-Server as Referrals and Searc...
Definition: LDAPUrl.h:22
~LDAPUrl()
Destructor.
Definition: LDAPUrl.cpp:38
Container class to store multiple string-objects.
Definition: StringList.h:15
std::string m_Filter
Definition: LDAPUrl.h:173
void setScheme(const std::string &scheme)
Set the Protocol Scheme of the URL.
Definition: LDAPUrl.cpp:150
Definition: LDAPUrl.h:178
static const int INVALID_SCHEME
Definition: LDAPUrl.h:196
void string2list(const std::string &src, StringList &sl, bool percentDecode=false)
Definition: LDAPUrl.cpp:321
std::string m_Host
Definition: LDAPUrl.h:171
int m_Port
Definition: LDAPUrl.h:169
void components2Url() const
Generate an URL string from the components that were set with the various set...() methods (this func...
Definition: LDAPUrl.cpp:341
const StringList & getAttrs() const
Definition: LDAPUrl.cpp:124
Definition: LDAPUrl.h:178
const std::string & getHost() const
Definition: LDAPUrl.cpp:93