1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_ldap_ResultCode_hpp
10 #define anna_ldap_ResultCode_hpp
21 Modela el resultado de las peticiones enviadas a servidores LDAP.
24 \see ldap::Session::eventResponse
31 ResultCode() : a_value(0) {;}
34 Devuelve \em true si la respuesta recibida es correcta o \em false en otro caso.
35 \return \em true si la respuesta recibida es correcta o \em false en otro caso.
37 bool isOk() const throw() { return a_value == 0; }
40 Devuelve \em true si la respuesta recibida es un error debido a que las credenciales del usuario
41 no son válidas para conectar al servidor o \em false en otro caso.
43 \return \em true si la respuesta recibida es un error debido a que las credenciales del usuario
44 no son válidas para conectar al servidor o \em false en otro caso.
46 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
47 haya retornado \em false.
49 bool isInvalidCredential() const throw();
52 Devuelve \em true si la resulta recibida es LDAP_OPERATIONS_ERROR o \em false en otro caso.
54 \return \em true si la resulta recibida es LDAP_OPERATIONS_ERROR o \em false en otro caso.
56 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
57 haya retornado \em false.
59 bool isOperationsError() const throw();
62 Devuelve \em true si la resulta recibida es LDAP_PROTOCOL_ERROR o \em false en otro caso.
64 \return \em true si la resulta recibida es LDAP_PROTOCOL_ERROR o \em false en otro caso.
66 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
67 haya retornado \em false.
69 bool isProtocolError() const throw();
72 Devuelve \em true si la resulta recibida es LDAP_TIMELIMIT_EXCEEDED o \em false en otro caso.
74 \return \em true si la resulta recibida es LDAP_TIMELIMIT_EXCEEDED o \em false en otro caso.
76 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
77 haya retornado \em false.
79 bool isTimeLimitExceeded() const throw();
82 Devuelve \em true si la resulta recibida es LDAP_SIZELIMIT_EXCEEDED o \em false en otro caso.
84 \return \em true si la resulta recibida es LDAP_SIZELIMIT_EXCEEDED o \em false en otro caso.
86 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
87 haya retornado \em false.
89 bool isSizeLimitExceeded() const throw();
92 Devuelve \em true si la resulta recibida es LDAP_AUTH_METHOD_NOT_SUPPORTED o \em false en otro caso.
94 \return \em true si la resulta recibida es LDAP_AUTH_METHOD_NOT_SUPPORTED o \em false en otro caso.
96 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
97 haya retornado \em false.
99 bool isAuthMethodNotSupported() const throw();
102 Devuelve \em true si la resulta recibida es LDAP_STRONG_AUTH_REQUIRED o \em false en otro caso.
104 \return \em true si la resulta recibida es LDAP_STRONG_AUTH_REQUIRED o \em false en otro caso.
106 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
107 haya retornado \em false.
109 bool isStrongAuthRequired() const throw();
112 Devuelve \em true si la resulta recibida es LDAP_SASL_BIND_IN_PROGRESS o \em false en otro caso.
114 \return \em true si la resulta recibida es LDAP_SASL_BIND_IN_PROGRESS o \em false en otro caso.
116 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
117 haya retornado \em false.
119 bool isSASLBindInProgress() const throw();
122 Devuelve \em true si la resulta recibida es un error de tipo LDAP_ATTR_ERROR o \em false en otro caso,
123 Puede darse al usar atributos no definidos, tipos inapropiados, comparaciones entre tipos no convertibles
124 o errores sintáxticos en general.
126 \return \em true si la resulta recibida es un error de tipo LDAP_ATTR_ERROR o \em false en otro caso.
128 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
129 haya retornado \em false.
131 bool isAttrError() const throw();
134 Devuelve \em true si la resulta recibida es un error de tipo LDAP_NAME_ERROR o \em false en otro caso.
135 Puede dar al usar objetos o alias no definidos o usar una sinstaxis no válida en el DN.
137 \return \em true si la resulta recibida es un error de tipo LDAP_NAME_ERROR o \em false en otro caso.
139 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
140 haya retornado \em false.
142 bool isNameError() const throw();
145 Devuelve \em true si la resulta recibida es un error de tipo LDAP_SECURITY_ERROR o \em false en otro caso.
146 Puede darse por una autorización inapropiada, por presentar una credencial inválida o por intentar acceder
147 a información sin los privilegios suficientes.
149 Incluye el valor del método #isInvalidCredential.
151 \return \em true si la resulta recibida es un error de tipo LDAP_SECURITY_ERROR o \em false en otro caso.
153 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
154 haya retornado \em false.
156 bool isSecurityError() const throw();
159 Devuelve \em true si la resulta recibida es un error de tipo LDAP_SERVICE_ERROR o \em false en otro caso.
160 Puede darse cuando el servicio no esté disponible.
162 \return \em true si la resulta recibida es un error de tipo LDAP_SERVICE_ERROR o \em false en otro caso.
164 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
165 haya retornado \em false.
167 bool isServiceError() const throw();
170 Devuelve \em true si la resulta recibida es un error de tipo LDAP_TIMEOUT o \em false en otro caso.
172 \return \em true si la resulta recibida es un error de tipo LDAP_TIMEOUT o \em false en otro caso.
174 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
175 haya retornado \em false.
177 bool isTimeout() const throw();
180 Devuelve \em true si la resulta recibida es un error de tipo LDAP_UNAVAILABLE o \em false en otro caso.
182 \return \em true si la resulta recibida es un error de tipo LDAP_UNAVAILABLE o \em false en otro caso.
184 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
185 haya retornado \em false.
187 bool isUnavailable() const throw();
190 Devuelve \em true si la resulta recibida es un error de tipo LDAP_SERVER_DOWN o \em false en otro caso.
192 \return \em true si la resulta recibida es un error de tipo LDAP_SERVER_DOWN o \em false en otro caso.
194 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
195 haya retornado \em false.
197 bool isServerDown() const throw();
200 Devuelve \em true si la resulta recibida es un error de tipo LDAP_LOCAL_ERROR o \em false en otro caso.
202 \return \em true si la resulta recibida es un error de tipo LDAP_LOCAL_ERROR o \em false en otro caso.
204 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
205 haya retornado \em false.
207 bool isLocalError() const throw();
210 Devuelve \em true si la resulta recibida es un error de tipo LDAP_DECODING_ERROR o \em false en otro caso.
212 \return \em true si la resulta recibida es un error de tipo LDAP_DECODING_ERROR o \em false en otro caso.
214 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
215 haya retornado \em false.
217 bool isDecodingError() const throw();
220 Devuelve \em true si la resulta recibida es un error de tipo LDAP_FILTER_ERROR o \em false en otro caso.
222 \return \em true si la resulta recibida es un error de tipo LDAP_FILTER_ERROR o \em false en otro caso.
224 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
225 haya retornado \em false.
227 bool isFilterError() const throw();
230 Devuelve \em true si la resulta recibida es un error de tipo LDAP_CONNECT_ERROR o \em false en otro caso.
232 \return \em true si la resulta recibida es un error de tipo LDAP_CONNECT_ERROR o \em false en otro caso.
234 \warning El valor retornado por este método sólo tendrá validez en caso de que el método #isOk
235 haya retornado \em false.
237 bool isConnectError() const throw();
240 Devuelve el codigo de error asociado a esta instancia.
241 \return El codigo de error asociado a esta instancia.
243 int getValue() const throw() { return a_value; }
246 Devuelve el texto explicativo del error asociado a esta instancia.
247 \return El texto explicativo del error asociado a esta instancia.
249 const std::string& getText() const throw() { return a_text; }
252 Establece el codigo de error asociado a esta instancia.
253 \param value Codigo de error
255 // void setValue (const int value) throw () { a_value = value; }
258 Establece el texto explicativo del error asociado a esta instancia.
259 \param text Texto explicativo del error
261 // void setText (const std::string& text) throw () { a_text = text; }
264 Inicializa el codigo de error y el texto de esta instancia.
266 void clear() throw() { a_value = 0; a_text.clear(); }
270 \param other Instancia de la que copiar.
271 \return La instancia de el mismo despues de copiar los valores.
273 ResultCode& operator= (const ResultCode& other) throw() {
274 a_value = other.a_value;
275 a_text = other.a_text;
280 * Operador de asignación.
281 * \param ldap_result Código de resultado con el que iniciar esta instancia.
282 * \warning Si el valor de \em ldap_result no fue obtenido como resultado de ejecutar alguna operacion LDAP
283 * el resultado de este método no está definido.
285 ResultCode& operator= (const int ldap_result) throw();
287 bool operator == (const int n) const throw() { return a_value == n; }
288 bool operator != (const int n) const throw() { return a_value != n; }
289 bool operator < (const int n) const throw() { return a_value < n; }
290 bool operator <= (const int n) const throw() { return a_value <= n; }
293 Devuelve una cadena con la informacion relevante sobre esta instancia.
294 \return Una cadena con la informacion relevante sobre esta instancia.
296 const std::string asString() const throw();
302 ResultCode(const int ldap_method_result);
304 void setValue(const int ldap_method_result, const int ldap_method_error) throw();
306 bool extractResultCode(const Session*) throw();
308 friend class Session;