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_Attribute_hpp
10 #define anna_ldap_Attribute_hpp
14 #include <anna/core/util/Recycler.hpp>
24 Modela los atributos retornados en una peticion de busqueda.
26 Recordar que en LDAP un mismo atributo puede tener asociados un numero indeterminado de valores.
32 typedef Recycler<std::string> value_container;
33 typedef value_container::const_iterator const_value_iterator;
36 Devuelve el nombre del atributo.
37 \return El nombre del atributo.
39 const std::string& getName() const throw() { return a_name; }
42 Devuelve el iterador al comienzo de la lista de valores asociados a este atributo.
43 \return El iterador al comienzo de la lista de valores asociados a este atributo.
45 const_value_iterator value_begin() const throw() { return a_values.begin(); }
48 Devuelve el iterador al final de la lista de valores asociados a este atributo.
49 \return El iterador al final de la lista de valores asociados a este atributo.
51 const_value_iterator value_end() const throw() { return a_values.end(); }
54 Devuelve el valor asociado al iterador recibido como parametro.
55 \param ii Instancia del iterador usado para recorrer los datos. Estara comprendido
56 entre [#value_begin, #value_end).
57 \return El valor referenciado por el iterador.
59 static const std::string& value(const_value_iterator ii) throw() { return *value_container::data(ii); }
63 value_container a_values;
67 void setName(const std::string& name) throw() { a_name = name; }
69 void add(const std::string& value) throw(RuntimeException) {
70 std::string* newValue = a_values.create();
73 void clear() throw() { a_name.clear(); a_values.clear(); }
76 friend class Response;
77 friend class Allocator<Attribute>;