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_Request_hpp
10 #define anna_ldap_Request_hpp
12 #include <anna/ldap/defines.hpp>
13 #include <anna/ldap/ClassCode.hpp>
26 Prototipo de las peticiones que podemos realizar a un servidor LDAP.
31 * Define las acciones a realizar en caso de que el temporizador de la petición expire.
33 struct OnExpiry { enum _v { Abandon, Ignore }; };
36 Devuelve el tipo de la clase de esta peticion indicada en el contructor.
37 \return El tipo de la clase de esta peticion indicada en el contructor.
39 ClassCode::_v getClassCode() const throw() { return a_classCode; }
42 * Devuelve la acción a realizar en caso de que el temporizador asociado a esta petición expire.
43 * \return la acción a realizar en caso de que el temporizador asociado a esta petición expire.
45 OnExpiry::_v getOnExpiry() const throw() { return a_onExpiry; }
48 * Establece la acción a realizar en caso de que el temporizador asociado a esta petición expire.
49 * \param onExpiry Indica la acción a realizar en caso de que el temporizador asociado a esta petición expire.
51 * \warning Establecer el valor OnExpiry::Ignore podría causar pérdida de memoria y uso innecesario de recursos.
53 void setOnExpiry(const OnExpiry::_v onExpiry) throw() { a_onExpiry = onExpiry; }
56 Devuelve una cadena con la informacion mas relevante de esta instancia.
57 \return Una cadena con la informacion mas relevante de esta instancia.
59 virtual std::string asString() const throw();
62 Devuelve un documento XML con la informacion mas relevante de esta instancia.
63 \param parent Nodo XML del que colgar la informacion referente a esta instancia.
64 \return Un documento XML con la informacion mas relevante de esta instancia.
66 virtual xml::Node* asXML(xml::Node* parent) const throw();
69 Inicializa los parametros de esta peticion.
71 virtual void clear() throw() = 0;
74 Devuelve \em NULL si la \em std::string recibida como parametro esta vacia o el contenido de la
76 \return \em NULL si la \em std::string recibida como parametro esta vacia o el contenido de la
80 static const char* asCString(const std::string& value) throw() {
81 return (value.empty() == true) ? NULL : value.c_str();
85 Devuelve \em "<null>" si la std::string recibida como parametro esta vacia o el contenido de la
87 \return \em "<null>" si la std::string recibida como parametro esta vacia o el contenido de la
90 static const char* asText(const std::string& value) throw() {
91 return (value.empty() == true) ? "<null>" : value.c_str();
97 \param classCode Tipo de clase de esta peticion.
98 \param onExpiry Indica la acción a realizar si el temporizador de esta transación expira.
100 Request(const ClassCode::_v classCode, const OnExpiry::_v onExpiry) : a_classCode(classCode), a_onExpiry(onExpiry) {;}
103 ClassCode::_v a_classCode;
104 OnExpiry::_v a_onExpiry;
106 virtual IdMessage send(Session&) const throw() = 0;
108 friend class Session;