Index: trunk/SophyaLib/BaseTools/dvlist.cc
===================================================================
--- trunk/SophyaLib/BaseTools/dvlist.cc	(revision 827)
+++ trunk/SophyaLib/BaseTools/dvlist.cc	(revision 895)
@@ -12,5 +12,5 @@
 //++
 // Class	DVList
-// Lib		Outils++
+// Lib		SysTools
 // include	dvlist.h
 //
@@ -42,4 +42,48 @@
 static MuTyV ddvdum(-9.e19);
 
+/*!
+   \class SOPHYA::DVList
+   This class can be used to construct list of values associated with names.
+   Variables names should not contain space characters and is limited to 64
+   characters. The DVList class uses \b SOPHYA::MuTyV objects to hold values
+   of type string, integer (\b int_8) or float (\b r_8). A comment string
+   can be associated with each variable name. A global comment string
+   can be attached to the DVList object. DVList objects can conveniently be 
+   used to represent FITS headers. The class \b SOPHYA::ObjFileIO<DVList>
+   handles serialisation for DVList. (See SOPHYA::PPersist ).
+   An 
+   \code
+   //  ------- Using MuTyV objects ------- 
+   MuTyV mvu;         // MuTyV variable declaration 
+   mvu = 60;          // mvu contains the integer value 60
+   mvu = 66.6;        // and now the double value 66.6 
+   string ds = mvu;   // ds contains the string "66.6"
+   MuTyV mvi(14);     // New MuTyV variable containing integer value 14
+   r_4 x = mvi;       // x has the value 14.0
+   MuTyV mvs("Bonjour !");  // mvs contains the string "Bonjour !"
+   string s = mvs;          // s vaut "Bonjour, Ca va ?"  
+   //  ------- Using DVList objects ------ 
+   DVList  dvl;
+   dvl("toto") = 14;      // Integer type value (=14) named toto
+   dvl("titi") = 25.5;    // float type value (=25.5) named titi
+   dvl("tata") = "Bonjour !"; // string type value (="Bonjour !") named tata 
+   // Upper and lower case letters are distinguished
+   dvl("hello") = 88;
+   dvl("Hello") = 77.77;    
+   dvl.Comment() = "DVList test object, with values named hello, Hello ";
+   // Saving the dvl object into a PPF file 
+   POutStream os("dvl.ppf");
+   os << dvl;
+   //  later on ...
+   DVList dvlr; 
+   PInStream is("dvl.ppf");
+   is << dvlr;
+   int k = dvlr["toto"] ;     //  k = 14
+   r_8 b = dvlr["titi"] ;     //  b = 25.5
+   string s =  dvlr["tata"] ; //  s = "Bonjour !"
+   int m =  dvlr["hello"] ;   //  m = 88
+
+   \endcode
+*/
 
 //++
@@ -58,4 +102,5 @@
 
 /* --Methode-- */
+/*! Default constructor */
 DVList::DVList()
 {
@@ -64,4 +109,5 @@
 
 /* --Methode-- */
+/*! copy constructor */
 DVList::DVList(const DVList& dvl)
 {
@@ -70,4 +116,5 @@
 
 /* --Methode-- */
+/*! Copy constructor - Object initialized using the PPF file \b flnm */
 DVList::DVList(char *flnm)
 {
@@ -97,4 +144,5 @@
 
 /* --Methode-- */
+/*! Copy operator - Replaces the variables list with the list from \b dvl */
 DVList&     DVList::operator= (const DVList& dvl)
 {
@@ -105,4 +153,5 @@
 
 /* --Methode-- */
+/*! Resets the object and clears the variable list and global comment */
 void        DVList::Clear()
 {
@@ -112,4 +161,5 @@
 
 /* --Methode-- */
+/*! Appends the values from the object \b dvl to the objects list */
 DVList&     DVList::Merge(const DVList& dvl)
 {
@@ -149,4 +199,6 @@
 
 /* --Methode-- */
+/*! Returns the value corresponding to name \b key, converted to integer
+    Default value \b def is returned if name \b key not found */
 int_8       DVList::GetI(string const& key, int_8 def)
 {
@@ -158,4 +210,6 @@
 
 /* --Methode-- */
+/*! Returns the value corresponding to name \b key, converted to double
+    Default value \b def is returned if name \b key not found */
 r_8      DVList::GetD(string const& key, r_8 def)
 {
@@ -167,4 +221,6 @@
 
 /* --Methode-- */
+/*! Returns the value corresponding to name \b key, converted to string
+    Default value \b def is returned if name \b key not found */
 string      DVList::GetS(string const& key, char* def)
 {
@@ -176,4 +232,5 @@
 
 /* --Methode-- */
+/*! Returns the comment associated with name \b key */ 
 string      DVList::GetComment(string const& key)
 {
@@ -200,4 +257,5 @@
 
 /* --Methode-- */
+/*! Appends or sets the integer value \b val in the list with name \b key */
 void        DVList::SetI(string const& key, int_8 val)
 {
@@ -207,4 +265,5 @@
 /* --Methode-- */
 void        DVList::SetD(string const& key, r_8 val)
+/*! Appends or sets the double value \b val in the list with name \b key */
 {
 Get(key) = (r_8)val;
@@ -212,4 +271,5 @@
 
 /* --Methode-- */
+/*! Appends or sets the string value \b val in the list with name \b key */
 void        DVList::SetS(string const& key, char const* val)
 {
@@ -219,4 +279,5 @@
 
 /* --Methode-- */
+/*! Appends or sets the string value \b val in the list with name \b key */
 void        DVList::SetS(string const& key, string val)
 {
@@ -226,4 +287,6 @@
 
 /* --Methode-- */
+/*! Assigns the comment \b comm with the name \b key . 
+    Does nothing if the entry with name is not present in the list   */
 void        DVList::SetComment(string const& key, string const& comm)
 {
@@ -246,4 +309,6 @@
 
 /* --Methode-- */
+/*!  Return the MuTyV value associated with name \b key .
+     Adds an entry of type integer in the list if \b key is not present in the list   */
 MuTyV&      DVList::Get(string const& key)
 {
@@ -272,6 +337,14 @@
 //--
 
-
-/* --Methode-- */
+/* --Methode-- */
+/*! Prints a brief description of object on on the output stream \b os */
+void        DVList::Show(ostream& os) const
+{
+os << "DVList::Show() - NVar= " << (int)mvlist.size() << "\n";
+os << comment << endl;
+}
+
+/* --Methode-- */
+/*! Prints the list of variables on the output stream \b os */
 void        DVList::Print(ostream& os) const
 {
