Index: /XMLIO_V2/dev/dev_rv/Makefile.wk
===================================================================
--- /XMLIO_V2/dev/dev_rv/Makefile.wk	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/Makefile.wk	(revision 196)
@@ -31,5 +31,5 @@
 
 ifeq ($(HOSTNAME), platine1076)
-	CSUITE = intel
+	CSUITE = gnu
 	PFORME = platine-wk
 endif
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/buffer.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/buffer.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/buffer.cpp	(revision 196)
@@ -21,4 +21,18 @@
       {
          this->idata = data;
+      }
+      
+      CBuffer::CBuffer(const CBuffer & buffer)
+         : size(buffer.size), delIdata(true)
+      {
+         this->idata = new char[size]();
+         std::copy (buffer.idata, buffer.idata+size, this->idata);
+      }
+      
+      CBuffer::CBuffer(const CBuffer * const buffer)
+         : size(buffer->size), delIdata(true)
+      {
+         this->idata = new char[size]();
+         std::copy (buffer->idata, buffer->idata+size, this->idata);       
       }
 
@@ -198,12 +212,18 @@
          ofs.close();
       }
-
+      
+      //---------------------------------------------------------------
+      
       void CBuffer::printToBinaryStream (StdOStream & ostr)
-      {  ostr.write (this->getData(), this->getSize()); }
-
-
-      StdSize CBuffer::getNextDataPosition(StdSize position) const
+      {  
+         ostr.write (this->getData(), this->getSize()); 
+      }
+      
+      //---------------------------------------------------------------
+      
+      StdSize CBuffer::getNextDataPosition(StdSize position)
       {
          CBufferData  bufdata;
+         this->updateBufferData(position);
          this->getBufferData(bufdata, position);
          return (bufdata.size + bufdata.position);
@@ -214,6 +234,18 @@
       template <>
          StdSize CBuffer::getRequestedSize(StdString data) const
-      { return (DATA_HEADER_SIZE + data.size() * sizeof (char)); }
-
+      { 
+         return (DATA_HEADER_SIZE + data.size() * sizeof (char)); 
+      }
+      
+      //---------------------------------------------------------------
+      
+      void CBuffer::updateBufferData(StdSize position)
+      {
+         CBufferData bufdata;
+         this->getBufferData(bufdata, position);
+         bufdata.position = position + DATA_HEADER_SIZE;
+         this->setBufferData(bufdata, position);
+      }
+      
       ///--------------------------------------------------------------
 
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/buffer.hpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/buffer.hpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/buffer.hpp	(revision 196)
@@ -41,5 +41,5 @@
                inline StdSize getRequestedSize(ARRAY(T, 1) data) const;
 
-            StdSize getNextDataPosition(StdSize position) const;
+            StdSize getNextDataPosition(StdSize position);
 
          //--------------------------------------------------------------
@@ -79,4 +79,5 @@
 
             virtual void clear(void) = 0;
+            void updateBufferData(StdSize position);
 
             /// Sortie fichier binaire ///
@@ -96,6 +97,6 @@
             CBuffer(char * data, StdSize size);
             explicit CBuffer(StdSize size);
-            CBuffer(const CBuffer & buffer);         // Not implemented yet.
-            CBuffer(const CBuffer * const buffer);   // Not implemented yet.
+            CBuffer(const CBuffer & buffer);
+            CBuffer(const CBuffer * const buffer);
 
             /// Accesseurs protÃ©gÃ©s ///
@@ -108,5 +109,4 @@
 
             /// Mutateurs protÃ©gÃ©s ///
-
             template <class T>
                inline void setData(const T & data, StdSize position);
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_list.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_list.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_list.cpp	(revision 196)
@@ -7,11 +7,8 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
       CBufferList::CBufferList(MPIComm com_client_server)
-         : SuperClass()
+         : SuperClass(CMPIManager::GetCommSize(com_client_server) - 1)
          , com_client_server(com_client_server)
          , nbbuffer(CMPIManager::GetCommSize(com_client_server) - 1)
-      {
-         for (StdSize i = 0; i < this->nbbuffer; i++)
-            SuperClass::push_back(BufferType(BUFFER_SERVER_SIZE));
-      }
+      { /* Ne rien faire de plus */ }
 
       CBufferList::~CBufferList(void)
@@ -28,5 +25,5 @@
       }
 
-      void CBufferList::recvRequests(void)
+      bool CBufferList::recvRequests(void)
       {
          while (!this->hasRequests())
@@ -38,17 +35,27 @@
                   StdSize size = CMPIManager::GetReceivedDataSize(com_client_server, i);
                   if (SuperClass::operator[](i-1).isAvailable(size))
+                  {
+                     std::cout << "b:" << i << std::endl;
                      CMPIManager::ReceiveCircularBuffer
                         (com_client_server, i, SuperClass::operator[](i-1));
+                  }
+                  else
+                  {
+                     DEBUG ("Impossible d'Ã©crire dans le tampon " << i 
+                             << " (Taille requise : " << size << " octets,"
+                             << " Taille du buffer circulaire : "
+                             << SuperClass::operator[](i-1).getSize() << " octets)");
+                  }
                }
             }
          }
+         std::cout << "lol" << std::endl;
+         return (true);
       }
 
-      std::vector<CLinearBuffer> CBufferList::getRequests(void)
+      void CBufferList::getRequests(std::vector<CLinearBuffer> & lbuffer)
       {
-         std::vector<CLinearBuffer> retvalue;
          for (StdSize i = 0; i < this->nbbuffer; i++)
-            retvalue.push_back(SuperClass::operator[](i).getNextRequest());
-         return (retvalue);
+            lbuffer.push_back(SuperClass::operator[](i).getNextRequest());
       }
 
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_list.hpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_list.hpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_list.hpp	(revision 196)
@@ -33,9 +33,9 @@
 
             /// Traitement ///
-            void recvRequests(void);
+            bool recvRequests(void);
 
             /// Accesseurs ///
             StdSize getNumberOfBuffers(void) const;
-            std::vector<CLinearBuffer> getRequests(void);
+            void getRequests(std::vector<CLinearBuffer> & lbuffer);
 
             /// Destructeur ///
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_pair.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_pair.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_pair.cpp	(revision 196)
@@ -20,8 +20,8 @@
       bool CBufferPair::mustBeSent(void)
       {
-         if (((currentBuffer == 0) && (first.getUsedSize() != 0) &&
-              ((second_request == -1) || CMPIManager::Test (second_request))) ||
-             ((currentBuffer == 1) && (second.getUsedSize() != 0) &&
-              ((first_request == -1) || CMPIManager::Test (first_request))))
+         if (((currentBuffer  ==  0) && (first.getUsedSize()  != 0) &&
+             ((second_request == -1) || CMPIManager::Test (second_request))) ||
+             ((currentBuffer  ==  1) && (second.getUsedSize() != 0) &&
+             ((first_request  == -1) || CMPIManager::Test (first_request))))
             return (true);
          return (false);
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_pair.hpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_pair.hpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/buffer_pair.hpp	(revision 196)
@@ -66,5 +66,7 @@
                                           A1 * arg1, A2 * arg2, A3 * arg3, A4 * arg4)
       {
-         if (this->mustBeSent()) this->sendCurrentBuffer();       
+         if (this->mustBeSent()) 
+            this->sendCurrentBuffer();
+
            
          CLinearBuffer & cbuffer = this->getCurrentBuffer();
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/circular_buffer.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/circular_buffer.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/circular_buffer.cpp	(revision 196)
@@ -9,5 +9,19 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
       CCircularBuffer::CCircularBuffer(StdSize size)
-         : SuperClass(size), p_write(0), p_read(0), p_unused(0), nbrequest(0)
+         : SuperClass(size)
+         , p_write(0), p_read(0), p_unused(0)
+         , nbrequest(0)
+      { /* Ne rien faire de plus */ }
+
+      CCircularBuffer::CCircularBuffer(const CCircularBuffer & cbuffer)
+         : SuperClass(cbuffer)
+         , p_write(cbuffer.p_write), p_read(cbuffer.p_read), p_unused(cbuffer.p_unused)
+         , nbrequest(cbuffer.nbrequest)
+      { /* Ne rien faire de plus */ }
+      
+      CCircularBuffer::CCircularBuffer(const CCircularBuffer * const cbuffer)
+         : SuperClass(cbuffer)
+         , p_write(cbuffer->p_write), p_read(cbuffer->p_read), p_unused(cbuffer->p_unused)
+         , nbrequest(cbuffer->nbrequest)
       { /* Ne rien faire de plus */ }
 
@@ -45,5 +59,7 @@
          return (currsize);
       }
-
+      
+      //-------------------------------------------------------------
+      
       CLinearBuffer CCircularBuffer::getNextRequest(void)
       {
@@ -74,5 +90,6 @@
          return (SuperClass::getData(this->prepareNextDataPosition(data_size)));
       }
-
+      
+      //-------------------------------------------------------------
 
       StdSize CCircularBuffer::prepareNextDataPosition(StdSize data_size)
@@ -102,5 +119,7 @@
             this->clear();
       }
-
+      
+      //-------------------------------------------------------------
+      
       void CCircularBuffer::movePWrite(StdSize data_size)
       {
@@ -128,6 +147,10 @@
 
       bool CCircularBuffer::hasRequest(void) const
-      { return (this->nbrequest != 0); }
-
+      { 
+         return (this->nbrequest != 0); 
+      }
+      
+      //-------------------------------------------------------------
+      
       bool CCircularBuffer::isAvailable(StdSize data_size) const
       {
@@ -146,5 +169,7 @@
          ofs.close();
       }
-
+      
+      //-------------------------------------------------------------
+      
       void CCircularBuffer::printToTextStream (StdOStream & ostr)
       {
@@ -184,7 +209,8 @@
       void CCircularBuffer::updateNbRequests(StdSize data_begin, StdSize data_end)
       {
-         StdSize position = data_begin;
+         StdSize position = data_begin, i = 0;
          while (position != data_end)
          {
+            i++;
             this->nbrequest++;
             position = SuperClass::getNextDataPosition(position); // manager id
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/circular_buffer.hpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/circular_buffer.hpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/circular_buffer.hpp	(revision 196)
@@ -21,7 +21,7 @@
 
             /// Construteurs ///
-            explicit CCircularBuffer(StdSize size);
-            CCircularBuffer(const CCircularBuffer & cbuffer);         // Not implemented yet.
-            CCircularBuffer(const CCircularBuffer * const cbuffer);   // Not implemented yet.
+            explicit CCircularBuffer(StdSize size = BUFFER_SERVER_SIZE);
+            CCircularBuffer(const CCircularBuffer & cbuffer);
+            CCircularBuffer(const CCircularBuffer * const cbuffer);
 
             /// Mutateurs ///
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/client.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/client.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/client.cpp	(revision 196)
@@ -42,4 +42,5 @@
                                        CLinearBuffer::NULL_ARG);
       // Pas d'argument Ã  ajouter.
+      this->bpair.sendCurrentBuffer(); 
    }
    
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/linear_buffer.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/linear_buffer.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/linear_buffer.cpp	(revision 196)
@@ -9,11 +9,19 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
       CLinearBuffer::CLinearBuffer(char * data, StdSize size)
-         : SuperClass(data, size), p_write(size)
+         : SuperClass(data, size), bdata(), p_write(size)
       { this->computeBufferData(); }
 
       CLinearBuffer::CLinearBuffer(StdSize size)
-         : SuperClass(size), p_write(0)
-      { /* Ne rien faire de plus */ }
-
+         : SuperClass(size), bdata(), p_write(0)
+      { /* Ne rien faire de plus */ }
+      
+      CLinearBuffer::CLinearBuffer(const CLinearBuffer & lbuffer)
+         : SuperClass(lbuffer), bdata(lbuffer.bdata), p_write(lbuffer.p_write)
+      { /* Ne rien faire de plus */ }
+      
+      CLinearBuffer::CLinearBuffer(const CLinearBuffer * const lbuffer)
+         : SuperClass(lbuffer), bdata(lbuffer->bdata), p_write(lbuffer->p_write)      
+      { /* Ne rien faire de plus */ }
+      
       CLinearBuffer::~CLinearBuffer(void)
       { /* Ne rien faire de plus */ }
@@ -121,6 +129,10 @@
 
       StdSize CLinearBuffer::getNumberOfStoredData(void) const
-      { return (this->bdata.size()); }
-
+      { 
+         return (this->bdata.size()); 
+      }
+      
+      //---------------------------------------------------------------
+      
       std::vector<StdSize> CLinearBuffer::getPositionsOfStoredData(void) const
       {
@@ -137,5 +149,7 @@
          return (retvalue);
       }
-
+      
+      //---------------------------------------------------------------
+      
       std::vector<StdSize> CLinearBuffer::getSizesOfStoredData(void) const
       {
@@ -151,5 +165,7 @@
          return (retvalue);
       }
-
+      
+      //---------------------------------------------------------------
+      
       std::vector<std::pair<CBuffer::CBufferDataType, bool> >
          CLinearBuffer::getTypesOfStoredData(void) const
@@ -179,4 +195,5 @@
          {
             bdata.push_back(this->p_write);
+            SuperClass::updateBufferData(this->p_write);
             SuperClass::getBufferData(bufdata, this->p_write);
             this->p_write = (bufdata.size + bufdata.position);
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/linear_buffer.hpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/linear_buffer.hpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/linear_buffer.hpp	(revision 196)
@@ -28,8 +28,8 @@
             /// Construteurs ///
 
-            explicit CLinearBuffer(StdSize size);
+            explicit CLinearBuffer(StdSize size = BUFFER_CLIENT_SIZE);
             CLinearBuffer(char * data, StdSize size);
-            CLinearBuffer(const CLinearBuffer & lbuffer);         // Not implemented yet.
-            CLinearBuffer(const CLinearBuffer * const lbuffer);   // Not implemented yet.
+            CLinearBuffer(const CLinearBuffer & lbuffer);
+            CLinearBuffer(const CLinearBuffer * const lbuffer);
 
             /// Accesseurs ///
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/main_server.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/main_server.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/main_server.cpp	(revision 196)
@@ -5,4 +5,7 @@
 #include "group_template_impl.hpp"
 
+#include "client.hpp"
+#include "server.hpp"
+
 #include "fake.hpp"
 
@@ -10,9 +13,26 @@
 int main(int argc, char ** argv, char ** UNUSED(env))
 {
-   /*try
+   try
    {
-      //comm::CMPIManager::Initialise(&argc, &argv); // < seulement en mode connectÃ©
+      comm::CMPIManager::Initialise(&argc, &argv); // < seulement en mode connectÃ©
+      
+      if (comm::CMPIManager::IsMaster(comm::CMPIManager::GetCommWorld()))
+      {
+         comm::CServer server(comm::CMPIManager::GetCommWorld());
+         server.run();
+         std::cout << "fin serveur" << std::endl;
+         
+      }
+      else
+      {
+         comm::CClient client(comm::CMPIManager::GetCommWorld());
+         client.initialize();
+         client.finalize();
+      }
+      
+      comm::CMPIManager::Finalize(); // < seulement en mode connectÃ©
+      
      
-      CXIOSManager::Initialise(CXIOSManager::CLIENT_SERVER, &argc, &argv);
+      /*CXIOSManager::Initialise(CXIOSManager::CLIENT_SERVER, &argc, &argv);
       
       CXIOSManager::AddClient("nemo"    , 4, 2, &nemo_fake_entry);
@@ -20,7 +40,7 @@
       //CXIOSManager::AddClient("lmdz"    , 4, 2, &lmdz_fake_entry);
       CXIOSManager::RunClientServer(comm::CMPIManager::GetCommWorld());
-      CXIOSManager::Finalize();
+      CXIOSManager::Finalize();*/
       
-      //comm::CMPIManager::Finalize(); // < seulement en mode connectÃ©
+      
 
    }
@@ -30,5 +50,5 @@
       CMPIManager::Finalize();
       return (EXIT_FAILURE);
-   }*/
+   }
    return (EXIT_SUCCESS);
 }
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/manager/mpi_manager.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/manager/mpi_manager.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/manager/mpi_manager.cpp	(revision 196)
@@ -239,5 +239,4 @@
          StdSize data_begin = buff.prepareNextDataPosition(data_size);
          CMPIManager::Receive(comm, src_rank, buff.getData(data_begin));
-
          buff.updateNbRequests(data_begin, data_begin + data_size);
       }
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.cpp	(revision 196)
@@ -201,5 +201,4 @@
                << " vÃ©rifiez les valeurs nj, nj_glo, jbegin, jend") ;
    }
-
 
    //----------------------------------------------------------------
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/server.cpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/server.cpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/server.cpp	(revision 196)
@@ -4,6 +4,146 @@
 namespace comm {
 
+   /// ////////////////////// DÃ©finitions ////////////////////// ///
+   
+   CServer::CServer(MPIComm comm_client_server)
+      : blist(comm_client_server)
+   { /* Ne rien faire de plus */ }  
+        
+   CServer::~CServer(void)
+   { /* Ne rien faire de plus */ } 
+   
+   ///--------------------------------------------------------------
+   
+   const CBufferList & CServer::getBufferList(void) const 
+   {
+      return (this->blist);
+   }   
+   
+   //---------------------------------------------------------------
+   
+   void CServer::run(void)
+   {
+      while (this->blist.recvRequests())
+      {
+         long int managerId = 0, methodId  = 0, nbargs  = 0;
+         long int managerId_= 0, methodId_ = 0, nbargs_ = 0;
+         std::vector<CLinearBuffer> lbuffer;
+         this->blist.getRequests(lbuffer);
+         for (StdSize i = 0; i < lbuffer.size(); i++)
+         {
+            lbuffer[i].getRequestInfos(0, managerId, methodId, nbargs);
+            if (((managerId_ != managerId) || (methodId_ != methodId) || (nbargs_ != nbargs)) && (i != 0 ))
+            {
+               /*std::cout << managerId_ << "<->" << managerId << std::endl
+                           << methodId_  << "<->" << methodId  << std::endl
+                           << nbargs_    << "<->" << nbargs    << std::endl;*/
+               ERROR("CServer::run(void)", << "[" << i << "] Les requÃªtes ne sont pas synchronisÃ©es !");
+            }
+            managerId_ = managerId;
+            methodId_  = methodId;
+            nbargs_    = nbargs;
+         }
+            
+         if (managerId == 0)
+         {
+            switch(methodId)
+            {
+               case (0) :
+                  this->initialize();
+                  continue;
+               case (1) :
+                  this->finalize();
+                  return;
+               default  :
+                  ERROR("CServer::run(void)", 
+                     << "[ managerId = " << managerId << ", "
+                     << "[ methodId = "  << methodId  << ", "
+                     << "[ nbargs = "    << nbargs    << "] "
+                     << " Methode inconnue !");
+            }
+         }
+         if (managerId == 1)
+         {
+            switch(methodId)
+            {
+               case (0) :
+                  this->setContext(lbuffer);
+                  continue;
+               case (1) :
+                  this->updateCalendar(lbuffer);
+                  continue;
+               default  :
+                  ERROR("CServer::run(void)", 
+                     << "[ managerId = " << managerId << ", "
+                     << "[ methodId = "  << methodId  << ", "
+                     << "[ nbargs = "    << nbargs    << "] "
+                     << " Methode inconnue !");
+            }
+         }
+         if (managerId == 2)
+         {
+            switch(methodId)
+            {
+               case (0) :
+                  this->writeData(lbuffer, 4);
+                  continue;
+               case (1) :
+                  this->writeData(lbuffer, 8);
+                  continue;
+               default  :
+                  ERROR("CServer::run(void)", 
+                     << "[ managerId = " << managerId << ", "
+                     << "[ methodId = "  << methodId  << ", "
+                     << "[ nbargs = "    << nbargs    << "] "
+                     << " Methode inconnue !");
+            }
+         }
+         ERROR("CServer::run(void)", 
+                << "[ managerId = " << managerId << ", "
+                << "[ methodId = "  << methodId  << ", "
+                << "[ nbargs = "    << nbargs    << "] "
+                << " Methode inconnue !");
+      }
+   }
 
-
+   //--------------------------------------------------------------
+   
+   void CServer::initialize(void) // manager 0, method 0
+   {
+      std::cout << "initialize called " << std::endl;
+   }
+   
+   //--------------------------------------------------------------
+   
+   void CServer::finalize(void) // manager 0, method 1
+   {
+      std::cout << "finalize called " << std::endl;
+   }
+   
+   
+   //--------------------------------------------------------------
+             
+   void CServer::setContext(const std::vector<CLinearBuffer> & buffer) // manager 1, method 0
+   {
+      std::cout << "setContext called " << std::endl;
+   }
+   
+   //--------------------------------------------------------------
+   
+   void CServer::updateCalendar(const std::vector<CLinearBuffer> & buffer) // manager 1, method 1
+   {
+      std::cout << "updateCalendar called " << std::endl;
+   }
+   
+   //--------------------------------------------------------------
+         
+   void CServer::writeData(const std::vector<CLinearBuffer> & buffer, int prec)  // manager 2, method 0 - 1
+   {
+      std::cout << "writeData called " << std::endl;
+   }
+  
+   ///--------------------------------------------------------------
+   
+   
 } // namespace comm
 } // namespace xmlioserver
Index: /XMLIO_V2/dev/dev_rv/src/xmlio/server.hpp
===================================================================
--- /XMLIO_V2/dev/dev_rv/src/xmlio/server.hpp	(revision 195)
+++ /XMLIO_V2/dev/dev_rv/src/xmlio/server.hpp	(revision 196)
@@ -4,9 +4,47 @@
 /// xmlioserver headers ///
 #include "xmlioserver_spl.hpp"
+#include "mpi_manager.hpp"
+#include "buffer_list.hpp"
+#include "array.hpp"
 
 namespace xmlioserver {
 namespace comm {
 
-
+   /// ////////////////////// DÃ©clarations ////////////////////// ///
+   
+   class CServer
+   {
+      public :
+      
+         /// Constructeurs ///
+         CServer(MPIComm comm_client_server);
+                
+         /// Destructeur ///
+         ~CServer(void);
+         
+         void run(void);
+         
+      protected : 
+      
+         /// Accesseur ///
+         const CBufferList & getBufferList(void) const;
+         
+      public :
+      
+         /// Appels distants///   
+         void initialize(void); // manager 0, method 0
+         void finalize(void);   // manager 0, method 1
+             
+         void setContext(const std::vector<CLinearBuffer> & buffer);     // manager 1, method 0
+         void updateCalendar(const std::vector<CLinearBuffer> & buffer); // manager 1, method 1
+         
+         void writeData(const std::vector<CLinearBuffer> & buffer, int prec); // manager 2, method 0 - 1
+      
+      private :
+      
+         /// PropriÃ©tÃ© privÃ©e ///
+         CBufferList blist;
+      
+   }; // class CServer  
 
 } // namespace comm
