]> git.sur5r.net Git - openldap/blobdiff - contrib/ldapc++/src/LDAPAttribute.h
Entry rwlock is no longer needed as concurrency is managed
[openldap] / contrib / ldapc++ / src / LDAPAttribute.h
index a3e8abdd6eed38ed283bfd169ecbfa3ecc6360b4..eea3a62c5209bfda7faaf4745b0ff2c60792aa87 100644 (file)
 #include<ldap.h>
 #include<lber.h> 
 
-#include "StringList.h"
+#include <StringList.h>
 
-//! Represents the name an value(s) of an Attribute 
+/**
+ * Represents the name an value(s) of an Attribute 
+ */
 class LDAPAttribute{
     public :
-        //! Default constructor
-        /*!
-         * initializes an empty object
+        /** 
+         * Default constructor.
+         * initializes an empty object.
          */
         LDAPAttribute();
 
-        //!Copy constructor
-        /*!
+        /**
+         * Copy constructor.
          * Copies all values of an Attribute to a new one
          * @param attr   The Attribute that should be copied
          */
         LDAPAttribute(const LDAPAttribute& attr);
 
-        //! Construct an Attribute with a single string value
-        /*!
+        /**
+         * Construct an Attribute with a single std::string value
          * @param name      The attribute's name (type)
-         * @param value     The string value of the attribute, if 0 the 
-         *                  will have no values, for LDAPv3 this values must
-         *                  be UTF-8 encoded
+         * @param value     The std::string value of the attribute, if "" the
+         *                  attribute will have no values, for LDAPv3 
+         *                  this values must be UTF-8 encoded
          */
-        LDAPAttribute(const string& name, const string& value="");
+        LDAPAttribute(const std::string& name, const std::string& value="");
 
-        //! Construct an attribute with multiple string values
-        /*!
+        /** 
+         * Construct an attribute with multiple std::string values
          * @param name      The attribute's name (type)
          * @param values    A 0-terminated array of char*. Each char* specifies
          *                  one value of the attribute (UTF-8 encoded)
          */
         LDAPAttribute(const char* name, char **values);
-        LDAPAttribute(const string& name, const StringList& values);
-        //! Construct an attribute with multiple binary coded values
-        /*!
+        
+        /** 
+         * Construct an attribute with multiple std::string values
+         * @param name      The attribute's name (type)
+         * @param values    A std::list of std::strings. Each element specifies
+         *                  one value of the attribute (UTF-8 or binary 
+         *                  encoded)
+         */
+        LDAPAttribute(const std::string& name, const StringList& values);
+
+        /**
+         * Construct an attribute with multiple binary coded values
          * @param name      The attribute's name (type)
          * @param values    0-terminated array of binary attribute values
          *                  The BerValue struct is declared as:<BR>
@@ -59,41 +70,39 @@ class LDAPAttribute{
          */         
         LDAPAttribute(const char* name, BerValue **values);
         
-        //! Destructor
+        /**
+         * Destructor
+         */
         ~LDAPAttribute();
 
-        //! Add a single string value(bin/char) to the Attribute
-        /*!
+        /**
+         * Add a single std::string value(bin/char) to the Attribute
          * @param value Value that should be added, it is copied inside the
          *              object
-         * 
-         * @return  0  no problem <BR>
-         *          -1 failure (mem. allocation problem)
          */
-        void addValue(const string& value);
+        void addValue(const std::string& value);
 
-        //! Add a single binary value to the Attribute
-        /*!
+        /**
+         * Add a single binary value to the Attribute
          * @param value The binary coded value that should be added to the
          *              Attribute.
-         * 
          * @return  0  no problem <BR>
          *          -1 failure (mem. allocation problem)
          */
         int addValue(const BerValue *value);
 
-        /*!
+        /**
          * Set the values of the attribute. If the object contains some values
          * already, they are deleted
          * @param values    0-terminated array of char*, each char* 
-         *                  representing a string value to add to the entry
+         *                  representing a std::string value to add to the entry
          * 
          * @return  0  no problem <BR>
          *          -1 failure (mem. allocation problem)
          */
         int setValues(char** values);
 
-        /*!
+        /**
          * Set the values of the attribute. If the object does already contain
          * some values, they will be deleted
          * @param values    0-terminated array of BerValue*, each BerValue
@@ -103,53 +112,69 @@ class LDAPAttribute{
          *          -1 failure (mem. allocation problem)
          */
         int setValues(BerValue** values);
+
+        /**
+         * Set the values of the attribute. If the object does already contain
+         * some values, they will be deleted
+         * @param values    A std::list of std::string-Objects. Each std::string is 
+         *                  representing a std::string or binary value to add to
+         *                  the entry
+         */
         void setValues(const StringList& values); 
-        /*!
+
+        /**
+         * For interal use only.
+         * This method is used to translate the values of the Attribute to
+         * 0-terminated Array of BerValue-structs as used by the C-API
          * @return  The Values of the Attribute as an 0-terminated Array of 
          *          BerValue* (is dynamically allocated, delete it after usage) 
          *          <BR>
          *          0-pointer in case of error
          */
         BerValue** getBerValues() const;
+
+        /**
+         * @return The values of the array as a std::list of std::strings
+         */
         const StringList& getValues() const;
-        /*!
-         * @return The Number of values of the attribute
+        
+        /**
+         * @return The number of values of the attribute
          */
         int getNumValues() const;
 
-        /*!
+        /**
          * @return The name(type) of the attribute
-         *         <BR>
-         *         0-pointer in case of error
          */
-        const string& getName() const ;
+        const std::string& getName() const ;
 
-        /*!
+        /**
+         * Sets the Attribute's name (type) 
          * @param the new name of the object  
-         * 
-         * @return  0  no problem <BR>
-         *          -1 failure (mem. allocation problem)
          */
-        void setName(const string& name);
+        void setName(const std::string& name);
 
-        /*!
-         * for internal use only
+        /**
+         * For internal use only.
+         *
+         * This method translate the attribute of the object into a
+         * LDAPMod-Structure as used by the C-API
          */
         LDAPMod* toLDAPMod() const ;
 
+        /**
+         * @return true If the attribute contains non-printable attributes
+         */
         bool isNotPrintable() const ;
 
     private :
-        string m_name;
+        std::string m_name;
         StringList m_values;
-        /*!
-         * @return true if the values contains nonprintable characters, 
-         *      otherwise false
-         */
 
-        /*!
-         * just for debugging at the moment
-         */
-    friend ostream& operator << (ostream& s, const LDAPAttribute& attr);
+    /**
+     * This method can be used to dump the data of a LDAPResult-Object.
+     * It is only useful for debugging purposes at the moment
+     */
+    friend std::ostream& operator << (std::ostream& s, const LDAPAttribute& attr);
 };
 #endif //#ifndef LDAP_ATTRIBUTE_H