Index: trunk/SophyaLib/BaseTools/dvlist.h
===================================================================
--- trunk/SophyaLib/BaseTools/dvlist.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/dvlist.h	(revision 2805)
@@ -77,11 +77,12 @@
   virtual void      Print(ostream& os)  const;
 
+//!  \cond  
 // Chaque element dans un DVList est constitue desormais d'un MuTyV
 // et d'une chaine de caracteres (commentaire) regroupe dans la structure
 // dvlElement. Ces elements sont associes aux noms de variables dans un 
 // map<...> ValList.            Reza 02/2000
-
   struct dvlElement {MuTyV elval; string elcomm; } ;
   typedef map<string, dvlElement, less<string> >  ValList; 
+//!  \endcond
 /*! Returns an iterator pointing on the first variable in the list */
   inline ValList::const_iterator Begin() { return(mvlist.begin()); } 
Index: trunk/SophyaLib/BaseTools/fiondblock.cc
===================================================================
--- trunk/SophyaLib/BaseTools/fiondblock.cc	(revision 2794)
+++ trunk/SophyaLib/BaseTools/fiondblock.cc	(revision 2805)
@@ -17,4 +17,9 @@
 //   Les objets delegues pour la gestion de persistance 
 // -------------------------------------------------------------------------
+/*!
+   \class SOPHYA::FIO_NDataBlock
+   \ingroup BaseTools
+   Handler for PPF persistence of NDataBlock<T> classes. 
+*/
 
 /*
Index: trunk/SophyaLib/BaseTools/fiosegdb.h
===================================================================
--- trunk/SophyaLib/BaseTools/fiosegdb.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/fiosegdb.h	(revision 2805)
@@ -13,6 +13,4 @@
 #include <typeinfo> 
 
-namespace SOPHYA {
-
 /*!
    \class SOPHYA::FIO_SegDataBlock
@@ -20,5 +18,9 @@
    Class implementing PPF persistence (PPersist handler) for segmented data structures
    (class SegDataBlock).
+   \sa PPersist
 */
+
+namespace SOPHYA {
+
    
 template <class T>
Index: trunk/SophyaLib/BaseTools/gnumd5.h
===================================================================
--- trunk/SophyaLib/BaseTools/gnumd5.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/gnumd5.h	(revision 2805)
@@ -6,4 +6,5 @@
 #endif
 
+/*! \cond */
 typedef struct {
     uint_8 mem_align;     /* To force memory alignment on SunOS 22/02/2001 */
@@ -13,5 +14,5 @@
     int  count;
 } MD5_CONTEXT;
-
+/*! \endcond */
 
 void
Index: trunk/SophyaLib/BaseTools/hashtable.h
===================================================================
--- trunk/SophyaLib/BaseTools/hashtable.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/hashtable.h	(revision 2805)
@@ -12,4 +12,5 @@
 namespace SOPHYA {
 
+//! \cond
 template <class T, class K>
 struct HashtableEntry {
@@ -19,5 +20,5 @@
   HashtableEntry<T,K> *next;
 };
-
+//! \endcond
 
 template <class T, class K>
Index: trunk/SophyaLib/BaseTools/objfio.h
===================================================================
--- trunk/SophyaLib/BaseTools/objfio.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/objfio.h	(revision 2805)
@@ -11,4 +11,13 @@
 #include "anydataobj.h"
 #include "ppersist.h"
+
+/*!
+   \class SOPHYA::ObjFileIO
+   \ingroup BaseTools
+   Template class to ease implementation of PPersist handlers for a 
+   class T , inheriting from AnyDataObj. The methodes ReadSelf() and 
+   WriteSelf() must be implemented.
+   \sa PPersist
+*/
 
 namespace SOPHYA {
Index: trunk/SophyaLib/BaseTools/ppersist.cc
===================================================================
--- trunk/SophyaLib/BaseTools/ppersist.cc	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppersist.cc	(revision 2805)
@@ -21,5 +21,12 @@
 
 
-#define MAXTAGLEN 255
+
+/*!
+   \class SOPHYA::PIOPersist
+   \ingroup BaseTools
+   Handles (statically) the registration of PPF Sophya Persistence) handler classes. 
+   \sa PPersist
+*/
+
 
 //++
@@ -32,12 +39,4 @@
 //--
 
-//++
-// Links	See
-// PPersist
-// PInPersist
-// POutPersist
-//--
-
-
 MD5_CONTEXT PIOPersist::ctx;
 PIOPersist::ClassList * PIOPersist::ppclassList = NULL;   // $CHECK$ Reza 26/04/99
@@ -57,14 +56,12 @@
 }
 
-//++
+/*!
+  Register a new persistence handler (PPersist) class.
+  The classId is usually a hash of the class< name, and
+  ppclass_name is typeid(PPersistClass).name() .
+  This method is called only through the PPersistRegistrar template
+*/
 void
 PIOPersist::RegisterPPHandlerClass(uint_8 classId, string ppclass_name, ClassCreatorFunc f)
-//
-//	Register a new persistence handler (PPersist) class.
-//	The classId is usually a hash of the class< name, and
-//	ppclass_name is typeid(PPersistClass).name() .
-//	This method is called only through the PPersistRegistrar template
-//
-//--
 {
   if (ppclassList->size() && (ppclassList->find(classId) != ppclassList->end()) ) {
@@ -83,10 +80,10 @@
 }
 
-//++
+/*!
+  Register a new DataObj class corresponding to a PPersist classId
+  class_typename should be typeid(DataObject).name() 
+*/
 void
 PIOPersist::RegisterDataObjClass(uint_8 classId, string class_name)
-//	Register a new DataObj class corresponding to a PPersist classId
-//	class_typename should be typeid(DataObject).name() 
-//--
 {
   if (ppclassList->find(classId) == ppclassList->end() ) {
@@ -132,7 +129,7 @@
 }
 
+//! Returns the PPersist class creator function for the specified classId
 PIOPersist::ClassCreatorFunc
 PIOPersist::FindCreatorFunc(uint_8 classId)
-// Returns the PPersist class creator function for the specified classId
 {
   ClassList::iterator i = ppclassList->find(classId);
@@ -141,7 +138,7 @@
 }
 
+//! Returns the PPersist class name for the specified classId
 string 
 PIOPersist::getPPClassName(uint_8 classId)
-// Returns the PPersist class name for the specified classId
 {
   map<string, uint_8>::iterator i;
@@ -152,7 +149,7 @@
 }
 
+//! Returns the classId for the specified PPersist class type name
 uint_8
 PIOPersist::getPPClassId(string const & typ_name)
-// Returns the classId for the specified PPersist class type name
 {
   map<string, uint_8>::iterator i = ppclassNameList->find(typ_name);
@@ -162,7 +159,7 @@
 }
 
+//! Returns the classId for the specified PPersist class 
 uint_8
 PIOPersist::getPPClassId(PPersist const & ppo)
-// Returns the classId for the specified PPersist class 
 {
   string typ_name = typeid(ppo).name() ;
@@ -171,7 +168,7 @@
 
 
+//! Returns the PPersist class name for the specified classId
 string 
 PIOPersist::getDataObjClassName(uint_8 classId)
-// Returns the PPersist class name for the specified classId
 {
   map<string, uint_8>::iterator i;
@@ -182,7 +179,7 @@
 }
 
+//! Returns the classId for the specified PPersist class type name
 uint_8
 PIOPersist::getDataObjClassId(string const & typ_name)
-// Returns the classId for the specified PPersist class type name
 {
   map<string, uint_8>::iterator i = dobjclassNameList->find(typ_name);
@@ -192,7 +189,7 @@
 }
 
+//! Returns the classId for the specified PPersist class 
 uint_8
 PIOPersist::getDataObjClassId(AnyDataObj const & o)
-// Returns the classId for the specified PPersist class 
 {
   string typ_name = typeid(o).name() ;
@@ -200,4 +197,5 @@
 }
 
+//! \cond
 static inline void bswap8_hash(void* p)
 {
@@ -213,5 +211,5 @@
 }
 
-
+//! \endcond
 
 uint_8 PIOPersist::Hash(string const& typname) { 
@@ -238,6 +236,4 @@
 //	persistant :
 //	- Hériter de PPersist.
-//	- Définir un numéro d'identification de la classe, unique dans Peida
-//	- Implémenter "ClassId()"
 //	- Implémenter "WriteSelf" et "ReadSelf", qui doivent écrire toutes les variables
 //	  membres que l'on souhaite écrire, et les relire dans le même ordre.
@@ -253,17 +249,18 @@
 //--
 
-//++
-// Links	See
-// PInPersist
-// POutPersist
-// PIOPersist
-//--
-  
-//++
+/*!
+   \class SOPHYA::PPersist
+   \ingroup BaseTools
+   Ancestor (base) class for SOPHYA persistence (PPF) handlers. 
+   In order to have provide a PPF handler for an object :
+   - Inherit from PPersist
+   - Implement WriteSelf() and ReadSelf()
+
+   \sa PInPersist POutPersist PIOPersist
+*/
+
+//! Writes the object into a new PPF file named \b fn 
 void
 PPersist::Write(string const& fn) const
-//
-//	Ecrit l'objet dans un nouveau fichier ppersist "fn".
-//--
 {
   POutPersist of(fn);
@@ -271,12 +268,7 @@
 }
 
-//++
+//! Reads the object from a PInPersist stream created from file \b fn 
 void
 PPersist::Read(string const& fn) 
-//
-//	Relit l'objet dans le fichier ppersist "fn". Il faut connaître a priori
-//	le type de l'objet. Pour une relecture avec création automatique du bon
-//	objet, utiliser PPersistMgr::ReadObject.
-//--
 {
   PInPersist inf(fn);
@@ -285,10 +277,7 @@
 }
 
-//++
+//! Writes the object to the output PPF stream \b s
 void
 PPersist::Write(POutPersist& s) const
-//
-//	Ecrit l'objet dans le fichier PPersist.
-//--
 {
    s.PutPPObject(this);
@@ -296,5 +285,5 @@
 
 
-//++
+//! Reads the object from the input PPF stream \b s
 void
 PPersist::Read(PInPersist& s)
@@ -337,10 +326,7 @@
 }
 
-//++
+//! Writes a name tag (\b tag) and then the object to the output PPF stream \b s
 void
 PPersist::Write(POutPersist& s, string const& tag) const
-//
-//	Ecrit l'objet dans le fichier PPersist avec un tag 
-//--
 {
   s.WriteNameTag(tag);
@@ -348,10 +334,7 @@
 }
 
-//++
+//! Try to position at the name tag \b tag and then reads the object from the input stream \b s
 void
 PPersist::ReadAtTag(PInPersist& s, string const& tag)
-//
-//	Lit l'objet à la position du tag numéro "tagid".
-//--
 {
   if (!s.GotoNameTag(tag))
@@ -361,5 +344,7 @@
 
 // Renvoie l'identificateur de l'objet  - par defaut=0
-
+/*! Return the object identifier (default: return 0)
+  (used for handling of PPF I/O for objects with reference sharing).
+*/
 uint_8 
 PPersist::getMemOId() const
@@ -370,4 +355,8 @@
 // Ces deux methodes doivent etre redefinies si   getMemOId() renvoie non nul (>0)
 // ShareDataReference() et CloneSharedReference()
+/*! 
+  This method should be re-implemented if getMemOId() non zero value.
+  (used for handling of PPF I/O for objects with reference sharing).
+*/
 void 
 PPersist::ShareDataReference(PPersist & pcs)
@@ -376,4 +365,8 @@
 }
 
+/*! 
+  This method should be re-implemented if getMemOId() non zero value.
+  (used for handling of PPF I/O for objects with reference sharing).
+*/
 PPersist *
 PPersist::CloneSharedReference()
@@ -403,4 +396,17 @@
 //--
 
+/*!
+   \class SOPHYA::PInPersist
+   \ingroup BaseTools
+   This class implements the I/O read services necessary for SOPHYA
+   persistence (PPF) by extending the services provided by PPFBinaryInputStream.
+   \sa PPersist
+*/
+
+/*! Constructor from a RawInOutStream pointer
+  \param is : pointer to RawInOutStream
+  \param ad : if true, the RawInOutStream \b is is deleted by the destructor 
+  \param scan : if true, try to read the name-tags table from the end of the input stream
+*/ 
 PInPersist::PInPersist(RawInOutStream * is, bool ad, bool scan)
   : PPFBinaryInputStream(is, ad, scan)
@@ -408,4 +414,8 @@
 }
 
+/*! Constructor 
+  \param  flnm : input file name
+  \param scan : if true, try to read the name-tags table from the end of the input stream
+*/  
 PInPersist::PInPersist(string const& flnm, bool scan)
   : PPFBinaryInputStream(flnm, scan)
@@ -436,4 +446,7 @@
 }
 
+/*! Skip to next object in the streams, reads it and return 
+  the corresponding PPersist handler 
+*/
 PPersist*
 PInPersist::ReadObject()
@@ -443,4 +456,7 @@
 }
 
+/*! 
+  Tries to read in from the stream into object \b o
+*/
 void 
 PInPersist::GetObject(AnyDataObj & o)
@@ -450,4 +466,7 @@
 }
 
+/*! 
+  Tries to move to \b nametag and then read in from the stream into object \b o
+*/
 void 
 PInPersist::GetObject(AnyDataObj & o, string tagname)
@@ -458,4 +477,7 @@
 }
 
+/*! 
+  Reading of objects - used by GetObject() and ReadObject()
+*/
 PPersist*
 PInPersist::GetPPObject(AnyDataObj * po)
@@ -575,4 +597,12 @@
 
 
+/*!
+   \class SOPHYA::POutPersist
+   \ingroup BaseTools
+   This class implements the I/O write services necessary for SOPHYA
+   persistence (PPF) by extending the services provided by PPFBinaryOutputStream.
+   \sa PPersist
+*/
+
 //++
 //  POutPersist(string const& flnm, int endianness = PPersist::PPS_NATIVE)
@@ -583,4 +613,10 @@
 //	ou PPersist::PPS_BIG_ENDIAN.
 //--
+
+/*! Constructor from a RawInOutStream pointer
+  \param os : pointer to RawInOutStream
+  \param ad : if true, the RawInOutStream \b os is deleted by the destructor 
+  \param endianness : Endianness selector  PPS_NATIVE PPS_LITTLE_ENDIAN PPS_BIG_ENDIAN 
+*/ 
 POutPersist::POutPersist(RawInOutStream* os, bool ad, int endianness)
   : PPFBinaryOutputStream(os, ad, endianness)
@@ -590,4 +626,8 @@
 }
 
+/*! Constructor 
+  \param flnm : output file name 
+  \param endianness : Endianness selector  PPS_NATIVE PPS_LITTLE_ENDIAN PPS_BIG_ENDIAN 
+*/ 
 POutPersist::POutPersist(string const& flnm, int endianness)
   : PPFBinaryOutputStream(flnm, endianness)
@@ -603,4 +643,5 @@
 
 
+//! Writes the object \b o to the stream
 void
 POutPersist::PutObject(AnyDataObj & o)
@@ -614,4 +655,5 @@
 }
 
+//! Writes the nametag \b tagname and then the object \b o to the stream
 void
 POutPersist::PutObject(AnyDataObj & o, string tagname)
Index: trunk/SophyaLib/BaseTools/ppersist.h
===================================================================
--- trunk/SophyaLib/BaseTools/ppersist.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppersist.h	(revision 2805)
@@ -68,5 +68,4 @@
 
 
-//! Ancestor for PInPersist and POutPersist object serialisation streams.
 // Handles (statically) the registration of classes.
 
@@ -169,5 +168,5 @@
   };
   
-
+//! \cond
 // Le macro suivant permettent de simplifier la declaration 
 // des operateurs >> << sur les POutPersist et  PInPersist
@@ -215,5 +214,6 @@
 
 #endif
-  
+
+//! \endcond  
 
 // --- Cela risque d'etre dangereux --- On le laisse au niveau des DataObj
Index: trunk/SophyaLib/BaseTools/ppfbinstream.cc
===================================================================
--- trunk/SophyaLib/BaseTools/ppfbinstream.cc	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppfbinstream.cc	(revision 2805)
@@ -52,4 +52,10 @@
 //-------------------------------------------------------------------------
 
+/*!
+   \class SOPHYA::PPFBinaryIOStream
+   \ingroup BaseTools
+   Base class for SOPHYA PPF input / output stream
+*/
+
 
 PPFBinaryIOStream::PPFBinaryIOStream()
@@ -68,4 +74,5 @@
 }
 
+//! Return the creation date/time of the associated stream as a string 
 string 
 PPFBinaryIOStream::CreationDateStr()
@@ -76,4 +83,5 @@
 }
 
+//! Return a string with information about the stream (creation-date, version ...)
 string 
 PPFBinaryIOStream::InfoString()
@@ -95,4 +103,5 @@
 
 
+//! Return the name tag number \b itag
 string
 PPFBinaryIOStream::GetTagName(int itag)
@@ -105,4 +114,5 @@
 
 
+//! Return a reference to a vector<string> containing all name-tags associated with the stream
 static vector<string> * ret_tag_names = NULL;
 vector<string> const &
@@ -120,4 +130,15 @@
 //-------------------------------------------------------------------------
 
+/*!
+   \class SOPHYA::PPFBinaryInputStream
+   \ingroup BaseTools
+   PPF Input stream implementing read operations
+*/
+
+/*! Constructor from a RawInOutStream pointer
+  \param is : pointer to RawInOutStream
+  \param ad : if true, the RawInOutStream \b is is deleted by the destructor 
+  \param scan : if true, try to read the name-tags table from the end of the input stream
+*/ 
 PPFBinaryInputStream::PPFBinaryInputStream(RawInOutStream * is, bool ad, bool scan)
 {
@@ -127,5 +148,8 @@
 }
 
-//++
+/*! Constructor 
+  \param  flnm : input file name
+  \param scan : if true, try to read the name-tags table from the end of the input stream
+*/  
 PPFBinaryInputStream::PPFBinaryInputStream(string const& flnm, bool scan)
 //
@@ -995,5 +1019,8 @@
 }
 
-
+/*! Scans the streams and prints in text format to standard output (cout) the PPF 
+   stream content. 
+   \param lev : print level (level of details) = 0,1,2,3
+*/
 void
 PPFBinaryInputStream::AnalyseTags(int lev)
@@ -1225,4 +1252,17 @@
 //--
 
+/*!
+   \class SOPHYA::PPFBinaryInputStream
+   \ingroup BaseTools
+   PPF output stream implementing write operations. The byte-ordering (endianess) 
+   of the output stream can be selected at creation. By default, the native endianness 
+   of the machine is used.  
+*/
+
+/*! Constructor from a RawInOutStream pointer
+  \param os : pointer to RawInOutStream
+  \param ad : if true, the RawInOutStream \b os is deleted by the destructor 
+  \param endianness : Endianness selector  PPS_NATIVE PPS_LITTLE_ENDIAN PPS_BIG_ENDIAN 
+*/ 
 PPFBinaryOutputStream::PPFBinaryOutputStream(RawInOutStream* os, bool ad, int endianness)
 {
@@ -1232,4 +1272,8 @@
 }
 
+/*! Constructor 
+  \param flnm : output file name 
+  \param endianness : Endianness selector  PPS_NATIVE PPS_LITTLE_ENDIAN PPS_BIG_ENDIAN 
+*/ 
 PPFBinaryOutputStream::PPFBinaryOutputStream(string const& flnm, int endianness)
 {
Index: trunk/SophyaLib/BaseTools/ppfnametag.h
===================================================================
--- trunk/SophyaLib/BaseTools/ppfnametag.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppfnametag.h	(revision 2805)
@@ -7,5 +7,33 @@
 
 #include "ppersist.h"
-
+/*!
+   \class SOPHYA::PPFNameTag
+   \ingroup BaseTools
+   A simple class which can be used in conjuction with << and >> operators
+   to write nametags in POutPersist streams or position an input PInPersist
+   stream at a given nametag. 
+   Nametags are strings which can be used to identify objects for further 
+   retrieval in PPF streams.
+   Pushing a PPFNameTag(tname) to an output stream \b os corresponds to 
+   so.WriteNameTag(tname). Extracting a PPFNameTag(tname) from an input stream
+   \b is corresponds to is.GotoNameTag(tname).
+   
+   \code
+   {
+   // Writing a name tag and an object to a stream
+   NDataBlock<int_4> idb(16);
+   idb = 16;
+   POutPersist so("myfile.ppf");
+   so << PPFNameTag("MyIDB") << idb ;
+   }
+   //...
+   {
+   // Positioning and Reading from a PPF stream
+   PInPersist si("myfile.ppf");
+   NDataBlock<int_4> idb;
+   si >>  PPFNameTag("MyIDB") >> idb;
+   }
+   \endcode
+*/
 //----------------------------------------------------------------------
 namespace SOPHYA {
Index: trunk/SophyaLib/BaseTools/ppfswapper.h
===================================================================
--- trunk/SophyaLib/BaseTools/ppfswapper.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppfswapper.h	(revision 2805)
@@ -12,5 +12,4 @@
 #include "ppftpointerio.h"
 
-namespace SOPHYA {
 /*!
   \class SOPHYA::PPFDataSwapper
@@ -18,5 +17,10 @@
   Implementation of SOPHYA::DataSwapperInterface interface on PPF streams 
   (POutPersist , PInPersist) to be used with SOPHYA::SwSegDataBlock classes.
+  the identifier idx is not used in this implementation. In case of re-writing 
+  to swap, the previous position is ignored, the data is re-written to swap 
+  and a new swap position is returned.
 */
+
+namespace SOPHYA {
 
 template <class T> 
Index: trunk/SophyaLib/BaseTools/ppftpointerio.cc
===================================================================
--- trunk/SophyaLib/BaseTools/ppftpointerio.cc	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppftpointerio.cc	(revision 2805)
@@ -10,5 +10,5 @@
 //----------------------------------------------------------------------
 namespace SOPHYA {
-
+//! \cond
 // Specific implementation using table I/O in PPFBinaryIOStreams 
 /* DECL_TEMP_SPEC   equivalent a template <> , pour SGI-CC en particulier */
@@ -79,4 +79,5 @@
   { is.Get(arr,n); }
 
+//! \endcond
 
 }  // namespace SOPHYA
Index: trunk/SophyaLib/BaseTools/ppftpointerio.h
===================================================================
--- trunk/SophyaLib/BaseTools/ppftpointerio.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppftpointerio.h	(revision 2805)
@@ -9,6 +9,4 @@
 
 //----------------------------------------------------------------------
-namespace SOPHYA {
-
 /*!
   \class SOPHYA::PPF_TPointer_IO
@@ -21,4 +19,6 @@
   new types and classes.
 */
+
+namespace SOPHYA {
 
 template <class T>
@@ -37,4 +37,5 @@
 };
 
+//! \cond
 // declaration specifique pour ecriture sous forme de tableaux PPF
 DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
@@ -123,4 +124,5 @@
 };
 
+//! \endcond
 }  // namespace SOPHYA
 
Index: trunk/SophyaLib/BaseTools/ppfwrapstlv.h
===================================================================
--- trunk/SophyaLib/BaseTools/ppfwrapstlv.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/ppfwrapstlv.h	(revision 2805)
@@ -14,6 +14,4 @@
 #include <iostream>
 
-namespace SOPHYA {
-
 /*!
    \class SOPHYA::PPFWrapperSTLVector
@@ -27,4 +25,7 @@
    using the macro \b PPRegister(PPFWrapperSTLVector<T>)
 */
+
+namespace SOPHYA {
+
    
 template <class T>
Index: trunk/SophyaLib/BaseTools/rcptr.h
===================================================================
--- trunk/SophyaLib/BaseTools/rcptr.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/rcptr.h	(revision 2805)
@@ -4,21 +4,25 @@
 #define RCPTR_H
 
-// This implements a very simple "smart pointer" with reference counting.
-// Many refinements are possible
+/*!
+  \class RCPtr
+  \ingroup BaseTools
+  This implements a very simple "smart pointer" with reference counting.
+  Many refinements are possible
+  Eric Aubourg  1999   CEA/DAPNIA/SPP
 
-// Principle :  use RCPtr<T> instead of T*
-// To use with type X, define
-//  typedef RCPtr<X> Xp;
-//  When creating a new object, use
-//    Xp xp = new X(...);
-// xp can be used like a X*   xp->field, xp->method(), *xp ...
-//    can be passed by reference, copied, etc
-// the object is destroyed when the last Xp is destroyed.
+  \verbatim
+  Principle :  use RCPtr<T> instead of T*
+  To use with type X, define
+  typedef RCPtr<X> Xp;
+  When creating a new object, use
+  Xp xp = new X(...);
+  xp can be used like a X*   xp->field, xp->method(), *xp ...
+  can be passed by reference, copied, etc
+  the object is destroyed when the last Xp is destroyed.
 
-// The class RCCPtr<X> is a const smart pointer, to be used like
-// a X const *.
-
-// Eric Aubourg  1999   CEA/DAPNIA/SPP
-
+  The class RCCPtr<X> is a const smart pointer, to be used like
+  a X const *.
+  \endverbatim
+*/
 
 template <class T> class RCCPtr;
@@ -69,5 +73,5 @@
 
 
-// A const smart pointer
+//! A const smart pointer class
 template <class T>
 class RCCPtr {
Index: trunk/SophyaLib/BaseTools/segdatablock.h
===================================================================
--- trunk/SophyaLib/BaseTools/segdatablock.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/segdatablock.h	(revision 2805)
@@ -14,11 +14,4 @@
 #include <typeinfo>
 
-namespace SOPHYA {
-
-////////////////////////////////////////////////////////////////
-//// ---------------- Class SegDBInterface ------------------ //
-//// ----------------- Class SegDataBlock ------------------- //
-////////////////////////////////////////////////////////////////
-
 /*!
    \class SOPHYA::SegDBInterface
@@ -26,4 +19,18 @@
    Interface definition for segmented data container (template class).
 */
+/*!
+   \class SOPHYA::SegDataBlock
+   \ingroup BaseTools
+   Template class impementing segmented data container in memory with 
+   management of reference sharing. 
+*/
+
+namespace SOPHYA {
+
+////////////////////////////////////////////////////////////////
+//// ---------------- Class SegDBInterface ------------------ //
+//// ----------------- Class SegDataBlock ------------------- //
+////////////////////////////////////////////////////////////////
+
 template <class T>
 class SegDBInterface : public AnyDataObj {
@@ -49,12 +56,6 @@
 };
 
+
 // classe de container avec partage de reference
-//! Segmented data container with reference sharing
-/*!
-   \class SOPHYA::SegDataBlock
-   \ingroup BaseTools
-   Template class impementing segmented data container in memory with 
-   management of reference sharing. 
-*/
 template <class T>
 class SegDataBlock : public SegDBInterface<T> {
@@ -242,12 +243,14 @@
     mSRef = NULL;
   }
-  //! SDREF structure for reference management - for internal use by SegDataBlock
+  /*! \cond 
+    SDREF structure for reference management - for internal use by SegDataBlock
+  */
   typedef struct {
-    size_t nref;      //!< Number of references to the data structure
-    uint_8 dsid;      //!< Data structure Id - Used by FIO_SegDataBlock
+    size_t nref;      // Number of references to the data structure
+    uint_8 dsid;      // Data structure Id - Used by FIO_SegDataBlock
     std::vector<T *> dseg;
     size_t segsize;
   } SDREF;
-
+  /*! \endcond */
   SDREF *  mSRef;    //!< SDREF structure for reference sharing
 };
Index: trunk/SophyaLib/BaseTools/swsegdb.h
===================================================================
--- trunk/SophyaLib/BaseTools/swsegdb.h	(revision 2794)
+++ trunk/SophyaLib/BaseTools/swsegdb.h	(revision 2805)
@@ -12,11 +12,4 @@
 #include <typeinfo>
 
-namespace SOPHYA {
-
-////////////////////////////////////////////////////////////////
-//// ------------- Class DataSwapperInterface --------------- //
-//// ---------------- Class SwSegDataBlock ------------------ //
-////////////////////////////////////////////////////////////////
-
 /*!
   \class SOPHYA::DataSwapperInterface
@@ -25,15 +18,4 @@
   with SOPHYA::SwSegDataBlock classes.
 */
-template <class T> 
-class DataSwapperInterface {
-public:
-  virtual ~DataSwapperInterface() { }
-  //! Swap out the data array pointed by \b d with size \b sz
-  virtual int_8 WriteToSwap(const T * d, size_t sz, int_8 idx, int_8 oswp=0, bool osw=false) = 0;
-  //! Swap in the data array pointed by \b d with size \b sz
-  virtual void  ReadFromSwap(int_8 idx, int_8 swp, T* d, size_t sz) = 0;
-};
-
-//! Segmented data structure with swap management
 /*!
   \class SOPHYA::SwSegDataBlock
@@ -41,4 +23,35 @@
   Segmented data structure with swap space management.
 */
+
+namespace SOPHYA {
+
+////////////////////////////////////////////////////////////////
+//// ------------- Class DataSwapperInterface --------------- //
+//// ---------------- Class SwSegDataBlock ------------------ //
+////////////////////////////////////////////////////////////////
+
+template <class T> 
+class DataSwapperInterface {
+public:
+  virtual ~DataSwapperInterface() { }
+  /*! Swap out the data array pointed by \b d with size \b sz
+    Return the swap position which might be used later to retrieve the data from swap
+    \param d : Pointer to the memory segment
+    \param sz : Number of elements (type T) 
+    \param idx : An integer which might be used to identify the data (optional)
+    \param oswp : Old swap position, if the data has already been swapped
+    \param osw : true -> data has already been swapped
+  */
+  virtual int_8 WriteToSwap(const T * d, size_t sz, int_8 idx, int_8 oswp=0, bool osw=false) = 0;
+  /*! Swap in the data array pointed by \b d with size \b sz
+    Retrieves the data from swap space and copies it to \b d
+    \param idx : optional data identifier
+    \param swp : swap position (obtained from a previous call to WriteToSwap()
+    \param d : pointer to T , where the data will be copied from swap space
+    \param sz : Number of data elements (type T) 
+   */
+  virtual void  ReadFromSwap(int_8 idx, int_8 swp, T* d, size_t sz) = 0;
+};
+
 template <class T>
 class SwSegDataBlock : public SegDBInterface<T> {
@@ -172,4 +185,5 @@
   }
 
+  //! \cond
   typedef struct {
     size_t nref;      // Number of references to the data structure  
@@ -183,5 +197,5 @@
     DataSwapperInterface<T> * swapper;   // Data swapper
   } SWSDREF;
-
+  //! \endcond
   SWSDREF *  mSRef;    // SWSDREF structure for reference sharing
 };
Index: trunk/SophyaLib/BaseTools/timestamp.cc
===================================================================
--- trunk/SophyaLib/BaseTools/timestamp.cc	(revision 2794)
+++ trunk/SophyaLib/BaseTools/timestamp.cc	(revision 2805)
@@ -9,4 +9,21 @@
 #include <iostream>
 
+/*!
+   \class SOPHYA::TimeStamp
+   \ingroup BaseTools
+   A simple class for representing date and time. Simple operations 
+   on date/time are also provided. 
+   
+   \code
+   // Create a object with the current date and time and prints it to cout
+   TimeStamp ts; 
+   cout << ts << endl;
+   // Create an object with a specified date and time 
+   TimeStamp ts2("01/01/1905","00:00:00");
+   // Get the number of days since 0 Jan 1901
+   cout << ts2.ToDays() << endl;
+   \endcode
+*/
+
 #ifdef Linux 
 // La fonction trunc non declaree ds math.h sous Linux
@@ -16,4 +33,5 @@
 //--------------------------  Classe TimeStamp   --------------------------
 //-------------------------------------------------------------------------
+
 enum Jour {jour_Lundi=0, jour_Mardi, jour_Mercredi, jour_Jeudi, jour_Vendredi, jour_Samedi, jour_Dimanche};
 enum Mois {mois_Janvier=1, mois_Fevrier, mois_Mars, mois_Avril, mois_Mai, mois_Juin, mois_Juillet,
