certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-cvs] certi libCERTI/ObjectClassBroadcastList.cc libC... [br_DEV_H


From: certi-cvs
Subject: [certi-cvs] certi libCERTI/ObjectClassBroadcastList.cc libC... [br_DEV_HETEROGENEOUS]
Date: Tue, 18 Mar 2008 15:55:59 +0000

CVSROOT:        /sources/certi
Module name:    certi
Branch:         br_DEV_HETEROGENEOUS
Changes by:     Eric NOULARD <erk>      08/03/18 15:55:59

Modified files:
        libCERTI       : ObjectClassBroadcastList.cc ObjectClass.cc 
                         Message_W.cc NetworkMessage_RW.cc ObjectSet.cc 
                         NetworkMessage.cc Message_R.cc 
                         NetworkMessage.hh BasicMessage.cc 
                         CMakeLists.txt Interaction.cc BasicMessage.hh 
        RTIA           : OwnershipManagement.cc Communications.cc 
                         DeclarationManagement.cc TimeManagement.cc 
                         FederationManagement.cc RTIA.cc 
                         DataDistribution.cc RTIA_federate.cc 
                         Communications.hh ObjectManagement.cc 
                         RTIA_network.cc 
        RTIG           : RTIG_processing.cc RTIG.cc Federation.cc 
        doc            : certi_doxygen.cnf.in 
Added files:
        libCERTI       : NM_Classes.hh NM_Classes.cc 

Log message:
        Heterogeneous udpate.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClassBroadcastList.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.18&r2=3.18.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClass.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.41&r2=3.41.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_W.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.20&r2=3.20.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage_RW.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.45&r2=3.45.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectSet.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.18&r2=3.18.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.28&r2=3.28.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_R.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.17&r2=3.17.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage.hh?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.30&r2=3.30.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/BasicMessage.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.9&r2=3.9.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/CMakeLists.txt?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=1.11&r2=1.11.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Interaction.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.35&r2=3.35.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/BasicMessage.hh?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.7&r2=3.7.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NM_Classes.hh?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NM_Classes.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/OwnershipManagement.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.12&r2=3.12.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/Communications.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.22&r2=3.22.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/DeclarationManagement.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.17&r2=3.17.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.29&r2=3.29.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/FederationManagement.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.50&r2=3.50.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.13&r2=3.13.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/DataDistribution.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.23&r2=3.23.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.67&r2=3.67.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/Communications.hh?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.10&r2=3.10.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.35&r2=3.35.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_network.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.22&r2=3.22.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.56&r2=3.56.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.36&r2=3.36.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.80&r2=3.80.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/doc/certi_doxygen.cnf.in?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=1.1&r2=1.1.2.1

Patches:
Index: libCERTI/ObjectClassBroadcastList.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClassBroadcastList.cc,v
retrieving revision 3.18
retrieving revision 3.18.2.1
diff -u -b -r3.18 -r3.18.2.1
--- libCERTI/ObjectClassBroadcastList.cc        29 Nov 2007 20:36:08 -0000      
3.18
+++ libCERTI/ObjectClassBroadcastList.cc        18 Mar 2008 15:55:55 -0000      
3.18.2.1
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: ObjectClassBroadcastList.cc,v 3.18 2007/11/29 20:36:08 rousse Exp $
+// $Id: ObjectClassBroadcastList.cc,v 3.18.2.1 2008/03/18 15:55:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -73,7 +73,7 @@
     reducedMessage->boolean = message->boolean ; // Useful ?
     reducedMessage->objectClass = message->objectClass ;
 
-    strcpy(reducedMessage->label, message->label);
+    reducedMessage->label = message->label;
 
     // Copy attributes that are in the bsWaiting state in Line.
     UShort currentSize ;
@@ -391,4 +391,4 @@
 
 } // namespace certi
 
-// $Id: ObjectClassBroadcastList.cc,v 3.18 2007/11/29 20:36:08 rousse Exp $
+// $Id: ObjectClassBroadcastList.cc,v 3.18.2.1 2008/03/18 15:55:55 erk Exp $

Index: libCERTI/ObjectClass.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClass.cc,v
retrieving revision 3.41
retrieving revision 3.41.2.1
diff -u -b -r3.41 -r3.41.2.1
--- libCERTI/ObjectClass.cc     5 Dec 2007 12:29:40 -0000       3.41
+++ libCERTI/ObjectClass.cc     18 Mar 2008 15:55:55 -0000      3.41.2.1
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: ObjectClass.cc,v 3.41 2007/12/05 12:29:40 approx Exp $
+// $Id: ObjectClass.cc,v 3.41.2.1 2008/03/18 15:55:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include  "Object.hh"
@@ -28,6 +28,7 @@
 #include  "ObjectClassAttribute.hh"
 #include  "ObjectClassSet.hh"
 #include  "ObjectClassBroadcastList.hh"
+#include  "NM_Classes.hh"
 
 #include "SocketTCP.hh"
 #include "PrettyDebug.hh"
@@ -238,7 +239,7 @@
             answer.federate = theFederate ;
             answer.exception = e_NO_EXCEPTION ;
             answer.object = theObjectHandle ;
-            strcpy(answer.label, theTag);
+            answer.label = theTag;
 
             int index = 0 ;
             for (int j = i ; j < nbAttributes ; j++) {
@@ -356,8 +357,7 @@
               "Object %u deleted in class %u, now broadcasting...",
               the_object, handle);
 
-        NetworkMessage *answer = new NetworkMessage ;
-        answer->type = NetworkMessage::REMOVE_OBJECT ;
+        NetworkMessage *answer = 
NM_Factory::create(NetworkMessage::REMOVE_OBJECT);        
         answer->federation = server->federation();
         answer->federate = the_federate ;
         answer->exception = e_NO_EXCEPTION ;
@@ -368,7 +368,7 @@
         answer->date = theTime ;
         answer->boolean = true ;
         
-       strcpy(answer->label, the_tag);
+       answer->label = the_tag;
 
         ocbList = new ObjectClassBroadcastList(answer, 0);
         broadcastClassMessage(ocbList);
@@ -438,7 +438,7 @@
         answer->date = 0 ;
         answer->boolean = false ;
         
-       strcpy(answer->label, the_tag);
+       answer->label = the_tag;
 
         ocbList = new ObjectClassBroadcastList(answer, 0);
         broadcastClassMessage(ocbList);
@@ -798,7 +798,7 @@
            NetworkMessage message ;
            D.Out(pdInit,
                  "Sending DiscoverObj to Federate %d for Object %u in class %u 
",
-                 federate, (*o)->getHandle(), handle, message.label);
+                 federate, (*o)->getHandle(), handle, message.label.c_str());
            
            message.type = NetworkMessage::DISCOVER_OBJECT ;
            message.federation = server->federation();
@@ -915,7 +915,7 @@
         answer->date = the_time ;
         answer->boolean = true ;
 
-        strcpy(answer->label, the_tag);
+        answer->label = the_tag;
 
         answer->handleArraySize = the_size ;
 
@@ -980,7 +980,7 @@
         answer->date = 0 ;
         answer->boolean = false ;
 
-        strcpy(answer->label, the_tag);
+        answer->label = the_tag;
 
         answer->handleArraySize = the_size ;
 
@@ -1120,7 +1120,7 @@
             AnswerDivestiture.federate = theFederateHandle ;
             AnswerDivestiture.exception = e_NO_EXCEPTION ;
             AnswerDivestiture.object = theObjectHandle ;
-            strcpy(AnswerDivestiture.label, "\0");
+            AnswerDivestiture.label =  std::string("");
             AnswerDivestiture.handleArraySize = compteur_divestiture ;
 
             sendToFederate(&AnswerDivestiture, theFederateHandle);
@@ -1132,7 +1132,7 @@
             AnswerAssumption->federate = theFederateHandle ;
             AnswerAssumption->exception = e_NO_EXCEPTION ;
             AnswerAssumption->object = theObjectHandle ;
-            strcpy(AnswerAssumption->label, theTag);
+            AnswerAssumption->label  = theTag;
             AnswerAssumption->handleArraySize = compteur_assumption ;
 
             List = new ObjectClassBroadcastList(AnswerAssumption,
@@ -1389,7 +1389,7 @@
             AnswerAssumption->federate = theFederateHandle ;
             AnswerAssumption->exception = e_NO_EXCEPTION ;
             AnswerAssumption->object = theObjectHandle ;
-            strcpy(AnswerAssumption->label, "\0");
+            AnswerAssumption->label = std::string("");
             AnswerAssumption->handleArraySize = compteur_assumption ;
 
             List = new ObjectClassBroadcastList(AnswerAssumption,
@@ -1829,4 +1829,4 @@
 
 } // namespace certi
 
-// $Id: ObjectClass.cc,v 3.41 2007/12/05 12:29:40 approx Exp $
+// $Id: ObjectClass.cc,v 3.41.2.1 2008/03/18 15:55:55 erk Exp $

Index: libCERTI/Message_W.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_W.cc,v
retrieving revision 3.20
retrieving revision 3.20.2.1
diff -u -b -r3.20 -r3.20.2.1
--- libCERTI/Message_W.cc       5 Mar 2008 15:33:50 -0000       3.20
+++ libCERTI/Message_W.cc       18 Mar 2008 15:55:55 -0000      3.20.2.1
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: Message_W.cc,v 3.20 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_W.cc,v 3.20.2.1 2008/03/18 15:55:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -217,7 +217,7 @@
            body.writeString(tag);
             body.writeShortInt(handleArraySize);
             writeHandleArray(body);
-           writeRegions(body);
+           writeRegions();
            break ;
 
           // Body contains objectClass,region,boolean,handleArraySize,
@@ -419,7 +419,7 @@
           // Body contains region,extents            
          case DDM_MODIFY_REGION:
             body.writeLongInt(region);
-           writeExtents(body);
+           writeExtents();
            break ;
 
           // Body contains region            
@@ -737,4 +737,4 @@
 
 } // namespace certi
 
-// $Id: Message_W.cc,v 3.20 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_W.cc,v 3.20.2.1 2008/03/18 15:55:55 erk Exp $

Index: libCERTI/NetworkMessage_RW.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage_RW.cc,v
retrieving revision 3.45
retrieving revision 3.45.2.1
diff -u -b -r3.45 -r3.45.2.1
--- libCERTI/NetworkMessage_RW.cc       6 Mar 2008 16:33:10 -0000       3.45
+++ libCERTI/NetworkMessage_RW.cc       18 Mar 2008 15:55:55 -0000      3.45.2.1
@@ -16,183 +16,173 @@
 // License along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: NetworkMessage_RW.cc,v 3.45 2008/03/06 16:33:10 rousse Exp $
+// $Id: NetworkMessage_RW.cc,v 3.45.2.1 2008/03/18 15:55:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 
-
 #include "NetworkMessage.hh"
 #include "PrettyDebug.hh"
 
-using std::vector ;
+using std::vector;
 using std::endl;
 using std::cout;
 
 namespace certi {
 
-static pdCDebug D("RTIG_MSG","(NetWorkMS) - ");
-static PrettyDebug G("GENDOC",__FILE__);
-
-// ----------------------------------------------------------------------------
-void NetworkMessage::trace(const char* context)
-{
-#ifndef NDEBUG
-D.Mes(pdMessage,'N',this->type,context);
-#endif
-}
+static pdCDebug D("RTIG_MSG", "(NetWorkMS) - ");
+static PrettyDebug G("GENDOC",__FILE__ );
 
 // ----------------------------------------------------------------------------
 // readBody
 void
 NetworkMessage::readBody(Socket *socket)
 {
-    MessageBody body ;
-    unsigned short i ;
+       unsigned short i;
     G.Out(pdGendoc,"enter NetworkMessage::readBody");
-    if (Header.bodySize == 0)
+       if (Header.bodySize == 0) {
         throw RTIinternalError("ReadBody should not have been called.");
+       }
 
     // 1. Read Body from socket.
-    socket->receive((void *) body.getBuffer(), Header.bodySize);
-    // FIXME EN: we must update the write pointer of the 
-        //           MessageBody because we have just written 
-        //           on it using direct pointer access !! (nasty usage)
-        body.addToWritePointer(Header.bodySize);
+    // NOTHING TO DO all buffer read in readHeader
+       // FIXME need to get rid of Header/Body distinction.
         
     // 3. Read informations from Message Body according to message type.
        //D.Mes(pdMessage, 'N',Header.type);
-       this->trace("NetworkMessage::readBody ");
 
     if (Header.exception != e_NO_EXCEPTION) {
-        body.readString(exceptionReason, MAX_EXCEPTION_REASON_LENGTH);
+               exceptionReason = msgBuf.read_string();
     }
     else {
+               D.Mes(pdDebug,'N',Header.type,"readBody::");
     switch(Header.type) {
       // line number, FEDid, Value Array size and Value array (line contents)
       case GET_FED_FILE:
-        number = body.readShortInt();
-        readFEDid(body);
+                       number = msgBuf.read_uint16();
+                       readFEDid();
         if ( number >= 1 )  // open (0) and close (0) no more information
             {
-            ValueArray[0].length = body.readLongInt();
-            body.readBlock(ValueArray[0].value, ValueArray[0].length) ;
+                               ValueArray[0].length = msgBuf.read_int32();
+                               msgBuf.read_bytes(ValueArray[0].value, 
ValueArray[0].length) ;
            }
        break ;
             
       case UPDATE_ATTRIBUTE_VALUES:
-       object = body.readLongInt();
-       readLabel(body);
-       boolean = body.readLongInt();   // true means with time
-       body.readBlock((char *) handleArray, handleArraySize * 
sizeof(AttributeHandle));
+                       object = msgBuf.read_int32();
+                       readLabel();
+                       boolean = msgBuf.read_uint32();   // true means with 
time
+                       msgBuf.read_bytes((char *) handleArray, handleArraySize 
* sizeof(AttributeHandle));
        for (i = 0 ; i < handleArraySize ; i ++) {
-            ValueArray[i].length = body.readLongInt();
-            body.readBlock(ValueArray[i].value, ValueArray[i].length) ;
+                               ValueArray[i].length = msgBuf.read_int32();
+                               msgBuf.read_bytes(ValueArray[i].value, 
ValueArray[i].length) ;
        }
        break ;
 
       case REFLECT_ATTRIBUTE_VALUES:
-       object = body.readLongInt();
-       readLabel(body);
-       boolean = body.readLongInt();    // true means with time
-       body.readBlock((char *) handleArray, handleArraySize * 
sizeof(AttributeHandle));
+                       object = msgBuf.read_int32();
+                       readLabel();
+                       boolean = msgBuf.read_int32();    // true means with 
time
+                       msgBuf.read_bytes((char *) handleArray, handleArraySize 
* sizeof(AttributeHandle));
        for (i = 0 ; i < handleArraySize ; i ++) {
-            ValueArray[i].length = body.readLongInt();
-            body.readBlock(ValueArray[i].value, ValueArray[i].length) ;
+                               ValueArray[i].length = msgBuf.read_int32();
+                               msgBuf.read_bytes(ValueArray[i].value, 
ValueArray[i].length) ;
        }
        break ;
 
       case PROVIDE_ATTRIBUTE_VALUE_UPDATE:
-       object = body.readLongInt();
-       for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
+       object = msgBuf.read_int32();
+       for (i = 0 ; i < handleArraySize ; i ++) {
+               handleArray[i] = msgBuf.read_int16();
+       }
        break ;
 
-       
        // -- O_I Variable Part With Date(Body Not Empty) --
       case SEND_INTERACTION:
       case RECEIVE_INTERACTION:
-       readLabel(body);
-       boolean = body.readLongInt();   // true means with time
-       body.readBlock((char *) handleArray,
+                       readLabel();
+                       boolean = msgBuf.read_int32();   // true means with time
+                       msgBuf.read_bytes((char *) handleArray,
                       handleArraySize * sizeof(AttributeHandle));
        for (i = 0 ; i < handleArraySize ; i ++) {
-            ValueArray[i].length = body.readLongInt() ;
-            body.readBlock(ValueArray[i].value, ValueArray[i].length) ;
+                               ValueArray[i].length = msgBuf.read_int32() ;
+                               msgBuf.read_bytes(ValueArray[i].value, 
ValueArray[i].length) ;
        }
-       region = body.readLongInt();
+                       region = msgBuf.read_int32();
        break ;
 
 
       case REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE:
-       object = body.readLongInt();
-       for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
+                       object = msgBuf.read_int32();                   
+                       for (i = 0 ; i < handleArraySize ; i ++) {
+                               handleArray[i] = msgBuf.read_int16();
+                       }
        break ;
                
       case CREATE_FEDERATION_EXECUTION:
-       readFederationName(body);
-       readFEDid(body);
+                       readFederationName();
+                       readFEDid();
        break ;
 
       case DESTROY_FEDERATION_EXECUTION:
-       readFederationName(body);
+                       readFederationName();
        break ;
        
       case REGISTER_FEDERATION_SYNCHRONIZATION_POINT:
-       readLabel(body);
-       readTag(body);
-       boolean = body.readLongInt();
+                       readLabel();
+                       readTag();
+                       boolean = msgBuf.read_int32();
         // boolean true means there is an handleArray
         if ( boolean)
             {
-            handleArraySize = body.readShortInt();
+                               handleArraySize = msgBuf.read_int16();
            for (i = 0 ; i < handleArraySize ; i ++)
-               handleArray[i] = body.readShortInt();
+                                       handleArray[i] = msgBuf.read_int16();
             }
        break ;
 
       case ANNOUNCE_SYNCHRONIZATION_POINT:
-       readLabel(body);
-       readTag(body);
+                       readLabel();
+                       readTag();
        break ;
        
       case SYNCHRONIZATION_POINT_ACHIEVED:
       case SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED:
       case FEDERATION_SYNCHRONIZED:
       case REQUEST_FEDERATION_RESTORE:
-       readLabel(body);
+                       readLabel();
        break ;
 
       case REQUEST_FEDERATION_RESTORE_SUCCEEDED:
-       readLabel(body);
+                       readLabel();
+                       G.Out(pdGendoc,"NetworkMessage::readBody type R_F_R_S 
label= %s",label.c_str());
        break ;
 
       case INITIATE_FEDERATE_RESTORE:
-       readLabel(body);
+                       readLabel();
        break ;
 
       case INITIATE_FEDERATE_SAVE:
-       readLabel(body);
+                       readLabel();
         // boolean true means with time (in the header)
-       boolean = body.readLongInt();
+                       boolean = msgBuf.read_int32();
        break ;
 
       case REQUEST_FEDERATION_SAVE:
-       readLabel(body);
+                       readLabel();
         // boolean true means with time (in the header)
-        boolean = body.readLongInt();
+                       boolean = msgBuf.read_int32();
        break ;
        
       case REQUEST_FEDERATION_RESTORE_FAILED:
-       readLabel(body);
-       readTag(body);
+                       readLabel();
+                       readTag();
        break ;
 
       case DELETE_OBJECT:
       case REMOVE_OBJECT:
-       object = body.readLongInt();
-       boolean = body.readLongInt();   // true means with time
-       readLabel(body);
+                       object = msgBuf.read_int32();
+                       boolean = msgBuf.read_int32();   // true means with time
+                       readLabel();
        break ;
 
        // -- No Variable Part --
@@ -201,20 +191,20 @@
       case INFORM_ATTRIBUTE_OWNERSHIP:
       case ATTRIBUTE_IS_NOT_OWNED:
       case QUERY_ATTRIBUTE_OWNERSHIP:
-       object = body.readLongInt();
-       handleArray[0] = body.readShortInt();
-       readLabel(body);
+                       object = msgBuf.read_int32();
+                       handleArray[0] = msgBuf.read_int16();
+                       readLabel();
        break ;
 
       case NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE:
       case REQUEST_ATTRIBUTE_OWNERSHIP_ASSUMPTION:
       case ATTRIBUTE_OWNERSHIP_ACQUISITION:
       case REQUEST_ATTRIBUTE_OWNERSHIP_RELEASE:
-       object = body.readLongInt();
-       handleArraySize = body.readShortInt();
+                       object = msgBuf.read_int32();
+                       handleArraySize = msgBuf.read_int16();
        for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
-       readLabel(body);
+                               handleArray[i] = msgBuf.read_int16();
+                       readLabel();
        break ;
 
       case ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE:
@@ -226,23 +216,23 @@
       case ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE:
       case CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION:
       case CONFIRM_ATTRIBUTE_OWNERSHIP_ACQUISITION_CANCELLATION:
-       object = body.readLongInt();
-       handleArraySize = body.readShortInt();
+                       object = msgBuf.read_int32();
+                       handleArraySize = msgBuf.read_int16();
        for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
+                               handleArray[i] = msgBuf.read_int16();
        break ;
 
       case DDM_CREATE_REGION:
-       space = body.readLongInt();
-       nbExtents = body.readLongInt();
-       region = body.readLongInt();
+                       space = msgBuf.read_int32();
+                       nbExtents = msgBuf.read_int32();
+                       region = msgBuf.read_int32();
        break ;
 
        // -- Join Variable Part --
 
       case JOIN_FEDERATION_EXECUTION:
-       readFederationName(body);
-       readFederateName(body);
+                       readFederationName();
+                       readFederateName();
        break ;
 
        // -- O_I Variable Part(Body not empty) --
@@ -250,62 +240,62 @@
       case PUBLISH_OBJECT_CLASS:
       case SUBSCRIBE_OBJECT_CLASS:
        for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
+                               handleArray[i] = msgBuf.read_int16();
        break ;
 
       case REGISTER_OBJECT:
       case DISCOVER_OBJECT:
-       object = body.readLongInt();
-       readLabel(body);
+                       object = msgBuf.read_int32();
+                       readLabel();
        break ;
 
       case DDM_MODIFY_REGION:
-       readExtents(body);
+                       readExtents();
        break ;
 
       case DDM_ASSOCIATE_REGION:
-       object = body.readLongInt();
-       region = body.readLongInt();
-       boolean = body.readLongInt();
-       handleArraySize = body.readShortInt();
+                       object = msgBuf.read_int32();
+                       region = msgBuf.read_int32();
+                       boolean = msgBuf.read_int32();
+                       handleArraySize = msgBuf.read_int16();
        for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
+                               handleArray[i] = msgBuf.read_int16();
        break ;
 
       case DDM_SUBSCRIBE_ATTRIBUTES:
-       objectClass = body.readLongInt();
-       region = body.readLongInt();
-       boolean = body.readLongInt();
-       handleArraySize = body.readShortInt();
+                       objectClass = msgBuf.read_int32();
+                       region = msgBuf.read_int32();
+                       boolean = msgBuf.read_int32();
+                       handleArraySize = msgBuf.read_int16();
        for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
+                               handleArray[i] = msgBuf.read_int16();
        break ;
 
       case DDM_UNASSOCIATE_REGION:
-       object = body.readLongInt();
-       region = body.readLongInt();
+                       object = msgBuf.read_int32();
+                       region = msgBuf.read_int32();
        break ;
 
       case DDM_UNSUBSCRIBE_ATTRIBUTES:     
-       objectClass = body.readLongInt();
-       region = body.readLongInt();
+                       objectClass = msgBuf.read_int32();
+                       region = msgBuf.read_int32();
        break ;
 
       case DDM_SUBSCRIBE_INTERACTION:
       case DDM_UNSUBSCRIBE_INTERACTION:
-       interactionClass = body.readLongInt();
-       region = body.readLongInt();
-       boolean = body.readLongInt();
+                       interactionClass = msgBuf.read_int32();
+                       region = msgBuf.read_int32();
+                       boolean = msgBuf.read_int32();
        break ;
 
       case DDM_REGISTER_OBJECT:
-       objectClass = body.readLongInt();
-       object = body.readLongInt();
-       region = body.readLongInt();
-       readTag(body);
-       handleArraySize = body.readShortInt();
+                       objectClass = msgBuf.read_int32();
+                       object = msgBuf.read_int32();
+                       region = msgBuf.read_int32();
+                       readTag();
+                       handleArraySize = msgBuf.read_int16();
        for (i = 0 ; i < handleArraySize ; i ++)
-           handleArray[i] = body.readShortInt();
+                               handleArray[i] = msgBuf.read_int16();
        break ;
            
       default:
@@ -321,16 +311,31 @@
 NetworkMessage::readHeader(Socket *socket)
 {
     G.Out(pdGendoc,"enter NetworkMessage::readHeader");
-    // 1- Read Header from Socket
-    socket->receive((void *) &Header, sizeof(HeaderStruct));
-    // 2- Parse Header(Static Part)
+       // 1- Read reserved bytes from socket
+       D.Out(pdDebug,"reading %d bytes for header",msgBuf.reservedBytes);
+       socket->receive(msgBuf(0), msgBuf.reservedBytes);       
+       msgBuf.show(msgBuf(0),5);
+       fflush(stdout);
+       msgBuf.assumeSizeFromReservedBytes();
+       D.Out(pdDebug,"Got a MsgBuf of size %d bytes (including %d 
reserved)",msgBuf.size(),msgBuf.reservedBytes);
+       
socket->receive(msgBuf(msgBuf.reservedBytes),msgBuf.size()-msgBuf.reservedBytes);
+       
+       // 3- Unmarshall Header
+       Header.type        = 
static_cast<certi::NetworkMessage::Type>(msgBuf.read_int32());
+       Header.exception   = 
static_cast<certi::TypeException>(msgBuf.read_int32());
+       Header.federate    = msgBuf.read_int32();
+       Header.federation  = msgBuf.read_int32();
+       Header.bodySize    = msgBuf.read_int32();
+       
+       D.Mes(pdDebug,'N',Header.type,"readHeader::");
+       // 2- (Pseudo) Parse Header(Static Part)
     type = Header.type ;
     exception = Header.exception ;
     federate = Header.federate ;
     federation = Header.federation ;
+       
     // If the message carry an exception, the Body will only contain the
     // exception reason.
-
     if (exception != e_NO_EXCEPTION)
         {
         G.Out(pdGendoc,"exit  Message::readHeader carrying an exception");
@@ -340,43 +345,42 @@
     // 2- Parse Header according to its type(Variable Part)
     switch (Header.type) {
       case MESSAGE_NULL:
+               Header.VP.time.date = msgBuf.read_double();
        date = Header.VP.time.date ;
        break ;
 
       case REQUEST_FEDERATION_SAVE:
+               Header.VP.O_I.date = msgBuf.read_double();
        date = Header.VP.O_I.date ;
        break ;
 
       case UPDATE_ATTRIBUTE_VALUES:
-       objectClass = Header.VP.O_I.handle ;
-       handleArraySize = Header.VP.O_I.size ;
-       date = Header.VP.O_I.date ;
-       break ;
-
       case REFLECT_ATTRIBUTE_VALUES:
+               Header.VP.O_I.handle = msgBuf.read_int32();
        objectClass = Header.VP.O_I.handle ;
+               Header.VP.O_I.size   = msgBuf.read_int32();
        handleArraySize = Header.VP.O_I.size ;
-       date = Header.VP.O_I.date ;
-       break ;
-
-      case PROVIDE_ATTRIBUTE_VALUE_UPDATE:
-       objectClass = Header.VP.O_I.handle ;
-       handleArraySize = Header.VP.O_I.size ;
+               Header.VP.O_I.date = msgBuf.read_double();
        date = Header.VP.O_I.date ;
        break ;
 
       case SEND_INTERACTION:
       case RECEIVE_INTERACTION:
+               Header.VP.O_I.handle = msgBuf.read_int32();
        interactionClass = Header.VP.O_I.handle ;
+               Header.VP.O_I.size   = msgBuf.read_int32();
        handleArraySize = Header.VP.O_I.size ;
+               Header.VP.O_I.date = msgBuf.read_double();
        date = Header.VP.O_I.date ;
        break ;
 
       case INITIATE_FEDERATE_SAVE:
+               Header.VP.O_I.date = msgBuf.read_double();
        date = Header.VP.O_I.date ;
        break ;
 
       case REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE:
+               Header.VP.O_I.size   = msgBuf.read_int32();
        handleArraySize = Header.VP.O_I.size ;
         break;
        
@@ -393,6 +397,7 @@
       case ANNOUNCE_SYNCHRONIZATION_POINT:
       case DELETE_OBJECT:
       case REMOVE_OBJECT:
+               Header.VP.O_I.date = msgBuf.read_double();
         date = Header.VP.O_I.date;
        break;
       case CLOSE_CONNEXION:
@@ -436,12 +441,16 @@
        break ;
 
       case SET_TIME_REGULATING:
+               Header.VP.time.date = msgBuf.read_double();
        date = Header.VP.time.date ;
+               Header.VP.time.R_or_C = msgBuf.read_double();
        regulator = Header.VP.time.R_or_C ;
        break ;
 
       case SET_TIME_CONSTRAINED:
+               Header.VP.time.date = msgBuf.read_double();
        date = Header.VP.time.date ;
+               Header.VP.time.R_or_C = msgBuf.read_double();
        constrained = Header.VP.time.R_or_C ;
        break ;
 
@@ -455,9 +464,13 @@
        // -- Join Variable Part(No body) --
 
       case JOIN_FEDERATION_EXECUTION:
+               Header.VP.Join.NbReg = msgBuf.read_int32();
        numberOfRegulators = Header.VP.Join.NbReg ;
+               Header.VP.Join.AdrMC = msgBuf.read_uint32();
        multicastAddress = Header.VP.Join.AdrMC ;
+               Header.VP.Join.Addr = msgBuf.read_uint32();
        bestEffortAddress = Header.VP.Join.Addr ;
+               Header.VP.Join.peer = msgBuf.read_uint32();
        bestEffortPeer = Header.VP.Join.peer ;
        break ;
 
@@ -465,6 +478,7 @@
 
       case UNPUBLISH_OBJECT_CLASS:
       case UNSUBSCRIBE_OBJECT_CLASS:
+               Header.VP.O_I.handle = msgBuf.read_int32();
        objectClass = Header.VP.O_I.handle ;
        break ;
 
@@ -474,11 +488,13 @@
       case UNSUBSCRIBE_INTERACTION_CLASS:
       case TURN_INTERACTIONS_ON:
       case TURN_INTERACTIONS_OFF:
+               Header.VP.O_I.handle = msgBuf.read_int32();
        interactionClass = Header.VP.O_I.handle ;
        break ;
 
        // DDM variable part
       case DDM_DELETE_REGION:
+               Header.VP.ddm.region = msgBuf.read_int32();
        region = Header.VP.ddm.region ;
        break ;
 
@@ -486,16 +502,20 @@
 
       case PUBLISH_OBJECT_CLASS:
       case SUBSCRIBE_OBJECT_CLASS:
+               Header.VP.O_I.handle = msgBuf.read_int32();
        objectClass = Header.VP.O_I.handle ;
+               Header.VP.O_I.size = msgBuf.read_int32();
        handleArraySize = Header.VP.O_I.size ;
        break ;
 
       case REGISTER_OBJECT:
       case DISCOVER_OBJECT:
+               Header.VP.O_I.handle = msgBuf.read_int32();
        objectClass = Header.VP.O_I.handle ;
        break ;
 
       case DDM_MODIFY_REGION:
+               Header.VP.ddm.region = msgBuf.read_int32();
        region = Header.VP.ddm.region ;
        break ;
 
@@ -516,68 +536,57 @@
 void
 NetworkMessage::writeBody(Socket *socket)
 {
-    MessageBody body ;
     unsigned short i ;
 
     G.Out(pdGendoc,"enter NetworkMessage::writeBody");
 
-    // 0- Copy the Header at the beginning of the body, in order to
-    // make a single Socket->Emettre call while sending both.
-    // WARNING: As the body size is not known yet, we will have to
-    // change it in the copy also!
-    body.writeBlock(reinterpret_cast<char *>(&Header), sizeof(HeaderStruct));
-    
-    D.Out(pdTrace, "HeaderStruct size is : <%d> out of <%d> bytes MAX in 
body\n",
-         sizeof(HeaderStruct),BUFFER_SIZE_DEFAULT);
-
    // If the message carry an exception, the Body will only contain the
    // exception reason.
-
    if (Header.exception != e_NO_EXCEPTION) {
-        body.writeString(exceptionReason);
+               msgBuf.write_string(exceptionReason);
    }
    else
     {
+               D.Mes(pdDebug,'N',Header.type,"writeBody::");
     // 1- Prepare body Structure according to Message type
     switch(Header.type) {
       case GET_FED_FILE:
-        body.writeShortInt(number);
-        writeFEDid(body);
+                       msgBuf.write_int16(number);                     
+                       writeFEDid();
         if ( number >= 1 )  // open (0) and close (0) no more information
             {
-            body.writeLongInt(ValueArray[0].length);
-            body.writeBlock(ValueArray[0].value, ValueArray[0].length);
+                               msgBuf.write_int32(ValueArray[0].length);
+                               msgBuf.write_bytes(ValueArray[0].value, 
ValueArray[0].length);
             }
       break;
 
       case UPDATE_ATTRIBUTE_VALUES:
-       body.writeLongInt(object);
-       body.writeString(label);
-       body.writeLongInt(boolean);    // true means with time (stored in 
header)
-       body.writeBlock((char *) handleArray, handleArraySize * 
sizeof(AttributeHandle));
+                       msgBuf.write_int32(object);
+                       msgBuf.write_string(label);
+                       msgBuf.write_int32(boolean);    // true means with time 
(stored in header)
+                       msgBuf.write_bytes((char *) handleArray, 
handleArraySize * sizeof(AttributeHandle));
        
        for (i = 0 ; i < handleArraySize ; i ++) {
-            body.writeLongInt(ValueArray[i].length) ;
-            body.writeBlock(ValueArray[i].value, ValueArray[i].length);
+                               msgBuf.write_int32(ValueArray[i].length) ;
+                               msgBuf.write_bytes(ValueArray[i].value, 
ValueArray[i].length);
        }
        break ;
 
       case REFLECT_ATTRIBUTE_VALUES:
-       body.writeLongInt(object);
-       body.writeString(label);
-        body.writeLongInt(boolean);
-       body.writeBlock((char *) handleArray, handleArraySize * 
sizeof(AttributeHandle));       
+                       msgBuf.write_int32(object);
+                       msgBuf.write_string(label);
+                       msgBuf.write_int32(boolean);
+                       msgBuf.write_bytes((char *) handleArray, 
handleArraySize * sizeof(AttributeHandle));    
        for (i = 0 ; i < handleArraySize ; i ++) {
-            body.writeLongInt(ValueArray[i].length) ;
-            body.writeBlock(ValueArray[i].value, ValueArray[i].length);
+                               msgBuf.write_int32(ValueArray[i].length) ;
+                               msgBuf.write_bytes(ValueArray[i].value, 
ValueArray[i].length);
        }
        break ;
 
       case PROVIDE_ATTRIBUTE_VALUE_UPDATE:
-       body.writeLongInt(object);
-       for (i = 0 ; i < handleArraySize ; i ++)
-            {
-           body.writeShortInt(handleArray[i]);
+       msgBuf.write_int32(object);
+       for (i = 0 ; i < handleArraySize ; i ++) {
+           msgBuf.write_int16(handleArray[i]);
            } 
        break ;
        
@@ -585,112 +594,113 @@
            
       case SEND_INTERACTION:
       case RECEIVE_INTERACTION:
-       body.writeString(label);
-       body.writeLongInt(boolean);    // true means with time (stored in 
header)
-       body.writeBlock((char *) handleArray,
+                       msgBuf.write_string(label);
+                       msgBuf.write_int32(boolean);    // true means with time 
(stored in header)
+                       msgBuf.write_bytes((char *) handleArray,
                        handleArraySize * sizeof(AttributeHandle));
        for (i = 0 ; i < handleArraySize ; i ++) {
-            body.writeLongInt(ValueArray[i].length);
-            body.writeBlock(ValueArray[i].value, ValueArray[i].length);
+                               msgBuf.write_int32(ValueArray[i].length);
+                               msgBuf.write_bytes(ValueArray[i].value, 
ValueArray[i].length);
        }
-        body.writeLongInt(region);
+                       msgBuf.write_int32(region);
        break ;
 
       case REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE:
-       body.writeLongInt(object);      
-       for (i = 0 ; i < handleArraySize ; i ++)
-            {
-           body.writeShortInt(handleArray[i]);
+                       msgBuf.write_int32(object);
+                       for (i = 0 ; i < handleArraySize ; i ++) {
+                               msgBuf.write_int16(handleArray[i]) ;
            } 
         break;
        
        // -- No Variable Part --
 
       case CREATE_FEDERATION_EXECUTION:
-       writeFederationName(body);
-        writeFEDid(body);
+                       writeFederationName();
+                       writeFEDid();
        break ;
 
       case DESTROY_FEDERATION_EXECUTION:
-       writeFederationName(body);
+                       writeFederationName();
        break ;
 
       case REGISTER_FEDERATION_SYNCHRONIZATION_POINT:
-       body.writeString(label);
-       body.writeString(tag);
-       body.writeLongInt(boolean);
+                       msgBuf.write_string(label);
+                       msgBuf.write_string(tag);
+                       msgBuf.write_int32(boolean);
         // boolean true means we have an handleArray
         if ( boolean )
             {
-           body.writeShortInt(handleArraySize);
-           for (i = 0 ; i < handleArraySize ; i ++)
-               body.writeShortInt(handleArray[i]);
+                               msgBuf.write_uint16(handleArraySize);
+                               for (i = 0 ; i < handleArraySize ; i ++) {
+                               msgBuf.write_uint16(handleArray[i]);
+                               }
             }        
        break ;
 
       case ANNOUNCE_SYNCHRONIZATION_POINT:
-       body.writeString(label);
-       body.writeString(tag);       
+                       msgBuf.write_string(label);
+                       msgBuf.write_string(tag);       
        break ;
 
       case SYNCHRONIZATION_POINT_ACHIEVED:
       case SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED:
       case FEDERATION_SYNCHRONIZED:
       case REQUEST_FEDERATION_RESTORE:
-       body.writeString(label);
+                       msgBuf.write_string(label);
        break ;
 
       case REQUEST_FEDERATION_RESTORE_SUCCEEDED:
-       body.writeString(label);
+                       msgBuf.write_string(label);
+                       G.Out(pdGendoc,"NetworkMessage::writeBody type R_F_R_S 
label=%s",label.c_str());
        break ;
 
 
       case INITIATE_FEDERATE_RESTORE:
-       body.writeString(label);
+                       msgBuf.write_string(label);
        break ;
 
       case INITIATE_FEDERATE_SAVE:
-       body.writeString(label);
+                       msgBuf.write_string(label);
         // boolean true means with time (in the header)
-        body.writeLongInt(boolean);
+                       msgBuf.write_int32(boolean);
        break ;
 
       case REQUEST_FEDERATION_SAVE:
-        body.writeString(label);
+                       msgBuf.write_string(label);
         // boolean true means with time (in the header)
-        body.writeLongInt(boolean);
+                       msgBuf.write_int32(boolean);
        break ;
 
       case REQUEST_FEDERATION_RESTORE_FAILED:
-       body.writeString(label);
-       body.writeString(tag);
+                       msgBuf.write_string(label);
+                       msgBuf.write_string(tag);
        break ;
 
       case DELETE_OBJECT:
       case REMOVE_OBJECT:
-       body.writeLongInt(object);
-       body.writeLongInt(boolean);    // true means with time (stored in 
header)
-       body.writeString(label);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_int32(boolean);    // true means with time 
(stored in header)
+                       msgBuf.write_string(label);
        break ;
 
       case IS_ATTRIBUTE_OWNED_BY_FEDERATE:
       case INFORM_ATTRIBUTE_OWNERSHIP:
       case ATTRIBUTE_IS_NOT_OWNED:
       case QUERY_ATTRIBUTE_OWNERSHIP:
-       body.writeLongInt(object);
-       body.writeShortInt(handleArray[0]);
-       body.writeString(label);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_int32(handleArray[0]);
+                       msgBuf.write_string(label);
        break ;
 
       case NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE:
       case REQUEST_ATTRIBUTE_OWNERSHIP_ASSUMPTION:
       case ATTRIBUTE_OWNERSHIP_ACQUISITION:
       case REQUEST_ATTRIBUTE_OWNERSHIP_RELEASE:
-       body.writeLongInt(object);
-       body.writeShortInt(handleArraySize);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_int32(handleArraySize);
        for (i = 0 ; i < handleArraySize ; i ++)
-           body.writeShortInt(handleArray[i]);
-       body.writeString(label);
+                               msgBuf.write_int32(handleArray[i]);
+                       msgBuf.write_string(label);
        break ;
 
 
@@ -703,23 +713,23 @@
       case ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE:
       case CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION:
       case CONFIRM_ATTRIBUTE_OWNERSHIP_ACQUISITION_CANCELLATION:
-       body.writeLongInt(object);
-       body.writeShortInt(handleArraySize);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_int32(handleArraySize);
        for (i = 0 ; i < handleArraySize ; i ++)
-           body.writeShortInt(handleArray[i]);
+                               msgBuf.write_int32(handleArray[i]);
        break ;
 
       case DDM_CREATE_REGION:
-       body.writeLongInt(space);
-       body.writeLongInt(nbExtents);
-       body.writeLongInt(region);
+                       msgBuf.write_int32(space);
+                       msgBuf.write_int32(nbExtents);
+                       msgBuf.write_int32(region);
        break ;
 
        // -- Join Variable Part --
 
       case JOIN_FEDERATION_EXECUTION:
-       writeFederationName(body);
-       body.writeString(federateName);
+                       writeFederationName();
+                       msgBuf.write_string(federateName);
        break ;
 
        // -- O_I Variable Part(body not empty) --
@@ -727,62 +737,62 @@
       case PUBLISH_OBJECT_CLASS:
       case SUBSCRIBE_OBJECT_CLASS:
        for (i = 0 ; i < handleArraySize ; i ++)
-           body.writeShortInt(handleArray[i]);
+                               msgBuf.write_int32(handleArray[i]);
        break ;
 
       case REGISTER_OBJECT:
       case DISCOVER_OBJECT:
-       body.writeLongInt(object);
-       body.writeString(label);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_string(label);
        break ;
 
       case DDM_MODIFY_REGION:
-       writeExtents(body);
+                       writeExtents();
        break ;
 
       case DDM_ASSOCIATE_REGION:
-       body.writeLongInt(object);
-       body.writeLongInt(region);
-       body.writeLongInt(boolean);
-       body.writeShortInt(handleArraySize);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_int32(region);
+                       msgBuf.write_int32(boolean);
+                       msgBuf.write_int32(handleArraySize);
        for (i = 0 ; i < handleArraySize ; i ++)
-           body.writeShortInt(handleArray[i]);
+                               msgBuf.write_int32(handleArray[i]);
        break ;
 
       case DDM_SUBSCRIBE_ATTRIBUTES:
-       body.writeLongInt(objectClass);
-       body.writeLongInt(region);
-       body.writeLongInt(boolean);
-       body.writeShortInt(handleArraySize);
+                       msgBuf.write_int32(objectClass);
+                       msgBuf.write_int32(region);
+                       msgBuf.write_int32(boolean);
+                       msgBuf.write_int32(handleArraySize);
        for (i = 0 ; i < handleArraySize ; i ++)
-           body.writeShortInt(handleArray[i]);
+                               msgBuf.write_int32(handleArray[i]);
        break ;
 
       case DDM_UNASSOCIATE_REGION:
-       body.writeLongInt(object);
-       body.writeLongInt(region);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_int32(region);
        break ;
 
       case DDM_UNSUBSCRIBE_ATTRIBUTES:
-       body.writeLongInt(objectClass);
-       body.writeLongInt(region);
+                       msgBuf.write_int32(objectClass);
+                       msgBuf.write_int32(region);
        break ;
            
       case DDM_SUBSCRIBE_INTERACTION:
       case DDM_UNSUBSCRIBE_INTERACTION:
-       body.writeLongInt(interactionClass);
-       body.writeLongInt(region);
-       body.writeLongInt(boolean);
+                       msgBuf.write_int32(interactionClass);
+                       msgBuf.write_int32(region);
+                       msgBuf.write_int32(boolean);
        break ;
 
       case DDM_REGISTER_OBJECT:
-       body.writeLongInt(objectClass);
-       body.writeLongInt(object);
-       body.writeLongInt(region);
-       body.writeString(tag);
-       body.writeShortInt(handleArraySize);
+                       msgBuf.write_int32(objectClass);
+                       msgBuf.write_int32(object);
+                       msgBuf.write_int32(region);
+                       msgBuf.write_string(tag);
+                       msgBuf.write_int32(handleArraySize);
        for (i = 0 ; i < handleArraySize ; i ++)
-           body.writeShortInt(handleArray[i]);
+                               msgBuf.write_int32(handleArray[i]);
        break ;
            
        // -- Default Handler --
@@ -792,14 +802,11 @@
     }
  }
 
-    // body Size does not include the copy of the Header!
-    Header.bodySize = body.size() - sizeof(HeaderStruct);
-
-    // Put the real body Size in the copy of the Header.
-    // FIXME do we really need the body size in the header??
-    (reinterpret_cast<HeaderStruct *>(body.getBufferModeRW()))->bodySize = 
Header.bodySize ;
-    D.Out(pdTrace,"Sending MessageBody of size <%d>",body.size());
-    socket->send(body.getBuffer(), body.size());
+       msgBuf.updateReservedBytes();
+       D.Out(pdDebug,"[Body] Sending a buffer of <%u> bytes",msgBuf.size());
+       msgBuf.show(msgBuf(0),5);
+       fflush(stdout);
+       socket->send(static_cast<unsigned char*>(msgBuf(0)), msgBuf.size());
 
     G.Out(pdGendoc,"exit  NetworkMessage::writeBody");
 }
@@ -811,14 +818,23 @@
     G.Out(pdGendoc,"enter NetworkMessage::writeHeader");
     // 2- Fill Header(Static Part)
     Header.type = type ;
+       msgBuf.write_int32(Header.type);
+       D.Mes(pdDebug,'N',Header.type,"writeHeader::");
+
     Header.exception = exception ;
+       msgBuf.write_int32(Header.exception);
+
     Header.federate = federate ;
+       msgBuf.write_int32(Header.federate);
+
     Header.federation = federation ;
+       msgBuf.write_int32(Header.federation);
+
     // If the message carry an exception, the Body will only contain the
     // exception reason.
-
     if (exception != e_NO_EXCEPTION) {
-        Header.bodySize = 1 ;
+               Header.bodySize = 1;
+               msgBuf.write_int32(Header.bodySize);
         G.Out(pdGendoc,"exit  NetworkMessage::writeHeader carrying an 
exception");
         return true ;
     }
@@ -829,62 +845,64 @@
     switch(type) {
       case MESSAGE_NULL:
        Header.bodySize = 0 ;
+               msgBuf.write_int32(Header.bodySize);
+               
         Header.VP.time.date = date ;
+               msgBuf.write_double(date);
        break ;
        
       case UPDATE_ATTRIBUTE_VALUES:
-       Header.bodySize = 1 ;
-        Header.VP.O_I.handle = objectClass ;
-        Header.VP.O_I.size = handleArraySize ;
-        Header.VP.O_I.date = date ;
-       break ;
-
       case REFLECT_ATTRIBUTE_VALUES:
        Header.bodySize = 1 ;
-        Header.VP.O_I.handle = objectClass ;
-        Header.VP.O_I.size = handleArraySize ;
-        Header.VP.O_I.date = date ;
-       break ;
+               msgBuf.write_int32(Header.bodySize);
 
-      case PROVIDE_ATTRIBUTE_VALUE_UPDATE:
-       Header.bodySize = 1 ;
         Header.VP.O_I.handle = objectClass ;
+               msgBuf.write_int32(objectClass);
         Header.VP.O_I.size = handleArraySize ;
+               msgBuf.write_int32(handleArraySize);
+               Header.VP.O_I.date = date ;
+               msgBuf.write_double(date);
        break ;
        
       case SEND_INTERACTION:
       case RECEIVE_INTERACTION:
        // body contains handleArray, ValueArray, label.
        Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
+               
        Header.VP.O_I.handle = interactionClass ;
+               msgBuf.write_int32(interactionClass);
        Header.VP.O_I.size = handleArraySize ;
+               msgBuf.write_int32(handleArraySize);
        Header.VP.O_I.date = date ;
+               msgBuf.write_double(date);
        break ;
 
       case REQUEST_FEDERATION_SAVE:
-       Header.bodySize = 1 ;
-        // boolean true means with time
-        if ( boolean)
-           Header.VP.O_I.date = date ;
-       break ;
-
       case INITIATE_FEDERATE_SAVE:
+               Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
         // boolean true means with time
-        if ( boolean)
+               if (boolean) {
            Header.VP.O_I.date = date ;
-       Header.bodySize = 1 ;
+                       msgBuf.write_double(date);
+               }
        break ;
 
       case REQUEST_FEDERATION_RESTORE:
       case REQUEST_FEDERATION_RESTORE_SUCCEEDED:
       case REQUEST_FEDERATION_RESTORE_FAILED:
        Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
        break ;
 
       // Body contains Object handle,handleArray
       case REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE:
         Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
+               
        Header.VP.O_I.size = handleArraySize ;
+               msgBuf.write_int32(handleArraySize);
         break;
 
        // -- No Variable Part, No body --
@@ -902,13 +920,21 @@
       case FEDERATION_RESTORED:
       case FEDERATION_NOT_RESTORED:
        Header.bodySize = 0 ;
+               msgBuf.write_int32(Header.bodySize);
        break ;
 
        // -- No Variable Part, body not empty --
 
       case CREATE_FEDERATION_EXECUTION:
       case DESTROY_FEDERATION_EXECUTION:
+               
        // body Contains federationName.
+               Header.bodySize = 1 ;
+           msgBuf.write_int32(Header.bodySize);
+           Header.VP.O_I.date = date ;
+           msgBuf.write_double(date);      
+               break;
+               
       case INFORM_ATTRIBUTE_OWNERSHIP:
       case ATTRIBUTE_IS_NOT_OWNED:
       case IS_ATTRIBUTE_OWNED_BY_FEDERATE:
@@ -939,6 +965,8 @@
       case DDM_REGISTER_OBJECT:
       case GET_FED_FILE:
        Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
+               
        break ;
 
       case REGISTER_FEDERATION_SYNCHRONIZATION_POINT:
@@ -949,31 +977,43 @@
        // body Contains Label(should be non-empty)
        // BUG: S'il fait moins de 16 octet, il passe dans le header.
        Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
        break ;
 
       case DELETE_OBJECT:
         Header.bodySize = 1;
+               msgBuf.write_int32(Header.bodySize);
+               
        Header.VP.O_I.date = date;
+               msgBuf.write_double(date);
        break;
       case REMOVE_OBJECT:
        // body Contains ObjectHandle, and label
        Header.bodySize = 1 ;
-        if ( boolean)
+               msgBuf.write_int32(Header.bodySize);
+               if (boolean) {
            Header.VP.O_I.date = date ;
-       break ;
+                       msgBuf.write_double(date);
+               }
+               break;
 
        // -- time Variable Part(No body)[Continued] --
-
       case SET_TIME_REGULATING:
        Header.bodySize = 0 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.time.date = date ;
+               msgBuf.write_double(date);
        Header.VP.time.R_or_C = regulator ;
+               msgBuf.write_double(Header.VP.time.R_or_C);
        break ;
 
       case SET_TIME_CONSTRAINED:
        Header.bodySize = 0 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.time.date = date ;
+               msgBuf.write_double(date);
        Header.VP.time.R_or_C = constrained ;
+               msgBuf.write_double(Header.VP.time.R_or_C);
        break ;
 
        // -- T_O Variable Part --
@@ -990,10 +1030,15 @@
       case JOIN_FEDERATION_EXECUTION:
        // body contains federationName and federateName
        Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.Join.NbReg = numberOfRegulators ;
+               msgBuf.write_int32(numberOfRegulators);
        Header.VP.Join.AdrMC = multicastAddress ;
+               msgBuf.write_uint32(multicastAddress);
        Header.VP.Join.Addr = bestEffortAddress ;
+               msgBuf.write_uint32(bestEffortAddress);
        Header.VP.Join.peer = bestEffortPeer ;
+               msgBuf.write_uint32(bestEffortPeer);
        break ;
 
        // -- O_I Variable Part(No body) --
@@ -1001,7 +1046,9 @@
       case UNPUBLISH_OBJECT_CLASS:
       case UNSUBSCRIBE_OBJECT_CLASS:
        Header.bodySize = 0 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.O_I.handle = objectClass ;
+               msgBuf.write_int32(objectClass);
        break ;
 
       case PUBLISH_INTERACTION_CLASS:
@@ -1011,13 +1058,17 @@
       case TURN_INTERACTIONS_ON:
       case TURN_INTERACTIONS_OFF:
        Header.bodySize = 0 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.O_I.handle = interactionClass ;
+               msgBuf.write_int32(interactionClass);
        break ;
 
        // DDM variable part, no body
       case DDM_DELETE_REGION:
        Header.bodySize = 0 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.ddm.region = region ;
+               msgBuf.write_int32(region);
        break ;
 
        // -- O_I Variable Part(body not empty) --
@@ -1026,25 +1077,34 @@
       case SUBSCRIBE_OBJECT_CLASS:
        // body contains handleArray[handleArraySize](if not empty)
 
-       if (handleArraySize > 0)
+               if (handleArraySize > 0) {
            Header.bodySize = 1 ;
-       else
+               }
+               else {
            Header.bodySize = 0 ;
+               }
+               msgBuf.write_int32(Header.bodySize);
 
        Header.VP.O_I.handle = objectClass ;
+               msgBuf.write_int32(objectClass);
        Header.VP.O_I.size = handleArraySize ;
+               msgBuf.write_int32(handleArraySize);
        break ;
 
       case REGISTER_OBJECT:
       case DISCOVER_OBJECT:
        // body Contains ObjectHandle and label
        Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.O_I.handle = objectClass ;
+               msgBuf.write_int32(objectClass);
        break ;
 
       case DDM_MODIFY_REGION:
        Header.bodySize = 1 ;
+               msgBuf.write_int32(Header.bodySize);
        Header.VP.ddm.region = region ;
+               msgBuf.write_int32(region);
        break ;
 
       default:
@@ -1052,13 +1112,22 @@
        throw RTIinternalError("Unknown/Unimplemented type for Header.");
     }
 
-    if (Header.bodySize == 0)
-        socket->send(reinterpret_cast<unsigned char *>(&Header), 
sizeof(HeaderStruct));
+       /* 
+        * If the message has no body we send the prepared header buffer 
+        * Note that we may pass msgBuf object to send because it will be 
casted out
+        * by the MessageBuffer Cast operator.     
+        */
+       if (Header.bodySize == 0) {
+               msgBuf.updateReservedBytes();
+               D.Out(pdDebug,"[Header] Sending a buffer of <%u> 
bytes",msgBuf.size());
+               msgBuf.show(msgBuf(0),5);
+               socket->send(static_cast<unsigned char*>(msgBuf(0)), 
msgBuf.size());
+       }
 
     G.Out(pdGendoc,"exit  NetworkMessage::writeHeader");
-    return Header.bodySize != 0 ;
+       return (Header.bodySize != 0);
 }
 
 } // namespace certi
 
-// $Id: NetworkMessage_RW.cc,v 3.45 2008/03/06 16:33:10 rousse Exp $
+// $Id: NetworkMessage_RW.cc,v 3.45.2.1 2008/03/18 15:55:55 erk Exp $

Index: libCERTI/ObjectSet.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectSet.cc,v
retrieving revision 3.18
retrieving revision 3.18.2.1
diff -u -b -r3.18 -r3.18.2.1
--- libCERTI/ObjectSet.cc       5 Mar 2008 15:33:51 -0000       3.18
+++ libCERTI/ObjectSet.cc       18 Mar 2008 15:55:56 -0000      3.18.2.1
@@ -28,6 +28,7 @@
 #include "ObjectAttribute.hh"
 #include "ObjectSet.hh"
 #include "PrettyDebug.hh"
+#include "NM_Classes.hh"
 
 // Standard
 #include <iostream>
@@ -239,15 +240,18 @@
         ObjectAttribute * oa ;
         oa = object->getAttribute(the_attribute);
 
-        NetworkMessage *answer = new NetworkMessage ;
+        NetworkMessage *answer;
+        if (oa->getOwner()) {
+               answer = 
NM_Factory::create(NetworkMessage::INFORM_ATTRIBUTE_OWNERSHIP);
+        } else {
+               answer = 
NM_Factory::create(NetworkMessage::ATTRIBUTE_IS_NOT_OWNED);
+        }
+        
         answer->federation = server->federation();
         answer->exception = e_NO_EXCEPTION ;
         answer->object = the_object ;
         answer->handleArray[0] = the_attribute ;
         answer->federate = oa->getOwner();
-        answer->type = answer->federate
-            ? NetworkMessage::INFORM_ATTRIBUTE_OWNERSHIP
-            : NetworkMessage::ATTRIBUTE_IS_NOT_OWNED ;
 
         sendToFederate(answer, the_federate);
     }
@@ -454,4 +458,4 @@
 }
 } // namespace certi
 
-// $Id: ObjectSet.cc,v 3.18 2008/03/05 15:33:51 rousse Exp $
+// $Id: ObjectSet.cc,v 3.18.2.1 2008/03/18 15:55:56 erk Exp $

Index: libCERTI/NetworkMessage.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage.cc,v
retrieving revision 3.28
retrieving revision 3.28.2.1
diff -u -b -r3.28 -r3.28.2.1
--- libCERTI/NetworkMessage.cc  15 Feb 2008 14:16:20 -0000      3.28
+++ libCERTI/NetworkMessage.cc  18 Mar 2008 15:55:56 -0000      3.28.2.1
@@ -16,7 +16,7 @@
 // License along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: NetworkMessage.cc,v 3.28 2008/02/15 14:16:20 rousse Exp $
+// $Id: NetworkMessage.cc,v 3.28.2.1 2008/03/18 15:55:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -32,39 +32,6 @@
 
 namespace certi {
 static PrettyDebug G("GENDOC",__FILE__);
-// ----------------------------------------------------------------------------
-void
-NetworkMessage::display(const char *s)
-{
-    printf(" -- NETWORK MESSAGE - %s -", s);
-    if ( type == CREATE_FEDERATION_EXECUTION )
-        printf("CREATE_FEDERATION_EXECUTION : federationName %s : filename %s 
:"
-               " federateHandle %d : federationHandle 
%d\n",federationName,FEDid,federate,federation);
-    if ( type == DESTROY_FEDERATION_EXECUTION )
-      printf("DESTROY_FEDERATION_EXECUTION : federationName %s : federate %d : 
federationHandle %d\n",
-             
((federationName==NULL)?"empty":federationName),federate,federation) ;
-    else if (type == JOIN_FEDERATION_EXECUTION )
-        printf("JOIN_FEDERATION_EXECUTION : federation %s : federate %s 
\n",federationName,federateName);
-    else if (type == FEDERATE_RESTORE_COMPLETE )
-        printf("FEDERATE_RESTORE_COMPLETE : federationHandle %d : 
federatehandle %d \n",federation,federate);
-    else if (type == FEDERATE_SAVE_COMPLETE )
-        printf("FEDERATE_SAVE_COMPLETE : federationHandle %d : federatehandle 
%d \n",federation,federate);
-    else if (type == GET_FED_FILE ) 
-        printf("GET_FED_FILE : number %ld\n",number) ;
-    else
-        printf(" type = %d\n", type);
-        
-    printf(" number = %ld-%d", federate, number);
-    printf(" date = %f ", date);
-    if (exception == 0 )
-        printf("NO_EXCEPTION ");
-    else
-        printf(" exception=%d: ",exception);
-    printf(" ObjectHandle = %ld\n", objectClass);
-    printf(" interactionClass= %ld\n", interactionClass);
-    printf(" object = %ld\n", object);
-    printf(" handleArraySize = %d\n", handleArraySize);
-}
 
 // ----------------------------------------------------------------------------
 NetworkMessage::NetworkMessage()
@@ -77,10 +44,10 @@
     federation = 0 ;
     federate = 0 ;
 
-    federationName = NULL ;
+    federationName = std::string("") ;
     federateName[0] = '\0' ;
     label[0] = '\0' ;
-    FEDid = NULL ;
+    FEDid = std::string("") ;
 
     bestEffortPeer = -1 ;
     bestEffortAddress = 0 ;
@@ -101,6 +68,9 @@
         ValueArray[i].length = 0 ;
         ValueArray[i].value[0]  = '\0' ;
         }
+}
+
+NetworkMessage::~NetworkMessage() {
 
 }
 
@@ -286,40 +256,31 @@
 
 // ----------------------------------------------------------------------------
 void
-NetworkMessage::readLabel(MessageBody &body)
+NetworkMessage::readLabel()
 {
-    body.readString(label, MAX_USER_TAG_LENGTH);
+    label = msgBuf.read_string();
 }
 
 // ----------------------------------------------------------------------------
 //! Read the tag contained into the message.
-void NetworkMessage::readTag(MessageBody &body)
+void NetworkMessage::readTag()
 {
-    body.readString(tag, MAX_USER_TAG_LENGTH);
+    tag = msgBuf.read_string();
 }
 
 // ----------------------------------------------------------------------------
 //! Read the federation name.
 void
-NetworkMessage::readFederationName(MessageBody &body)
+NetworkMessage::readFederationName()
 {
-    short federationNameSize ;
-
-    federationNameSize = body.readShortInt() ;
-    federationName = new char[federationNameSize+1] ;
-    if ( federationNameSize == 0 )
-        {
-        federationName[0] = '\0' ;
-        }
-    else
-        body.readString(federationName,federationNameSize);    
+    federationName = msgBuf.read_string();
 }
 
 // ----------------------------------------------------------------------------
 void
-NetworkMessage::readFederateName(MessageBody &body)
+NetworkMessage::readFederateName()
 {
-    body.readString(federateName, MAX_FEDERATE_NAME_LENGTH);
+    federateName = msgBuf.read_string();
 }
 
 // ----------------------------------------------------------------------------
@@ -329,40 +290,31 @@
 NetworkMessage::setFEDid(const char *NewFEDid)
 {
     assert ( NewFEDid != NULL) ;
-    FEDid = new char[strlen(NewFEDid)+1] ;
-    strcpy(FEDid, NewFEDid);
+    FEDid = std::string(NewFEDid);  
 }
 
 // ----------------------------------------------------------------------------
 void
-NetworkMessage::readFEDid(MessageBody &body)
+NetworkMessage::readFEDid()
 {
-    short FEDidSize ;
-    FEDidSize = body.readShortInt() ;
-    FEDid = new char[FEDidSize+1] ;
-    if ( FEDidSize == 0 )
-        FEDid[0] = '\0' ;
-    else
-        body.readString(FEDid,FEDidSize);
+    FEDid = msgBuf.read_string();    
 }
 
 // ---------------------------------------------------------------
 void
-NetworkMessage::writeFEDid(MessageBody &body)
+NetworkMessage::writeFEDid()
 {
-    body.writeShortInt(strlen(FEDid));
-    body.writeString(FEDid);
+    msgBuf.write_string(FEDid);
 }
 
 // ---------------------------------------------------------------
 void
-NetworkMessage::writeFederationName(MessageBody &body)
+NetworkMessage::writeFederationName()
 { 
-    assert(federationName != NULL) ;  
-    body.writeShortInt(strlen(federationName));
-    body.writeString(federationName);
+    assert(federationName.length() > 0) ;      
+    msgBuf.write_string(federationName);
 }
 
 } // namespace certi
 
-// $Id: NetworkMessage.cc,v 3.28 2008/02/15 14:16:20 rousse Exp $
+// $Id: NetworkMessage.cc,v 3.28.2.1 2008/03/18 15:55:56 erk Exp $

Index: libCERTI/Message_R.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_R.cc,v
retrieving revision 3.17
retrieving revision 3.17.2.1
diff -u -b -r3.17 -r3.17.2.1
--- libCERTI/Message_R.cc       5 Mar 2008 15:33:50 -0000       3.17
+++ libCERTI/Message_R.cc       18 Mar 2008 15:55:56 -0000      3.17.2.1
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: Message_R.cc,v 3.17 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_R.cc,v 3.17.2.1 2008/03/18 15:55:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -205,7 +205,7 @@
            readTag(body);
            handleArraySize = body.readShortInt();
             readHandleArray(body);
-           readRegions(body);
+           readRegions();
            break ;
 
           // Body contains objectClass,region,boolean,handleArraySize,
@@ -406,7 +406,7 @@
           // Body contains region,extents
          case DDM_MODIFY_REGION:
             region = body.readLongInt();
-           readExtents(body);
+           readExtents();
            break ;
 
           // Body contains region
@@ -756,4 +756,4 @@
 
 } // namespace certi
 
-// $Id: Message_R.cc,v 3.17 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_R.cc,v 3.17.2.1 2008/03/18 15:55:56 erk Exp $

Index: libCERTI/NetworkMessage.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage.hh,v
retrieving revision 3.30
retrieving revision 3.30.2.1
diff -u -b -r3.30 -r3.30.2.1
--- libCERTI/NetworkMessage.hh  5 Mar 2008 15:33:50 -0000       3.30
+++ libCERTI/NetworkMessage.hh  18 Mar 2008 15:55:56 -0000      3.30.2.1
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: NetworkMessage.hh,v 3.30 2008/03/05 15:33:50 rousse Exp $
+// $Id: NetworkMessage.hh,v 3.30.2.1 2008/03/18 15:55:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef CERTI_NETWORK_MESSAGE_HH
@@ -26,11 +26,11 @@
 #include "fedtime.hh"
 #include "Exception.hh"
 #include "Socket.hh"
-#include "MessageBody.hh"
 #include "RTIRegion.hh"
 #include "BasicMessage.hh"
 
 #include <vector>
+#include <string>
 
 #ifdef FEDERATION_USES_MULTICAST
 #define MC_PORT 60123
@@ -84,7 +84,7 @@
         DDM_Struct ddm ;
     };
 
-    enum Type {
+       typedef enum Type {
         NOT_USED = 0, // Not used.
         CLOSE_CONNEXION,
         MESSAGE_NULL,
@@ -168,9 +168,8 @@
        DDM_UNSUBSCRIBE_INTERACTION,
         PROVIDE_ATTRIBUTE_VALUE_UPDATE,
         GET_FED_FILE,
-
        LAST
-    };
+       } Message_T;
 
     struct HeaderStruct {
         Type type ;
@@ -183,10 +182,11 @@
 
 public :
     NetworkMessage();
+    virtual ~NetworkMessage();
 
-    // Display method
-    void display(const char *);
-        void trace(const char* context);
+    const NetworkMessage::Message_T getType() const {return type;};
+       virtual void serialize(){};
+       virtual void deserialize(){};
 
     // Parameter and Attribute Management
     // Remove the Parameter of rank 'Rank' in the ParamArray and its value in
@@ -234,18 +234,18 @@
     void setBoolean(bool);
     bool getBoolean() const { return boolean ; };
 
-    Type type ;
+       Message_T type;
     TypeException exception ;
-    char exceptionReason[MAX_EXCEPTION_REASON_LENGTH + 1] ;
+       std::string exceptionReason;
 
     UShort number ;
 
     Handle federation ;
     FederateHandle federate ;
-    //char federationName[MAX_FEDERATION_NAME_LENGTH + 1] ;
-    char *federationName ;
-    char federateName[MAX_FEDERATE_NAME_LENGTH + 1] ;
-    char *FEDid ;
+
+       std::string federationName ;
+       std::string federateName;
+       std::string FEDid ;
 
     int bestEffortPeer ;
     unsigned long bestEffortAddress ;
@@ -260,8 +260,8 @@
     int numberOfRegulators ;
     unsigned long multicastAddress ;
 
-    char label[MAX_USER_TAG_LENGTH + 1] ;
-    char tag[MAX_USER_TAG_LENGTH + 1] ;
+       std::string label;
+       std::string tag;
 
     ObjectHandlecount idCount ;
     ObjectHandle firstId ;
@@ -283,11 +283,15 @@
     long nbExtents ;
     long region ;
 
-    void setLabel(const char *new_label) { strcpy(label, new_label); }
-    void setTag(const char *new_tag) { strcpy(tag, new_tag); }
+       void setLabel(const char *new_label) { label = std::string(new_label); }
+       void setTag(const char *new_tag) { tag = std::string(new_tag); }
     void setFEDid(const char *NewFEDid);
 
+protected:
+       std::string name;
 private:
+       
+       
     // Read a Message Body from a Socket. Should be called after ReadHeader.
     void readBody(Socket *Socket);
 
@@ -307,25 +311,27 @@
     bool writeHeader(Socket *Socket);
 
     // -- Others Private Write Methods --
-    void writeFEDid(MessageBody &body);
-    void writeFederationName(MessageBody &body);
+       void writeFEDid();
+       void writeFederationName();
 
     // -- Others Private Read Methods --
-    void readLabel(MessageBody &);
-    void readTag(MessageBody &);
-    void readFederationName(MessageBody &);
-    void readFederateName(MessageBody &);
-    void readFEDid(MessageBody &body);
+       void readLabel();
+       void readTag();
+       void readFederationName();
+       void readFederateName();
+       void readFEDid();
 
-    HeaderStruct Header ;
+       HeaderStruct  Header;    
     // ValueArray is now a ValueLengthPair
     ValueLengthPair ValueArray[MAX_ATTRIBUTES_PER_CLASS] ;
 };
 
+// BUG: FIXME this is used by SocketMC and should
+//      be thrown away as soon as possible.
 #define TAILLE_MSG_RESEAU sizeof(NetworkMessage)
 
 } // namespace certi
 
 #endif // CERTI_NETWORK_MESSAGE_HH
 
-// $Id: NetworkMessage.hh,v 3.30 2008/03/05 15:33:50 rousse Exp $
+// $Id: NetworkMessage.hh,v 3.30.2.1 2008/03/18 15:55:56 erk Exp $

Index: libCERTI/BasicMessage.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/BasicMessage.cc,v
retrieving revision 3.9
retrieving revision 3.9.2.1
diff -u -b -r3.9 -r3.9.2.1
--- libCERTI/BasicMessage.cc    6 Jul 2007 09:25:17 -0000       3.9
+++ libCERTI/BasicMessage.cc    18 Mar 2008 15:55:56 -0000      3.9.2.1
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: BasicMessage.cc,v 3.9 2007/07/06 09:25:17 erk Exp $
+// $Id: BasicMessage.cc,v 3.9.2.1 2008/03/18 15:55:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -28,30 +28,26 @@
 
 #include <cassert>
 
-using std::vector ;
-using std::endl ;
+using std::vector;
+using std::endl;
 
-static pdCDebug D("MESSAGE", __FILE__);
+static pdCDebug D("MESSAGE",__FILE__ );
 
 namespace certi {
 
 // ----------------------------------------------------------------------------
 /** Set extents
  */
-void
-BasicMessage::setExtents(const std::vector<Extent> &e)
-{
-    extents = e ;
+void BasicMessage::setExtents(const std::vector<Extent> &e) {
+       extents = e;
     assert(extents.size() == e.size());
 }
 
 // ----------------------------------------------------------------------------
 /** Get extents
  */
-const vector<Extent> &
-BasicMessage::getExtents() const
-{
-    return extents ;
+const vector<Extent> & BasicMessage::getExtents() const {
+       return extents;
 }
 
 // ----------------------------------------------------------------------------
@@ -59,23 +55,21 @@
     extents. If not zero, number of dimensions. The list of extents. Extent
     format: list of ranges. Range format: lower bound, upper bound.
  */
-void
-BasicMessage::writeExtents(MessageBody &body) const
-{
-    D[pdDebug] << "Write " << extents.size() << " extent(s)" << endl ;
+void BasicMessage::writeExtents() {
+       D[pdDebug] << "Write " << extents.size() << " extent(s)" << endl;
 
-    body.writeLongInt(extents.size());
+       msgBuf.write_int32(static_cast<int32_t>(extents.size()));
     if (extents.size() > 0) {
        int n = extents[0].size();
-       body.writeLongInt(n);
-       D[pdDebug] << "Extent with " << n << " range(s)" << endl ;
+               msgBuf.write_int32(static_cast<int32_t>(n));
+               D[pdDebug] << "Extent with " << n << " range(s)" << endl;
 
-       for (unsigned int i = 0 ; i < extents.size(); ++i) {
-           const Extent &e = extents[i] ;
+               for (unsigned int i = 0; i < extents.size(); ++i) {
+                       const Extent &e = extents[i];
 
-           for (int h = 1 ; h <= n ; ++h) {
-               body.writeLongInt(e.getRangeLowerBound(h));
-               body.writeLongInt(e.getRangeUpperBound(h));
+                       for (int h = 1; h <= n; ++h) {
+                               
msgBuf.write_int32(static_cast<int32_t>(e.getRangeLowerBound(h)));
+                               
msgBuf.write_int32(static_cast<int32_t>(e.getRangeUpperBound(h)));
            }
        }
     }
@@ -86,22 +80,26 @@
     \param body Message body to look into
     \sa BasicMessage::writeExtents, Extent
  */
-void
-BasicMessage::readExtents(const MessageBody &body)
-{
-    long nb_extents = body.readLongInt();
-    D[pdDebug] << "Read " << nb_extents << " extent(s)" << endl ;
+void BasicMessage::readExtents() {
+       int32_t nb_extents;
+       int32_t temp;
+       msgBuf.read_int32(&nb_extents);
+       D[pdDebug] << "Read " << nb_extents << " extent(s)" << endl;
 
     extents.clear();    
     if (nb_extents > 0) {
        extents.reserve(nb_extents);
-       long nb_dimensions = body.readLongInt();
-       D[pdDebug] << "Extent with " << nb_dimensions << " range(s)" << endl ;
-       for (long i = 0 ; i < nb_extents ; ++i) {
+               int32_t nb_dimensions;
+               msgBuf.read_int32(&nb_dimensions);
+               D[pdDebug] << "Extent with " << nb_dimensions << " range(s)" << 
endl;
+               for (long i = 0; i < nb_extents; ++i) {
            Extent e(nb_dimensions);
-           for (long h = 1 ; h <= nb_dimensions ; ++h) {
-               e.setRangeLowerBound(h, body.readLongInt());
-               e.setRangeUpperBound(h, body.readLongInt());
+
+                       for (long h = 1; h <= nb_dimensions; ++h) {
+                               msgBuf.read_int32(&temp);
+                               e.setRangeLowerBound(h, temp);
+                               msgBuf.read_int32(&temp);
+                               e.setRangeUpperBound(h, temp);
            }
            extents.push_back(e);
        }
@@ -109,52 +107,45 @@
 }
 
 // ----------------------------------------------------------------------------
-void
-BasicMessage::writeRegions(MessageBody &body)
-{
-    long n = regions.size();
-    body.writeLongInt(n);
-    for (int i = 0 ; i < n ; ++i) {
-       body.writeLongInt(regions[i]);
+void BasicMessage::writeRegions() {
+       int32_t n = regions.size();
+       msgBuf.write_int32(n);
+       for (int i = 0; i < n; ++i) {
+               msgBuf.write_int32(regions[i]);
     }
 }
 
 // ----------------------------------------------------------------------------
-void
-BasicMessage::readRegions(const MessageBody &body)
-{
-    long n = body.readLongInt();
+void BasicMessage::readRegions() {
+       int32_t n;
+       int32_t temp;
+       msgBuf.read_int32(&n);
     regions.clear();
     regions.reserve(n);
     for (int i = 0; i < n; ++i) {
-       regions.push_back(body.readLongInt());
+               msgBuf.read_int32(&temp);
+               regions.push_back(temp);
     }
 }
 
 // ----------------------------------------------------------------------------
-void
-BasicMessage::setRegions(const BaseRegion *reg[], int size)
-{
+void BasicMessage::setRegions(const BaseRegion *reg[], int size) {
     regions.resize(size);
     
-    for (int i = 0 ; i < size ; ++i) {
+       for (int i = 0; i < size; ++i) {
         regions[i] = reg[i]->getHandle();
     }
 }
 
-void
-BasicMessage::setRegions(const std::vector<RegionHandle> &src)
-{
-    regions = src ;
+void BasicMessage::setRegions(const std::vector<RegionHandle> &src) {
+       regions = src;
 }
 
 // ----------------------------------------------------------------------------
-const std::vector<RegionHandle> &
-BasicMessage::getRegions() const
-{
-    return regions ;
+const std::vector<RegionHandle> & BasicMessage::getRegions() const {
+       return regions;
 }
 
 } // namespace certi
 
-// $Id: BasicMessage.cc,v 3.9 2007/07/06 09:25:17 erk Exp $
+// $Id: BasicMessage.cc,v 3.9.2.1 2008/03/18 15:55:56 erk Exp $

Index: libCERTI/CMakeLists.txt
===================================================================
RCS file: /sources/certi/certi/libCERTI/CMakeLists.txt,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -u -b -r1.11 -r1.11.2.1
--- libCERTI/CMakeLists.txt     14 Feb 2008 15:29:58 -0000      1.11
+++ libCERTI/CMakeLists.txt     18 Mar 2008 15:55:56 -0000      1.11.2.1
@@ -73,6 +73,7 @@
 MessageBuffer.cc MessageBuffer.hh
 Message.cc Message_R.cc Message_W.cc Message.hh
 NetworkMessage.cc NetworkMessage_RW.cc NetworkMessage.hh
+NM_Classes.hh NM_Classes.cc
 Exception.cc Exception.hh
 XmlParser.cc XmlParser.hh
 PrettyDebug.cc PrettyDebEx.cc PrettyDebug.hh

Index: libCERTI/Interaction.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Interaction.cc,v
retrieving revision 3.35
retrieving revision 3.35.2.1
diff -u -b -r3.35 -r3.35.2.1
--- libCERTI/Interaction.cc     11 Dec 2007 19:46:53 -0000      3.35
+++ libCERTI/Interaction.cc     18 Mar 2008 15:55:56 -0000      3.35.2.1
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: Interaction.cc,v 3.35 2007/12/11 19:46:53 erk Exp $
+// $Id: Interaction.cc,v 3.35.2.1 2008/03/18 15:55:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -416,7 +416,7 @@
         answer->setBoolean(true) ; // with time
        answer->date = time ;
 
-        strcpy(answer->label, the_tag);
+        answer->label = the_tag;
 
         answer->handleArraySize = list_size ;
         for (int i = 0 ; i < list_size ; i++) {
@@ -475,7 +475,7 @@
         answer->interactionClass = handle ; // Interaction Class Handle
        answer->setBoolean(false) ; // without time
 
-        strcpy(answer->label, the_tag);
+        answer->label = the_tag;
 
         answer->handleArraySize = list_size ;
         for (int i = 0 ; i < list_size ; i++) {
@@ -553,4 +553,4 @@
 
 } // namespace certi
 
-// $Id: Interaction.cc,v 3.35 2007/12/11 19:46:53 erk Exp $
+// $Id: Interaction.cc,v 3.35.2.1 2008/03/18 15:55:56 erk Exp $

Index: libCERTI/BasicMessage.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/BasicMessage.hh,v
retrieving revision 3.7
retrieving revision 3.7.2.1
diff -u -b -r3.7 -r3.7.2.1
--- libCERTI/BasicMessage.hh    22 Jun 2007 08:51:36 -0000      3.7
+++ libCERTI/BasicMessage.hh    18 Mar 2008 15:55:56 -0000      3.7.2.1
@@ -19,14 +19,14 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: BasicMessage.hh,v 3.7 2007/06/22 08:51:36 erk Exp $
+// $Id: BasicMessage.hh,v 3.7.2.1 2008/03/18 15:55:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef LIBCERTI_BASIC_MESSAGE
 #define LIBCERTI_BASIC_MESSAGE
 
 #include "Extent.hh"
-#include "MessageBody.hh"
+#include "MessageBuffer.hh"
 #include "BaseRegion.hh"
 #include <vector>
 
@@ -48,21 +48,20 @@
     void setRegions(const std::vector<RegionHandle> &);
     const std::vector<RegionHandle> &getRegions() const ;
 
-        virtual void trace(const char* context)=0;
-        
 protected:
-    void readExtents(const MessageBody &);
-    void writeExtents(MessageBody &) const ;
+    void readExtents();
+    void writeExtents() ;
 
-    void readRegions(const MessageBody &body);
-    void writeRegions(MessageBody &body);
+    void readRegions();
+    void writeRegions();
 
     std::vector<Extent> extents ;
     std::vector<RegionHandle> regions ;
+    MessageBuffer msgBuf;
 };
 
 } // namespace certi
 
 #endif // LIBCERTI_BASIC_MESSAGE
 
-// $Id: BasicMessage.hh,v 3.7 2007/06/22 08:51:36 erk Exp $
+// $Id: BasicMessage.hh,v 3.7.2.1 2008/03/18 15:55:56 erk Exp $

Index: RTIA/OwnershipManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/OwnershipManagement.cc,v
retrieving revision 3.12
retrieving revision 3.12.2.1
diff -u -b -r3.12 -r3.12.2.1
--- RTIA/OwnershipManagement.cc 22 Feb 2008 11:34:31 -0000      3.12
+++ RTIA/OwnershipManagement.cc 18 Mar 2008 15:55:57 -0000      3.12.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: OwnershipManagement.cc,v 3.12 2008/02/22 11:34:31 siron Exp $
+// $Id: OwnershipManagement.cc,v 3.12.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -63,7 +63,7 @@
                                               AttributeHandle theAttribute,
                                               TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req ;
 
     D.Out(pdDebug,
           "IS_ATTRIBUTE_OWNED_BY_FEDERATE, attribute %u of object %u",
@@ -81,14 +81,14 @@
     comm->sendMessage(&req);
 
     // waitMessage is only used to verify transmission was OK.
-    comm->waitMessage(&rep,
+    std::auto_ptr<NetworkMessage> rep(comm->waitMessage(
                       NetworkMessage::IS_ATTRIBUTE_OWNED_BY_FEDERATE,
-                      req.federate);
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION)
-        return(rep.label);
+        return(rep->label.c_str());
     else
         return("\0");
 }
@@ -100,7 +100,7 @@
                                              AttributeHandle theAttribute,
                                              TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     D.Out(pdDebug,
           "QUERY_ATTRIBUTE_OWNERSHIP, attribute %u from object %u",
@@ -118,9 +118,9 @@
     comm->sendMessage(&req);
 
     //AttendreMsg ne sert que pour verifier que la transmission a ete OK
-    comm->waitMessage(&rep, NetworkMessage::QUERY_ATTRIBUTE_OWNERSHIP, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::QUERY_ATTRIBUTE_OWNERSHIP, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 }
 
 // ----------------------------------------------------------------------------
@@ -134,7 +134,7 @@
                                         TypeException &e)
 
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE ;
     req.federation = fm->_numero_federation ;
@@ -145,16 +145,16 @@
     for (int i = 0 ; i < attribArraySize ; i++)
         req.handleArray[i] = attribArray[i] ;
 
-    strcpy(req.label, theTag);
+    req.label = theTag;
 
     D.Out(pdDebug, "NEGOTIATED_DIVESTITURE Federate %u ", fm->federate);
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, 
NetworkMessage::NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE,
-                      req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE,
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 }
 
 // ----------------------------------------------------------------------------
@@ -166,7 +166,7 @@
                                               UShort attribArraySize,
                                               TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = 
NetworkMessage::CANCEL_NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE ;
     req.federation = fm->_numero_federation ;
@@ -182,11 +182,11 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep,
+    std::auto_ptr<NetworkMessage> rep(comm->waitMessage(
                       
NetworkMessage::CANCEL_NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE,
-                      req.federate);
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 }
 
 // ----------------------------------------------------------------------------
@@ -198,7 +198,7 @@
                                          UShort attribArraySize,
                                          TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE ;
     req.federation = fm->_numero_federation ;
@@ -213,10 +213,10 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, 
NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE,
-                      req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE,
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 }
 
 // ----------------------------------------------------------------------------
@@ -228,7 +228,7 @@
                                            UShort attribArraySize,
                                            TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::UNCONDITIONAL_ATTRIBUTE_OWNERSHIP_DIVESTITURE ;
     req.federation = fm->_numero_federation ;
@@ -244,10 +244,10 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, 
NetworkMessage::UNCONDITIONAL_ATTRIBUTE_OWNERSHIP_DIVESTITURE,
-                      req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::UNCONDITIONAL_ATTRIBUTE_OWNERSHIP_DIVESTITURE,
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 }
 
 // ----------------------------------------------------------------------------
@@ -260,7 +260,7 @@
                               const char *theTag,
                               TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION ;
     req.federation = fm->_numero_federation ;
@@ -271,16 +271,16 @@
     for (int i = 0 ; i < attribArraySize ; i++)
         req.handleArray[i] = attribArray[i] ;
 
-    strcpy(req.label, theTag);
+    req.label = theTag;
 
     D.Out(pdDebug, "OWNERSHIP_ACQUISITION Federate %u ", fm->federate);
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION,
-                      req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION,
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 }
 
 // ----------------------------------------------------------------------------
@@ -292,7 +292,7 @@
                                    UShort attribArraySize,
                                    TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE ;
     req.federation = fm->_numero_federation ;
@@ -310,17 +310,17 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, 
NetworkMessage::ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE,
-                      req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE,
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
         AttributeHandleSet *AttributeSet ;
-        AttributeSet = 
RTI::AttributeHandleSetFactory::create(rep.handleArraySize);
+        AttributeSet = 
RTI::AttributeHandleSetFactory::create(rep->handleArraySize);
 
-        for (int i = 0 ; i < rep.handleArraySize ; i++) {
-            AttributeSet->add(rep.handleArray[i]);
+        for (int i = 0 ; i < rep->handleArraySize ; i++) {
+            AttributeSet->add(rep->handleArray[i]);
         }
 
         return(AttributeSet);
@@ -338,7 +338,7 @@
                                     UShort attribArraySize,
                                     TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION ;
     req.federation = fm->_numero_federation ;
@@ -353,10 +353,10 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, 
NetworkMessage::CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION,
-                      req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION,
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 }
 
 // ----------------------------------------------------------------------------
@@ -512,4 +512,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: OwnershipManagement.cc,v 3.12 2008/02/22 11:34:31 siron Exp $
+// $Id: OwnershipManagement.cc,v 3.12.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/Communications.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/Communications.cc,v
retrieving revision 3.22
retrieving revision 3.22.2.1
diff -u -b -r3.22 -r3.22.2.1
--- RTIA/Communications.cc      22 Feb 2008 11:34:30 -0000      3.22
+++ RTIA/Communications.cc      18 Mar 2008 15:55:57 -0000      3.22.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: Communications.cc,v 3.22 2008/02/22 11:34:30 siron Exp $
+// $Id: Communications.cc,v 3.22.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -54,48 +54,39 @@
 static PrettyDebug G("GENDOC",__FILE__);
 
 // ----------------------------------------------------------------------------
-/*! Wait a message coming from RTIG. Parameters are :
-  1- Returned message,
-  2- Message type expected,
-  3- Federate which sent the message, 0 if indifferent.
-*/
-void Communications::waitMessage(NetworkMessage *msg,
+
+NetworkMessage* Communications::waitMessage(
                                  NetworkMessage::Type type_msg,
                                  FederateHandle numeroFedere)
 {
-    NetworkMessage *tampon ;
-
-    assert(type_msg > 0 && type_msg < 100);
+    assert(type_msg > 0 && type_msg < NetworkMessage::LAST);
+    NetworkMessage *msg = NULL;
 
     D.Out(pdProtocol, "Waiting for Message of Type %d.", type_msg);
 
-    // Does a new message has arrived ?
-    if (searchMessage(type_msg, numeroFedere, msg))
-        return ;
+    // Does a new message of the expected type has arrived ?
+    if (searchMessage(type_msg, numeroFedere, &msg))
+        return msg;
 
     // Otherwise, wait for a message with same type than expected and with
     // same federate number.
-    tampon = new NetworkMessage ;
-    tampon->read((SecureTCPSocket *)this);
+    msg = new NetworkMessage();
+    msg->read((SecureTCPSocket *)this);
 
     D.Out(pdProtocol, "TCP Message of Type %d has arrived.", type_msg);
 
-    while ((tampon->type != type_msg) ||
-           ((numeroFedere != 0) && (tampon->federate != numeroFedere))) {
-        waitingList.push_back(tampon);
-        tampon = new NetworkMessage ;
-        tampon->read((SecureTCPSocket *) this);
-
+    while ((msg->type != type_msg) ||
+           ((numeroFedere != 0) && (msg->federate != numeroFedere))) {
+        waitingList.push_back(msg);
+        msg = new NetworkMessage();
+        msg->read((SecureTCPSocket *) this);
         D.Out(pdProtocol, "Message of Type %d has arrived.", type_msg);
     }
 
-    // BUG: Should use copy operator.
-    memcpy((void *) msg, (void *) tampon, sizeof(NetworkMessage));
-    delete tampon ;
-
     assert(msg != NULL);
     assert(msg->type == type_msg);
-}
+    return msg;
+} /* end of waitMessage */
 
 // ----------------------------------------------------------------------------
 //! Communications.
@@ -180,7 +171,7 @@
   Returns the actual source in the 1st parameter (RTIG=>1 federate=>2)
 */
 void
-Communications::readMessage(int &n, NetworkMessage *msg_reseau, Message *msg)
+Communications::readMessage(int &n, NetworkMessage **msg_reseau, Message **msg)
 {
     const int tcp_fd(SecureTCPSocket::returnSocket());
     const int udp_fd(SocketUDP::returnSocket());
@@ -213,29 +204,29 @@
 
     if (!waitingList.empty()) {
         // One message is in waiting buffer.
-        NetworkMessage *msg2 ;
-        msg2 = waitingList.front();
+        *msg_reseau = waitingList.front();
         waitingList.pop_front();
-        memcpy(msg_reseau, msg2, TAILLE_MSG_RESEAU);
-        delete msg2 ;
         n = 1 ;
     }
     else if (SecureTCPSocket::isDataReady()) {
         // Datas are in TCP waiting buffer.
         // Read a message from RTIG TCP link.
-        msg_reseau->read((SecureTCPSocket *) this);
+       *msg_reseau = new NetworkMessage();
+        (*msg_reseau)->read((SecureTCPSocket *) this);
         n = 1 ;
     }
     else if (SocketUDP::isDataReady()) {
         // Datas are in UDP waiting buffer.
         // Read a message from RTIG UDP link.
-        msg_reseau->read((SocketUDP *) this);
+       *msg_reseau = new NetworkMessage();
+        (*msg_reseau)->read((SocketUDP *) this);
         n = 1 ;
     }
     else if (SocketUN::isDataReady()) {
         // Datas are in UNIX waiting buffer.
         // Read a message from federate UNIX link.
-        msg->read((SocketUN *) this);
+       (*msg) = new Message();
+        (*msg)->read((SocketUN *) this);
         n = 2 ;
     }
     else {
@@ -247,9 +238,12 @@
                        #else
                                 if(errno == EINTR)
                        #endif
-                throw NetworkSignal("");
-                               else
-                throw NetworkError("");
+                           {
+                throw NetworkSignal("EINTR on select");
+                }
+                               else {
+                 throw NetworkError("Unexpected errno on select");
+                               }
         }
 
         // At least one message has been received, read this message.
@@ -260,25 +254,28 @@
 
         if (_est_init_mc && FD_ISSET(_socket_mc, &fdset)) {
             // Read a message coming from the multicast link.
-            receiveMC(msg_reseau);
+            receiveMC(*msg_reseau);
             n = 1 ;
         }
 #endif
 
         if (FD_ISSET(SecureTCPSocket::returnSocket(), &fdset)) {
             // Read a message coming from the TCP link with RTIG.
-            msg_reseau->read((SecureTCPSocket *) this);
+               (*msg_reseau) = new NetworkMessage();
+            (*msg_reseau)->read((SecureTCPSocket *) this);
             n = 1 ;
         }
         else if (FD_ISSET(SocketUDP::returnSocket(), &fdset)) {
             // Read a message coming from the UDP link with RTIG.
-            msg_reseau->read((SocketUDP *) this);
+               (*msg_reseau) = new NetworkMessage();
+               (*msg_reseau)->read((SocketUDP *) this);
             n = 1 ;
         }
         else {
             // Read a message coming from the federate.
             assert(FD_ISSET(_socket_un, &fdset));
-            receiveUN(msg);
+            (*msg) = new Message();
+            receiveUN(*msg);
             n = 2 ;
         }
     }
@@ -293,7 +290,7 @@
 bool
 Communications::searchMessage(NetworkMessage::Type type_msg,
                               FederateHandle numeroFedere,
-                              NetworkMessage *msg)
+                              NetworkMessage **msg)
 {
     list<NetworkMessage *>::iterator i ;
     for (i = waitingList.begin(); i != waitingList.end(); i++) {
@@ -303,8 +300,7 @@
         if ((*i)->type == type_msg) {
             // if numeroFedere != 0, verify that federateNumbers are similar
             if (((*i)->federate == numeroFedere) || (numeroFedere == 0)) {
-                memcpy(msg, (*i), TAILLE_MSG_RESEAU);
-                delete (*i);
+               *msg = *i;                                
                 waitingList.erase(i);
                 D.Out(pdProtocol,
                       "Message of Type %d was already here.",
@@ -339,4 +335,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: Communications.cc,v 3.22 2008/02/22 11:34:30 siron Exp $
+// $Id: Communications.cc,v 3.22.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/DeclarationManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/DeclarationManagement.cc,v
retrieving revision 3.17
retrieving revision 3.17.2.1
diff -u -b -r3.17 -r3.17.2.1
--- RTIA/DeclarationManagement.cc       21 Feb 2008 10:15:24 -0000      3.17
+++ RTIA/DeclarationManagement.cc       18 Mar 2008 15:55:57 -0000      3.17.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: DeclarationManagement.cc,v 3.17 2008/02/21 10:15:24 rousse Exp $
+// $Id: DeclarationManagement.cc,v 3.17.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -36,6 +36,8 @@
 #include <stdlib.h>
 #endif
 
+#include <memory>
+
 namespace certi {
 namespace rtia {
 
@@ -98,11 +100,10 @@
     comm->sendMessage(&req);
 
     // Reception
-    NetworkMessage rep ;
-    comm->waitMessage(&rep, NetworkMessage::PUBLISH_OBJECT_CLASS, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::PUBLISH_OBJECT_CLASS, req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of publishObjectClass */
 
 // ----------------------------------------------------------------------------
 // unpublishObjectClass
@@ -140,11 +141,10 @@
     comm->sendMessage(&req);
 
     // On attend une reponse
-    NetworkMessage rep ;
-    comm->waitMessage(&rep, NetworkMessage::UNPUBLISH_OBJECT_CLASS, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::UNPUBLISH_OBJECT_CLASS, req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of unpublishObjectClass */
 
 // ----------------------------------------------------------------------------
 // publishInteractionClass
@@ -155,8 +155,7 @@
 {
     e = e_NO_EXCEPTION ;
 
-    // Partie Locale
-
+    // Local publish
     try {
         rootObject->Interactions->publish(fm->federate,
                                           theInteractionHandle,
@@ -166,7 +165,7 @@
         throw e ;
     }
 
-    // Partie RTIG
+    // RTIG (may be non-local) request
     NetworkMessage req ;
     req.type = NetworkMessage::PUBLISH_INTERACTION_CLASS ;
     req.federation = fm->_numero_federation ;
@@ -174,12 +173,10 @@
     req.interactionClass = theInteractionHandle ;
 
     comm->sendMessage(&req);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::PUBLISH_INTERACTION_CLASS, req.federate));
 
-    NetworkMessage rep ;
-    comm->waitMessage(&rep, NetworkMessage::PUBLISH_INTERACTION_CLASS, 
req.federate);
-
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of publishInteractionClass */
 
 // ----------------------------------------------------------------------------
 // unpublishInteractionClass
@@ -202,7 +199,7 @@
     }
 
     // Partie RTIG
-    NetworkMessage req ;
+    NetworkMessage req;
     req.type = NetworkMessage::UNPUBLISH_INTERACTION_CLASS ;
     req.interactionClass = theInteractionHandle ;
     req.federation = fm->_numero_federation ;
@@ -210,11 +207,10 @@
 
     comm->sendMessage(&req);
 
-    NetworkMessage rep ;
-    comm->waitMessage(&rep, NetworkMessage::UNPUBLISH_INTERACTION_CLASS, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::UNPUBLISH_INTERACTION_CLASS, 
req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of unpublishInteractionClass */
 
 // ----------------------------------------------------------------------------
 // subscribeObjectClassAttribute
@@ -225,7 +221,7 @@
                               UShort attribArraySize,
                               TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     G.Out(pdGendoc,"enter 
DeclarationManagement::subscribeObjectClassAttribute");
     // Pas de partie locale pour les abonnements
@@ -246,14 +242,14 @@
     comm->sendMessage(&req);
 
     // Reception
-    comm->waitMessage(&rep,
+    std::auto_ptr<NetworkMessage> rep(comm->waitMessage(
                       NetworkMessage::SUBSCRIBE_OBJECT_CLASS,
-                      req.federate);
+                      req.federate));
     G.Out(pdGendoc,"                              =====> received S_O_C from 
RTIG");
 
-    e = rep.exception ;
+    e = rep->exception ;
     G.Out(pdGendoc,"exit  
DeclarationManagement::subscribeObjectClassAttribute");
-}
+} /* end of subscribeObjectClassAttribute */
 
 // ----------------------------------------------------------------------------
 // unsubscribeObjectClassAttribute
@@ -262,7 +258,7 @@
 unsubscribeObjectClassAttribute(ObjectClassHandle theClassHandle,
                                 TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     e = e_NO_EXCEPTION ;
 
@@ -276,12 +272,12 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep,
+    std::auto_ptr<NetworkMessage> rep(comm->waitMessage(
                       NetworkMessage::UNSUBSCRIBE_OBJECT_CLASS,
-                      req.federate);
+                      req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of unsubscribeObjectClassAttribute */
 
 // ----------------------------------------------------------------------------
 // subscribeInteractionClass
@@ -290,7 +286,7 @@
 subscribeInteractionClass(InteractionClassHandle theClassHandle,
                           TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     e = e_NO_EXCEPTION ;
 
@@ -315,11 +311,11 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, NetworkMessage::SUBSCRIBE_INTERACTION_CLASS,
-                     req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::SUBSCRIBE_INTERACTION_CLASS,
+                     req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of subscribeInteractionClass */
 
 // ----------------------------------------------------------------------------
 // unsubscribeInteractionClass
@@ -328,7 +324,7 @@
 unsubscribeInteractionClass(InteractionClassHandle theClassHandle,
                             TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     e = e_NO_EXCEPTION ;
 
@@ -353,12 +349,12 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep,
+    std::auto_ptr<NetworkMessage> rep(comm->waitMessage(
                       NetworkMessage::UNSUBSCRIBE_INTERACTION_CLASS,
-                      req.federate);
+                      req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of unsubscribeInteractionClass */
 
 // ----------------------------------------------------------------------------
 // startRegistrationForObjectClass
@@ -463,4 +459,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: DeclarationManagement.cc,v 3.17 2008/02/21 10:15:24 rousse Exp $
+// $Id: DeclarationManagement.cc,v 3.17.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/TimeManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.cc,v
retrieving revision 3.29
retrieving revision 3.29.2.1
diff -u -b -r3.29 -r3.29.2.1
--- RTIA/TimeManagement.cc      5 Mar 2008 15:33:50 -0000       3.29
+++ RTIA/TimeManagement.cc      18 Mar 2008 15:55:57 -0000      3.29.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: TimeManagement.cc,v 3.29 2008/03/05 15:33:50 rousse Exp $
+// $Id: TimeManagement.cc,v 3.29.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -119,11 +119,9 @@
 bool
 TimeManagement::executeFederateService(NetworkMessage &msg)
 {
-  G.Out(pdGendoc,"enter TimeManagement::executeFederateService for type 
%d",msg.type);
+  G.Out(pdGendoc,"enter TimeManagement::executeFederateService");
   D.Out(pdRequest, "Execute federate service: Type %d.", msg.type);
 
-  msg.trace("TimeManagement::executeFederateService ");
-
   _ongoing_tick = false ;  // end of the blocking tick, a message is delivered
   _tick_request_ack = false ;  // the callback message serves as the ack
 
@@ -131,7 +129,7 @@
 
       case NetworkMessage::FEDERATION_SYNCHRONIZED:
         try {
-            fm->federationSynchronized(msg.label);
+            fm->federationSynchronized(msg.label.c_str());
         }
         catch (RTIinternalError &e) {
             cout << "RTIA:RTIinternalError in federationSynchronized." << endl 
;
@@ -141,7 +139,7 @@
 
       case NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED:
         try {
-            fm->synchronizationPointRegistrationSucceeded(msg.label);
+            fm->synchronizationPointRegistrationSucceeded(msg.label.c_str());
         }
         catch (RTIinternalError &e) {
             cout << "RTIA:RTIinternalError in synchronizationPointRegistration"
@@ -152,7 +150,7 @@
 
       case NetworkMessage::ANNOUNCE_SYNCHRONIZATION_POINT:
         try {
-            fm->announceSynchronizationPoint(msg.label, msg.tag);
+            fm->announceSynchronizationPoint(msg.label.c_str(), 
msg.tag.c_str());
         }
         catch (RTIinternalError &e) {
             cout << "RTIA:RTIinternalError in announceSynchronizationPoint." 
<< endl ;
@@ -164,7 +162,7 @@
         try {
             om->discoverObject(msg.object,
                                msg.objectClass,
-                               msg.label,
+                               msg.label.c_str(),
                                msg.date,
                                msg.eventRetraction,
                                msg.exception);
@@ -186,7 +184,7 @@
                                         ValueArray,
                                         msg.handleArraySize,
                                         msg.date,
-                                        msg.label,
+                                        msg.label.c_str(),
                                         msg.eventRetraction,
                                         msg.exception);
           else
@@ -194,7 +192,7 @@
                                         msg.handleArray,
                                         ValueArray,
                                         msg.handleArraySize,
-                                        msg.label,
+                                        msg.label.c_str(),
                                         msg.exception);
           free(ValueArray);
           break ;
@@ -220,7 +218,7 @@
                                      ValueArray,
                                      msg.handleArraySize,
                                      msg.date,
-                                     msg.label,
+                                     msg.label.c_str(),
                                      msg.eventRetraction,
                                      msg.exception);
           else
@@ -228,7 +226,7 @@
                                      msg.handleArray,
                                      ValueArray,
                                      msg.handleArraySize,
-                                     msg.label,
+                                     msg.label.c_str(),
                                      msg.exception);
           free(ValueArray);
 
@@ -240,14 +238,14 @@
                om->removeObject(msg.object,
                                 msg.federate,
                                 msg.date,
-                                msg.label,
+                                msg.label.c_str(),
                                 msg.eventRetraction,
                                 msg.exception);
          }
          else {
                om->removeObject(msg.object,
                                 msg.federate,
-                                msg.label,
+                                msg.label.c_str(),
                                 msg.exception);
          }
         break ;
@@ -274,7 +272,7 @@
                                                  msg.handleArray,
                                                  msg.handleArraySize,
                                                  msg.federate,
-                                                 msg.label,
+                                                 
const_cast<char*>(msg.label.c_str()),
                                                  msg.exception);
         break ;
 
@@ -305,7 +303,7 @@
         owm->requestAttributeOwnershipRelease(msg.object,
                                               msg.handleArray,
                                               msg.handleArraySize,
-                                              msg.label,
+                                              
const_cast<char*>(msg.label.c_str()),
                                               msg.exception);
         break ;
 
@@ -317,7 +315,7 @@
         break ;
 
       case NetworkMessage::INITIATE_FEDERATE_SAVE:
-        fm->initiateFederateSave(msg.label);
+        fm->initiateFederateSave(msg.label.c_str());
         break ;
 
       case NetworkMessage::FEDERATION_SAVED:
@@ -331,7 +329,7 @@
       case NetworkMessage::REQUEST_FEDERATION_RESTORE_FAILED: {
           bool status = (msg.type == 
NetworkMessage::REQUEST_FEDERATION_RESTORE_SUCCEEDED)
               ? true : false ;
-          fm->requestFederationRestoreStatus(status, msg.label, msg.tag);
+          fm->requestFederationRestoreStatus(status, msg.label.c_str(), 
msg.tag.c_str());
       }
         break ;
 
@@ -340,7 +338,7 @@
         break ;
 
       case NetworkMessage::INITIATE_FEDERATE_RESTORE:
-        fm->initiateFederateRestore(msg.label, msg.federate);
+        fm->initiateFederateRestore(msg.label.c_str(), msg.federate);
         break ;
 
       case NetworkMessage::FEDERATION_RESTORED:
@@ -352,7 +350,6 @@
 
       default:
         D.Out(pdExcept, "Unknown message type in executeFederateService.");
-        msg.display("ERROR");
         throw RTIinternalError("Unknown message in executeFederateService.");
     }
     G.Out(pdGendoc,"exit  TimeManagement::executeFederateService");
@@ -801,4 +798,4 @@
 
 }} // namespaces
 
-// $Id: TimeManagement.cc,v 3.29 2008/03/05 15:33:50 rousse Exp $
+// $Id: TimeManagement.cc,v 3.29.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/FederationManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/FederationManagement.cc,v
retrieving revision 3.50
retrieving revision 3.50.2.1
diff -u -b -r3.50 -r3.50.2.1
--- RTIA/FederationManagement.cc        12 Mar 2008 15:00:45 -0000      3.50
+++ RTIA/FederationManagement.cc        18 Mar 2008 15:55:57 -0000      3.50.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: FederationManagement.cc,v 3.50 2008/03/12 15:00:45 rousse Exp $
+// $Id: FederationManagement.cc,v 3.50.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -114,7 +114,7 @@
                  CouldNotOpenFED,ErrorReadingFED,
                  RTIinternalError)
 {
-    NetworkMessage requete, reponse ;
+    NetworkMessage requete;
 
     G.Out(pdGendoc,"enter FederationManagement::createFederationExecution");
     D.Out(pdInit, "Creating Federation %s.", theName);
@@ -137,58 +137,56 @@
     if (e == e_NO_EXCEPTION)
         {
         requete.type = NetworkMessage::CREATE_FEDERATION_EXECUTION ;
-        requete.federationName = new char[strlen(theName)+1] ;
-        strcpy(requete.federationName, theName);
-        requete.FEDid = new char[strlen(_FEDid)+1] ;
-        strcpy(requete.FEDid, _FEDid) ;
+        requete.federationName = theName;
+        requete.FEDid = _FEDid;        
 
         G.Out(pdGendoc,"createFederationExecution====>   send Message to 
RTIG");
 
         comm->sendMessage(&requete);
 
-        comm->waitMessage(&reponse, 
NetworkMessage::CREATE_FEDERATION_EXECUTION,
-                          federate);
+        std::auto_ptr<NetworkMessage> 
reponse(comm->waitMessage(NetworkMessage::CREATE_FEDERATION_EXECUTION,
+                          federate));
 
         G.Out(pdGendoc,"createFederationExecution<== receive Message from 
RTIG");
 
         // We have to see if C_F_E is OK.
 
-        if (reponse.exception == e_NO_EXCEPTION)
+        if (reponse->exception == e_NO_EXCEPTION)
             {
             _nom_federation = new char[strlen(theName)+1] ;
             strcpy(_nom_federation, theName);
-            _numero_federation = reponse.federation ;
+            _numero_federation = reponse->federation ;
             //_est_createur_federation = true ;
             D.Out(pdInit, "est createur");
             }
-        else if (reponse.exception == e_CouldNotOpenFED)
+        else if (reponse->exception == e_CouldNotOpenFED)
             // RTIG encounters a problem creating federation execution
             {
-            e = reponse.exception;
+            e = reponse->exception;
             G.Out(pdGendoc,"exit FederationManagement::"
                            "createFederationExecution on exception");
-            throw CouldNotOpenFED (reponse.exceptionReason) ;
+            throw CouldNotOpenFED (reponse->exceptionReason.c_str()) ;
             }           
-        else if (reponse.exception == e_FederationExecutionAlreadyExists)
+        else if (reponse->exception == e_FederationExecutionAlreadyExists)
             {
-            e = reponse.exception;
+            e = reponse->exception;
             G.Out(pdGendoc,"exit FederationManagement::"
                            "createFederationExecution on exception");
-            throw FederationExecutionAlreadyExists (reponse.exceptionReason) ;
+            throw FederationExecutionAlreadyExists 
(reponse->exceptionReason.c_str()) ;
             }
-        else if (reponse.exception == e_ErrorReadingFED)
+        else if (reponse->exception == e_ErrorReadingFED)
             {
-            e = reponse.exception;
+            e = reponse->exception;
             G.Out(pdGendoc,"exit FederationManagement::"
                            "createFederationExecution on exception 
ErrorReadingFED");
-            throw ErrorReadingFED (reponse.exceptionReason) ;
+            throw ErrorReadingFED (reponse->exceptionReason.c_str()) ;
             }
         else
             {
-            e = reponse.exception ;
+            e = reponse->exception ;
             G.Out(pdGendoc,"exit FederationManagement::"
                            "createFederationExecution on exception 
RTIinternalError");
-            throw RTIinternalError (reponse.exceptionReason) ;
+            throw RTIinternalError (reponse->exceptionReason.c_str()) ;
             D.Out(pdInit, "deja cree");
             }
         }
@@ -205,7 +203,7 @@
 destroyFederationExecution(const char *theName,
                            TypeException &e)
 {
-    NetworkMessage requete, reponse ;
+    NetworkMessage requete;
 
     D.Out(pdInit, "Destroy Federation %s.", theName);
     G.Out(pdGendoc,"enter FederationManagement::destroyFederationExecution");
@@ -220,21 +218,19 @@
         requete.type = NetworkMessage::DESTROY_FEDERATION_EXECUTION ;
         requete.federation = _numero_federation ;
         requete.federate = federate ;
-        requete.federationName = new char[strlen(theName)+1] ;
-        strcpy(requete.federationName, theName);
+        requete.federationName = theName;        
 
         G.Out(pdGendoc,"destroyFederationExecution====>send Message to RTIG");
-
         comm->sendMessage(&requete);
 
-        comm->waitMessage(&reponse,
+        std::auto_ptr<NetworkMessage> reponse(comm->waitMessage(
                           NetworkMessage::DESTROY_FEDERATION_EXECUTION,
-                          federate);
+                          federate));
 
-        if (reponse.exception == e_NO_EXCEPTION) {
+        if (reponse->exception == e_NO_EXCEPTION) {
             _nom_federation = NULL ;
             _numero_federation = 0 ;
-            //_est_createur_federation = false ;
+            _est_createur_federation = false ;
             _fin_execution = true ;
             // Now, remove temporary file (if not yet done)
             if ( _FEDid != NULL )
@@ -247,9 +243,8 @@
                }
         }
         else
-            e = reponse.exception ;
+            e = reponse->exception ;
     }
-
 G.Out(pdGendoc,"exit  FederationManagement::destroyFederationExecution");
 }
 
@@ -261,7 +256,7 @@
                         const char *Federation,
                         TypeException &e)
 {
-    NetworkMessage requete, reponse, requeteFED ;
+    NetworkMessage requete, requeteFED ;
     int i, nb ;
     char *filename ; // Needed for working file name
 
@@ -270,14 +265,16 @@
 
     e = e_NO_EXCEPTION ;
 
+    if (_est_createur_federation && strcmp(Federation, _nom_federation))
+        e = e_RTIinternalError ;
+
     if (_est_membre_federation)
         e = e_FederateAlreadyExecutionMember ;
 
     if (e == e_NO_EXCEPTION) {
         requete.type = NetworkMessage::JOIN_FEDERATION_EXECUTION ;
-        requete.federationName = new char[strlen(Federation)+1] ;
-        strcpy(requete.federationName, Federation);
-        strcpy(requete.federateName, Federate);
+        requete.federationName = Federation;        
+        requete.federateName = Federate;
 
         requete.bestEffortAddress = comm->getAddress();
         requete.bestEffortPeer = comm->getPort();
@@ -287,12 +284,12 @@
         comm->sendMessage(&requete);
 
         // Waiting RTIG answer for FED file opened
-        comm->waitMessage(&reponse, NetworkMessage::GET_FED_FILE, 0);
+        std::auto_ptr<NetworkMessage> 
reponse(comm->waitMessage(NetworkMessage::GET_FED_FILE, 0));
 
-        if ( reponse.exception != e_NO_EXCEPTION)
+        if ( reponse->exception != e_NO_EXCEPTION)
             {
             // Bad answer from RTIG
-            e = reponse.exception ;
+            e = reponse->exception ;
             }
         else
             {
@@ -311,7 +308,7 @@
             strcat(filename,Federation);
             // Last file type : fed or xml ?
    
-            string filename_RTIG = reponse.FEDid ;
+            string filename_RTIG = reponse->FEDid ;
             int nbcar_filename_RTIG=filename_RTIG.length();        
             string extension = filename_RTIG.substr(nbcar_filename_RTIG-3,3) ;
               if ( !strcasecmp(extension.c_str(),"fed") )
@@ -334,9 +331,8 @@
               
             // RTIA says RTIG OK for file transfer
             requeteFED.type = NetworkMessage::GET_FED_FILE ;
-            strcpy(requeteFED.federateName, Federate);
-            requeteFED.FEDid = new char[strlen(filename)+1] ;
-            strcpy(requeteFED.FEDid,filename) ;
+            requeteFED.federateName = Federate;
+            requeteFED.FEDid = filename;            
             if ( e == e_NO_EXCEPTION)
                 requeteFED.number = 0 ;  // OK for open
             else
@@ -352,8 +348,8 @@
             int num_line = 0 ; // no line read
             for (;;)
                 {
-                comm->waitMessage(&reponse, NetworkMessage::GET_FED_FILE, 0);
-                if ( reponse.exception != e_NO_EXCEPTION)
+                reponse.reset(comm->waitMessage(NetworkMessage::GET_FED_FILE, 
0));
+                if ( reponse->exception != e_NO_EXCEPTION)
                     {
                     cout << "Bad answer from RTIG" << endl ;
                     e = e_RTIinternalError ;
@@ -363,19 +359,18 @@
                 // Line read
                 num_line++ ;
                 // Check for EOF
-                if ( reponse.number == 0 )
+                if ( reponse->number == 0 )
                     break;
-                assert ( num_line == reponse.number ) ;
-                reponse.handleArraySize = 1 ;
-                file_line = reponse.getValue(0,&length) ;
+                assert ( num_line == reponse->number ) ;
+                reponse->handleArraySize = 1 ;
+                file_line = reponse->getValue(0,&length) ;
                 int nbw = fputs(file_line,fdd);
                 file_line = NULL ;
                 // RTIA says OK to RTIG
                 requeteFED.type = NetworkMessage::GET_FED_FILE ;
-                strcpy(requeteFED.federateName, Federate);
+                requeteFED.federateName =Federate;
                 requeteFED.number = num_line ; 
-                requeteFED.FEDid = new char[strlen(filename)+1] ;
-                strcpy(requeteFED.FEDid,filename) ; 
+                requeteFED.FEDid = filename;
 
                 comm->sendMessage(&requeteFED);            
                 }
@@ -386,28 +381,28 @@
         G.Out(pdGendoc,"joinFederationExecution====> end FED file get from 
RTIG"); 
           
          // Waiting RTIG answer (from any federate)
-        comm->waitMessage(&reponse, NetworkMessage::JOIN_FEDERATION_EXECUTION, 
0);
+        
reponse.reset(comm->waitMessage(NetworkMessage::JOIN_FEDERATION_EXECUTION, 0));
 
         // If OK, regulators number is inside the answer.
         // Then we except a NULL message from each.
-        if (reponse.exception == e_NO_EXCEPTION) {
+        if (reponse->exception == e_NO_EXCEPTION) {
             _nom_federation = new char[strlen(Federation)+1] ;
             strcpy(_nom_federation, Federation);
             strcpy(_nom_federe, Federate);
-            _numero_federation = reponse.federation ;
-            federate = reponse.federate ;
-            tm->setFederate(reponse.federate);
+            _numero_federation = reponse->federation ;
+            federate = reponse->federate ;
+            tm->setFederate(reponse->federate);
 
 #ifdef FEDERATION_USES_MULTICAST
             // creation du socket pour la communication best-effort
-            comm->CreerSocketMC(reponse.AdresseMulticast, MC_PORT);
+            comm->CreerSocketMC(reponse->AdresseMulticast, MC_PORT);
 #endif
 
-            nb = reponse.numberOfRegulators ;
+            nb = reponse->numberOfRegulators ;
             for (i=0 ; i<nb ; i++) {
-                comm->waitMessage(&reponse, NetworkMessage::MESSAGE_NULL, 0);
+                reponse.reset(comm->waitMessage(NetworkMessage::MESSAGE_NULL, 
0));
                 assert(tm != NULL);
-                tm->insert(reponse.federate, reponse.date);
+                tm->insert(reponse->federate, reponse->date);
             }
 
             _est_membre_federation = true ;
@@ -415,7 +410,7 @@
             return(federate);
         }
         else
-            e = reponse.exception ;
+            e = reponse->exception ;
     }
     G.Out(pdGendoc,"exit(0) FederationManagement::joinFederationExecution");
     return(0);
@@ -432,8 +427,6 @@
     NetworkMessage msg ;
     TypeException exception = e_NO_EXCEPTION ;
 
-    G.Out(pdGendoc,"enter FederationManagement::resignFederationExecution");
-
     e = e_NO_EXCEPTION ;
 
     D.Out(pdInit, "Resign Federation.");
@@ -451,7 +444,6 @@
         msg.federation = _numero_federation ;
         msg.federate = federate ;
 
-        G.Out(pdGendoc,"      resignFederationExecution ===> send NMessage RFE 
to RTIG");
         comm->sendMessage(&msg);
 
         _est_membre_federation = false ;
@@ -468,10 +460,9 @@
             }
 
         // BUG: Voir DestroyFederation ou ~GF.
-       // if (!_est_createur_federation)
-          //_fin_execution = true ;
+        if (!_est_createur_federation)
+            _fin_execution = true ;
     }
-    G.Out(pdGendoc,"exit  FederationManagement::resignFederationExecution");
 }
 
 // ----------------------------------------------------------------------------
@@ -1012,4 +1003,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: FederationManagement.cc,v 3.50 2008/03/12 15:00:45 rousse Exp $
+// $Id: FederationManagement.cc,v 3.50.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/RTIA.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA.cc,v
retrieving revision 3.13
retrieving revision 3.13.2.1
diff -u -b -r3.13 -r3.13.2.1
--- RTIA/RTIA.cc        14 Jun 2007 13:00:20 -0000      3.13
+++ RTIA/RTIA.cc        18 Mar 2008 15:55:57 -0000      3.13.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: RTIA.cc,v 3.13 2007/06/14 13:00:20 siron Exp $
+// $Id: RTIA.cc,v 3.13.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -89,17 +89,20 @@
 void
 RTIA::execute()
 {
-    Message *msg_un ;
-    NetworkMessage *msg_tcp_udp ;
+    Message        *msg_un;
+    NetworkMessage *msg_tcp_udp;
     int n ;
 
     while (!fm->_fin_execution) {
 
-        msg_tcp_udp = new NetworkMessage ;
-        msg_un = new Message ;
-
+        /* Message will be allocated by the readMessage call */
+       msg_un      = NULL;
+       msg_tcp_udp = NULL;
         try {
-            comm->readMessage(n, msg_tcp_udp, msg_un);
+               msg_un      = NULL;
+               msg_tcp_udp = NULL;
+            comm->readMessage(n, &msg_tcp_udp, &msg_un);
+            assert((msg_un!=NULL) || (msg_tcp_udp!=NULL));
         }
         catch (NetworkSignal) {
             fm->_fin_execution = true ;
@@ -128,11 +131,12 @@
            // read a message from the rtig
             // same code is reused, but only the case 1 should match
 
-            msg_tcp_udp = new NetworkMessage ;
-            msg_un = new Message ;
+               /* Message or NetworkMessage will be allocated by the 
readMessage call */
+            msg_un      = NULL;
+            msg_tcp_udp = NULL;
 
             try {
-                comm->readMessage(n, msg_tcp_udp, msg_un);
+                comm->readMessage(n, &msg_tcp_udp, &msg_un);
             }
             catch (NetworkSignal) {
                 fm->_fin_execution = true ;
@@ -160,4 +164,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: RTIA.cc,v 3.13 2007/06/14 13:00:20 siron Exp $
+// $Id: RTIA.cc,v 3.13.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/DataDistribution.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/DataDistribution.cc,v
retrieving revision 3.23
retrieving revision 3.23.2.1
diff -u -b -r3.23 -r3.23.2.1
--- RTIA/DataDistribution.cc    29 Nov 2007 16:51:15 -0000      3.23
+++ RTIA/DataDistribution.cc    18 Mar 2008 15:55:57 -0000      3.23.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: DataDistribution.cc,v 3.23 2007/11/29 16:51:15 rousse Exp $
+// $Id: DataDistribution.cc,v 3.23.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -35,6 +35,7 @@
 #include "FedRegion.hh"
 
 #include <cassert>
+#include <memory>
 
 using std::string ;
 using std::endl ;
@@ -122,8 +123,7 @@
     throw (SpaceNotDefined)
 {
     D[pdDebug] << "Start creating region in space " << space << "..." << endl ;
-
-    NetworkMessage req, rep ;
+    NetworkMessage req;    
 
     req.type = NetworkMessage::DDM_CREATE_REGION ;
     req.federation = fm->_numero_federation ;
@@ -132,23 +132,23 @@
     req.nbExtents = nb_extents ;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_CREATE_REGION, req.federate);
-    e = rep.exception ;
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_CREATE_REGION, req.federate));
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
-       D[pdDebug] << "Create region " << rep.region << endl ;
-        RTIRegion *region = new RTIRegion(rep.region,
+       D[pdDebug] << "Create region " << rep->region << endl ;
+        RTIRegion *region = new RTIRegion(rep->region,
                                          rootObject->getRoutingSpace(space),
                                          nb_extents);
 
        assert(region->getNumberOfExtents() == nb_extents);
         rootObject->addRegion(region);
-
-        return rep.region ;
+        return rep->region;
     }
-    else
+    else {
         return 0 ;
-}
+    }
+} /* end of createRegion */
 
 // ----------------------------------------------------------------------------
 // modifyRegion
@@ -164,7 +164,8 @@
     RTIRegion *region = rootObject->getRegion(handle);
 
     // Request to RTIG
-    NetworkMessage req, rep ;
+    NetworkMessage req;
+    
     req.type = NetworkMessage::DDM_MODIFY_REGION ;
     req.federation = fm->_numero_federation ;
     req.federate = fm->federate ;
@@ -172,14 +173,14 @@
     req.setExtents(extents);
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_MODIFY_REGION, req.federate);
-    e = rep.exception ;
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_MODIFY_REGION, req.federate));    
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
        region->replaceExtents(extents);        
        D[pdDebug] << "Modified region " << handle << endl ;
     }
-}
+} /* end of modifyRegion */
 
 // ----------------------------------------------------------------------------
 // deleteRegion
@@ -194,7 +195,7 @@
     rootObject->getRegion(handle);
 
     // Request to RTIG
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DDM_DELETE_REGION ;
     req.federation = fm->_numero_federation ;
@@ -202,14 +203,14 @@
     req.region = handle ;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_DELETE_REGION, req.federate);
-    e = rep.exception ;
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_DELETE_REGION, req.federate));
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
         rootObject->deleteRegion(handle);
         D[pdDebug] << "Deleted region " << handle << endl ;
     }
-}
+} /* end of deleteRegion */
 
 // ----------------------------------------------------------------------------
 void
@@ -231,7 +232,7 @@
        rootObject->getObjectAttribute(object, attr[i])->associate(r);  
     }
 
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DDM_ASSOCIATE_REGION ;
     req.federation = fm->_numero_federation ;
@@ -241,11 +242,11 @@
     req.setAHS(attr, nb);
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_ASSOCIATE_REGION,
-                     req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_ASSOCIATE_REGION,req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+    
+} /* end of associateRegion */
 
 // ----------------------------------------------------------------------------
 ObjectHandle
@@ -259,7 +260,7 @@
     D[pdDebug] << "Register object of class " << class_handle << " with "
               << regions.size() << " region(s)." << std::endl ;
 
-    NetworkMessage req, rep ;
+    NetworkMessage req;    
 
     req.type = NetworkMessage::DDM_REGISTER_OBJECT ;
     req.federation = fm->_numero_federation ;
@@ -270,26 +271,25 @@
     req.setRegions(regions);
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_REGISTER_OBJECT,
-                     req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_REGISTER_OBJECT,req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
-        rootObject->registerObjectInstance(fm->federate, class_handle, 
rep.object,
-                                           rep.label);
+        rootObject->registerObjectInstance(fm->federate, class_handle, 
rep->object,
+                                           rep->label.c_str());
        for (int i = 0 ; i < nb ; ++i) {
            D[pdDebug] << "Register attribute [" << i << "] Attr: " << attrs[i]
                       << " Region: " << regions[i] << std::endl ;
                
-           ObjectAttribute *attribute = 
rootObject->getObjectAttribute(rep.object, attrs[i]);
+           ObjectAttribute *attribute = 
rootObject->getObjectAttribute(rep->object, attrs[i]);
            RTIRegion *region = rootObject->getRegion(regions[i]);
            attribute->associate(region);
        }
-        return rep.object ;
+           return rep->object;     
     }
     else return 0 ;
-}
+} /* end of registerObject */
 
 // ----------------------------------------------------------------------------
 void
@@ -304,7 +304,7 @@
 
     rootObject->getObject(object)->unassociate(r);
 
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DDM_UNASSOCIATE_REGION ;
     req.federation = fm->_numero_federation ;
@@ -313,11 +313,11 @@
     req.region = region ;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_UNASSOCIATE_REGION,
-                     req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_UNASSOCIATE_REGION,
+                     req.federate));
 
-   e = rep.exception ;
-}
+   e = rep->exception ;
+} /* end of unassociateRegion */
 
 // ----------------------------------------------------------------------------
 void
@@ -331,7 +331,7 @@
     D[pdDebug] << "Subscribe attributes with region " << region << endl ;
     rootObject->getRegion(region);
 
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DDM_SUBSCRIBE_ATTRIBUTES ;
     req.federation = fm->_numero_federation ;
@@ -341,11 +341,11 @@
     req.setAHS(attr, nb);
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_SUBSCRIBE_ATTRIBUTES,
-                     req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_SUBSCRIBE_ATTRIBUTES,
+                     req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of subscribe */
 
 // ----------------------------------------------------------------------------
 void
@@ -358,7 +358,7 @@
               << " with region " << region << endl ;
     rootObject->getRegion(region);
 
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DDM_UNSUBSCRIBE_ATTRIBUTES ;
     req.federation = fm->_numero_federation ;
@@ -367,11 +367,11 @@
     req.region = region ;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_UNSUBSCRIBE_ATTRIBUTES,
-                     req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_UNSUBSCRIBE_ATTRIBUTES,
+                     req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of unsubscribeAttributes */
 
 // ----------------------------------------------------------------------------
 void
@@ -383,18 +383,18 @@
     D[pdDebug] << "Subscribe interaction with region " << region << endl ;
     rootObject->getRegion(region);
 
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DDM_SUBSCRIBE_INTERACTION ;
     req.interactionClass = int_class ;
     req.region = region ;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_SUBSCRIBE_INTERACTION,
-                     req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DDM_SUBSCRIBE_INTERACTION,
+                     req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of subscribeInteraction */
 
 // ----------------------------------------------------------------------------
 void
@@ -406,19 +406,19 @@
     D[pdDebug] << "Unsubscribe interaction with region " << region << endl ;
     rootObject->getRegion(region);
 
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DDM_UNSUBSCRIBE_INTERACTION ;
     req.interactionClass = int_class ;
     req.region = region ;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DDM_UNSUBSCRIBE_INTERACTION,
-                     req.federate);
+    std::auto_ptr<NetworkMessage>  
rep(comm->waitMessage(NetworkMessage::DDM_UNSUBSCRIBE_INTERACTION,
+                     req.federate));
 
-    e = rep.exception ;
-}
+    e = rep->exception ;
+} /* end of unsubscribeInteraction */
 
 }} // namespace certi::rtia
 
-// $Id: DataDistribution.cc,v 3.23 2007/11/29 16:51:15 rousse Exp $
+// $Id: DataDistribution.cc,v 3.23.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.67
retrieving revision 3.67.2.1
diff -u -b -r3.67 -r3.67.2.1
--- RTIA/RTIA_federate.cc       6 Mar 2008 16:33:09 -0000       3.67
+++ RTIA/RTIA_federate.cc       18 Mar 2008 15:55:57 -0000      3.67.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: RTIA_federate.cc,v 3.67 2008/03/06 16:33:09 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.67.2.1 2008/03/18 15:55:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -1282,8 +1282,8 @@
         rep.setException(e_RTIinternalError);
     }
 
-    delete req ;;
-
+    /* now we can delete the message which has been processed */
+    delete req;
      
     if (rep.type == Message::TICK_REQUEST)
        if ((!tm->_ongoing_tick) && tm->_tick_request_ack) {
@@ -1304,4 +1304,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: RTIA_federate.cc,v 3.67 2008/03/06 16:33:09 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.67.2.1 2008/03/18 15:55:57 erk Exp $

Index: RTIA/Communications.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/Communications.hh,v
retrieving revision 3.10
retrieving revision 3.10.2.1
diff -u -b -r3.10 -r3.10.2.1
--- RTIA/Communications.hh      22 Feb 2008 11:34:30 -0000      3.10
+++ RTIA/Communications.hh      18 Mar 2008 15:55:58 -0000      3.10.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: Communications.hh,v 3.10 2008/02/22 11:34:30 siron Exp $
+// $Id: Communications.hh,v 3.10.2.1 2008/03/18 15:55:58 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_COMMUNICATIONS_HH
@@ -54,24 +54,35 @@
     void sendMessage(NetworkMessage *Msg);
     void sendUN(Message *Msg);
     void receiveUN(Message *Msg);
-    void readMessage(int&, NetworkMessage *, Message *);
+    void readMessage(int&, NetworkMessage**, Message**);
     void requestFederateService(Message *req);
     unsigned long getAddress();
     unsigned int getPort();
-    void waitMessage(NetworkMessage *msg,
-                     NetworkMessage::Type type_msg,
+    /**
+     * Wait for a message coming from RTIG and return
+     * when received.
+     * @param[in] type_msg, expected message type,
+     * @param[in] numeroFedere, federate which sent the message, 0 if 
indifferent.
+     * @return the pointer to new awaited message
+     */
+    NetworkMessage* waitMessage(NetworkMessage::Type type_msg,
                      FederateHandle numeroFedere);
 
 private:
+       /**
+        * this is the wait list of message 
+        * already received from RTIG
+        * but not dispatched message.
+        */
     std::list<NetworkMessage *> waitingList ;
 
     bool searchMessage(NetworkMessage::Type type_msg,
                       FederateHandle numeroFedere,
-                      NetworkMessage *msg);
+                      NetworkMessage **msg);
 };
 
 }} // namespace certi/rtia
 
 #endif // _CERTI_COMMUNICATIONS_HH
 
-// $Id: Communications.hh,v 3.10 2008/02/22 11:34:30 siron Exp $
+// $Id: Communications.hh,v 3.10.2.1 2008/03/18 15:55:58 erk Exp $

Index: RTIA/ObjectManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.cc,v
retrieving revision 3.35
retrieving revision 3.35.2.1
diff -u -b -r3.35 -r3.35.2.1
--- RTIA/ObjectManagement.cc    5 Mar 2008 15:33:50 -0000       3.35
+++ RTIA/ObjectManagement.cc    18 Mar 2008 15:55:58 -0000      3.35.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: ObjectManagement.cc,v 3.35 2008/03/05 15:33:50 rousse Exp $
+// $Id: ObjectManagement.cc,v 3.35.2.1 2008/03/18 15:55:58 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -67,24 +67,24 @@
                                  FederationTime,
                                  TypeException & e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::REGISTER_OBJECT ;
     req.federate = fm->federate ;
     req.federation = fm->_numero_federation ;
     req.objectClass = the_class ;
-    strcpy(req.label, (char *) theObjectName);
+    req.label = theObjectName;
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, NetworkMessage::REGISTER_OBJECT, req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::REGISTER_OBJECT, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
-        rootObject->registerObjectInstance(fm->federate, the_class, rep.object,
-                                           rep.label);
-        return rep.object ;
+        rootObject->registerObjectInstance(fm->federate, the_class, 
rep->object,
+                                           rep->label.c_str());
+        return rep->object ;
     }
     else
         return 0 ;
@@ -110,7 +110,7 @@
                                         const char *theTag,
                                         TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
     int i ;
 
     // Building request (req NetworkMessage)
@@ -129,14 +129,14 @@
         req.setValue(i, valueArray[i].value, valueArray[i].length);
     }
 
-    strcpy(req.label, theTag);
+    req.label= theTag;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::UPDATE_ATTRIBUTE_VALUES, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::UPDATE_ATTRIBUTE_VALUES, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
-    return rep.eventRetraction ;
+    return rep->eventRetraction ;
 }
 
 // ----------------------------------------------------------------------------
@@ -157,7 +157,7 @@
                                         const char *theTag,
                                         TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
     int i ;
 
     // Building request (req NetworkMessage)
@@ -175,12 +175,12 @@
         req.setValue(i, valueArray[i].value, valueArray[i].length);
     }
 
-    strcpy(req.label, theTag);
+    req.label = theTag;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::UPDATE_ATTRIBUTE_VALUES, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::UPDATE_ATTRIBUTE_VALUES, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
 }
 // ----------------------------------------------------------------------------
@@ -273,7 +273,7 @@
                                  RegionHandle region,
                                   TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
     G.Out(pdGendoc,"ObjectManagement::sendInteraction with time") ;
     // Local test to know if interaction is correct.
     rootObject->Interactions->isReady(fm->federate,
@@ -298,15 +298,15 @@
        req.setValue(i, valueArray[i].value, valueArray[i].length);
     }
 
-    strcpy(req.label, theTag);
+    req.label = theTag;
 
     // Send network message and then wait for answer.
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::SEND_INTERACTION, req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::SEND_INTERACTION, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
-    return rep.eventRetraction ;
+    return rep->eventRetraction ;
 }
 
 // ----------------------------------------------------------------------------
@@ -320,7 +320,7 @@
                                  RegionHandle region,
                                   TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
     G.Out(pdGendoc,"ObjectManagement::sendInteraction without time");
     // Local test to know if interaction is correct.
     rootObject->Interactions->isReady(fm->federate,
@@ -344,15 +344,15 @@
        req.setValue(i, valueArray[i].value, valueArray[i].length);
     }
 
-    strcpy(req.label, theTag);
+    req.label = theTag;
 
     // Send network message and then wait for answer.
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::SEND_INTERACTION, req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::SEND_INTERACTION, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
-}
+} /* end of sendInteraction */
 
 // ----------------------------------------------------------------------------
 //! receiveInteraction with time
@@ -406,7 +406,7 @@
                                const char *theTag,
                                TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DELETE_OBJECT ;
     req.object = theObjectHandle ;
@@ -415,18 +415,18 @@
     req.federation = fm->_numero_federation ;
     req.federate = fm->federate ;
 
-    strcpy(req.label, theTag);
+    req.label = theTag;
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DELETE_OBJECT, req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DELETE_OBJECT, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
         rootObject->deleteObjectInstance(fm->federate, theObjectHandle, 
theTag);
     }
 
-    return rep.eventRetraction ;
-}
+    return rep->eventRetraction ;
+} /* end deleteObject */
 
 // ----------------------------------------------------------------------------
 //! deleteObject without time
@@ -435,7 +435,7 @@
                                const char *theTag,
                                TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::DELETE_OBJECT ;
     req.object = theObjectHandle ;
@@ -443,16 +443,16 @@
     req.federation = fm->_numero_federation ;
     req.federate = fm->federate ;
 
-    strcpy(req.label, theTag);
+    req.label =theTag;
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::DELETE_OBJECT, req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::DELETE_OBJECT, req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
     if (e == e_NO_EXCEPTION) {
         rootObject->deleteObjectInstance(fm->federate, theObjectHandle, 
theTag);
     }
-}
+} /* end of deleteObject */
 
 // ----------------------------------------------------------------------------
 //! removeObject with time
@@ -506,7 +506,7 @@
                                                TransportType theType,
                                                TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
     int i ;
 
     req.type = NetworkMessage::CHANGE_ATTRIBUTE_TRANSPORT_TYPE ;
@@ -520,13 +520,13 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep,
+    std::auto_ptr<NetworkMessage> rep(comm->waitMessage(
                       NetworkMessage::CHANGE_ATTRIBUTE_TRANSPORT_TYPE,
-                      req.federate);
+                      req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
-    return rep.eventRetraction ;
+    return rep->eventRetraction ;
 }
 
 // ----------------------------------------------------------------------------
@@ -538,7 +538,7 @@
                                            OrderType theType,
                                            TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req ;
     int i ;
 
     req.type = NetworkMessage::CHANGE_ATTRIBUTE_ORDER_TYPE ;
@@ -553,11 +553,11 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, NetworkMessage::CHANGE_ATTRIBUTE_ORDER_TYPE, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::CHANGE_ATTRIBUTE_ORDER_TYPE, 
req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
-    return rep.eventRetraction ;
+    return rep->eventRetraction ;
 }
 
 // ----------------------------------------------------------------------------
@@ -567,7 +567,7 @@
                                                  TransportType theType,
                                                  TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::CHANGE_INTERACTION_TRANSPORT_TYPE ;
     req.interactionClass = id ;
@@ -576,10 +576,10 @@
     req.transport = theType ;
 
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, NetworkMessage::CHANGE_INTERACTION_TRANSPORT_TYPE, 
req.federate);
-    e = rep.exception ;
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::CHANGE_INTERACTION_TRANSPORT_TYPE, 
req.federate));
+    e = rep->exception ;
 
-    return rep.eventRetraction ;
+    return rep->eventRetraction ;
 }
 
 // ----------------------------------------------------------------------------
@@ -589,7 +589,7 @@
                                              OrderType theType,
                                              TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     req.type = NetworkMessage::CHANGE_INTERACTION_ORDER_TYPE ;
     req.interactionClass = id ;
@@ -599,12 +599,12 @@
 
     comm->sendMessage(&req);
 
-    comm->waitMessage(&rep, NetworkMessage::CHANGE_INTERACTION_ORDER_TYPE, 
req.federate);
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::CHANGE_INTERACTION_ORDER_TYPE, 
req.federate));
 
-    e = rep.exception ;
+    e = rep->exception ;
 
-    return rep.eventRetraction ;
-}
+    return rep->eventRetraction ;
+} /* end of changeInteractionOrderType */
 
 // ----------------------------------------------------------------------------
 //! requestObjectAttributeValueUpdate
@@ -614,7 +614,7 @@
                                                     UShort attribArraySize,
                                                     TypeException &e)
 {
-    NetworkMessage req, rep ;
+    NetworkMessage req;
 
     G.Out(pdGendoc,"enter 
ObjectManagement::requestObjectAttributeValueUpdate");
 
@@ -629,12 +629,12 @@
 
     req.handleArraySize = attribArraySize ;
     comm->sendMessage(&req);
-    comm->waitMessage(&rep, 
NetworkMessage::REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE,
-                      req.federate);
-    e = rep.exception ;
+    std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE,
+                      req.federate));
+    e = rep->exception ;
     G.Out(pdGendoc,"exit  
ObjectManagement::requestObjectAttributeValueUpdate");
 
-}
+} /* end of requestObjectAttributeValueUpdate */
 
 
 // --------------------------------------
@@ -785,4 +785,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: ObjectManagement.cc,v 3.35 2008/03/05 15:33:50 rousse Exp $
+// $Id: ObjectManagement.cc,v 3.35.2.1 2008/03/18 15:55:58 erk Exp $

Index: RTIA/RTIA_network.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_network.cc,v
retrieving revision 3.22
retrieving revision 3.22.2.1
diff -u -b -r3.22 -r3.22.2.1
--- RTIA/RTIA_network.cc        5 Mar 2008 15:33:50 -0000       3.22
+++ RTIA/RTIA_network.cc        18 Mar 2008 15:55:58 -0000      3.22.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: RTIA_network.cc,v 3.22 2008/03/05 15:33:50 rousse Exp $
+// $Id: RTIA_network.cc,v 3.22.2.1 2008/03/18 15:55:58 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -45,9 +45,6 @@
 
 G.Out(pdGendoc,"enter RTIA::processNetworkMessage");
 
-//D.Mes(pdMessage, 'N', msgType);
-msg->trace("RTIA::processNetworkMessage ");
-
     switch(msgType) {
 
       case NetworkMessage::MESSAGE_NULL:
@@ -339,9 +336,11 @@
     }
 
     stat.rtiService(msgType);
+    /* now we can delete the message which has been processed */
+    delete msg;
     G.Out(pdGendoc,"exit  RTIA::processNetworkMessage");
 }
 
 }} // namespace certi/rtia
 
-// $Id: RTIA_network.cc,v 3.22 2008/03/05 15:33:50 rousse Exp $
+// $Id: RTIA_network.cc,v 3.22.2.1 2008/03/18 15:55:58 erk Exp $

Index: RTIG/RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.56
retrieving revision 3.56.2.1
diff -u -b -r3.56 -r3.56.2.1
--- RTIG/RTIG_processing.cc     5 Mar 2008 15:33:50 -0000       3.56
+++ RTIG/RTIG_processing.cc     18 Mar 2008 15:55:58 -0000      3.56.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: RTIG_processing.cc,v 3.56 2008/03/05 15:33:50 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.56.2.1 2008/03/18 15:55:58 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -40,20 +40,20 @@
 void
 RTIG::processCreateFederation(Socket *link, NetworkMessage *req)
 {
-    char *federation = req->federationName ;
-    char *FEDid = req->FEDid ;
+    std::string federation = req->federationName;
+    std::string FEDid      = req->FEDid;
     NetworkMessage rep ;               // rep for answer to RTIA
 
     G.Out(pdGendoc,"enter RTIG::processCreateFederation");
     G.Out(pdGendoc,"BEGIN ** CREATE FEDERATION SERVICE **");
 
-    if (federation == NULL) 
+    if (federation.length() == 0) 
         {
         G.Out(pdGendoc,"exit  RTIG::processCreateFederation on exception 
RTIinternalError");        
         throw RTIinternalError("Invalid Federation Name.");
         }
 
-    auditServer << "Federation Name : " << federation ;
+    //auditServer << "Federation Name : " << federation ;
     Handle h = federationHandles.provide();
 
 #ifdef FEDERATION_USES_MULTICAST
@@ -82,22 +82,22 @@
     // We catch createFederation because it is useful to send
     // exception reason to RTIA 
     try {
-        federations.createFederation(federation, h, FEDid);
+        federations.createFederation(federation.c_str(), h, FEDid.c_str());
         }
     catch (CouldNotOpenFED e)
         {
         rep.exception = e_CouldNotOpenFED ;
-        strcpy(rep.exceptionReason,e._reason) ;
+        rep.exceptionReason=e._reason;
         }
     catch (ErrorReadingFED e)
         {
         rep.exception = e_ErrorReadingFED ;
-        strcpy(rep.exceptionReason,e._reason) ;
+        rep.exceptionReason = e._reason ;
         }
     catch (FederationExecutionAlreadyExists e)
         {
         rep.exception = e_FederationExecutionAlreadyExists ;
-        strcpy(rep.exceptionReason,e._reason) ;
+        rep.exceptionReason =e._reason ;
         }
 #endif
     // Prepare answer for RTIA : store NetworkMessage rep
@@ -105,10 +105,8 @@
     if ( rep.exception == e_NO_EXCEPTION )
         {
         rep.federation = h ;
-        rep.FEDid = new char [strlen(FEDid)+1] ;
-        strcpy(rep.FEDid,FEDid) ;
-        rep.federationName = new char [strlen(federation)+1] ;
-        strcpy(rep.federationName,federation);
+        rep.FEDid = FEDid;        
+        rep.federationName = federation;        
         }
 
     G.Out(pdGendoc,"processCreateFederation===>write answer to RTIA");
@@ -116,7 +114,7 @@
     rep.write(link); // Send answer to RTIA
 
     D.Out(pdInit, "Federation \"%s\" created with Handle %d.",
-          federation, rep.federation);
+          federation.c_str(), rep.federation);
 
     G.Out(pdGendoc,"END ** CREATE FEDERATION SERVICE **");
     G.Out(pdGendoc,"exit RTIG::processCreateFederation");
@@ -127,9 +125,9 @@
 void
 RTIG::processJoinFederation(Socket *link, NetworkMessage *req)
 {
-    char *federation = req->federationName ;
-    char *federate = req->federateName ;
-    char *filename = NULL ;
+    std::string federation = req->federationName ;
+    std::string federate = req->federateName ;
+    std::string filename ;
     
     unsigned int peer = req->bestEffortPeer ;
     unsigned long address = req->bestEffortAddress ;
@@ -144,16 +142,16 @@
     G.Out(pdGendoc,"BEGIN ** JOIN FEDERATION SERVICE **");
     G.Out(pdGendoc,"enter RTIG::processJoinFederation");
 
-    if ((federation == NULL) || (federate == NULL))
+    if ((federation.length()==0) || (federate.length() == 0))
         throw RTIinternalError("Invalid Federation/Federate Name.");
 
-    auditServer << "Federate \"" << federate << "\" joins Federation \""
-               << federation << "\"" ;
+    auditServer << "Federate \"" << federate.c_str() << "\" joins Federation 
\""
+               << federation.c_str() << "\"" ;
 
-    federations.exists(federation, num_federation);
+    federations.exists(federation.c_str(), num_federation);
 
     num_federe = federations.addFederate(num_federation,
-                                          federate,
+                                          federate.c_str(),
                                           (SecureTCPSocket *) link);
 
 #ifdef FEDERATION_USES_MULTICAST
@@ -181,8 +179,7 @@
     NetworkMessage rep ;
     rep.type = NetworkMessage::JOIN_FEDERATION_EXECUTION ;
     rep.exception = e_NO_EXCEPTION ;
-    rep.federationName = new char[strlen(federation)+1];
-    strcpy(rep.federationName,federation);
+    rep.federationName = federation;    
     rep.federate = num_federe ;
     rep.federation = num_federation ;
     rep.numberOfRegulators = nb_regulateurs ;
@@ -193,7 +190,7 @@
     TypeException e = e_NO_EXCEPTION ;
     // Open FED file and says to RTIA if success
     FILE *fdd ;
-    if ( (fdd=fopen(filename,"r")) == NULL )
+    if ( (fdd=fopen(filename.c_str(),"r")) == NULL )
         {
         // Problem : file has been opened during create federation and now we 
can't
         // May be file has been deleted       
@@ -207,12 +204,11 @@
     repFED.federate = num_federe ;
     repFED.federation = num_federation ;
     repFED.number = 0 ;
-    repFED.FEDid = new char[strlen(filename)+1] ;
-    strcpy(repFED.FEDid,filename) ;
+    repFED.FEDid = filename ;    
     repFED.exception = e ;
     // Send answer
     D.Out(pdTrace,"send NetworkMessage of Type %d after open \"%s\"",
-          repFED.type,repFED.FEDid);
+          repFED.type,repFED.FEDid.c_str());
     G.Out(pdGendoc,"processJoinFederation====>Begin FED file transfer");
 
     repFED.write(link);
@@ -238,8 +234,7 @@
             repFED.federate = num_federe ;
             repFED.federation = num_federation ;
             repFED.number = num_line ;
-            repFED.FEDid = new char[strlen(filename)+1] ;
-            strcpy(repFED.FEDid,filename) ;
+            repFED.FEDid = filename;            
             // line transfered
             repFED.handleArraySize = 1 ;
             assert ( strlen(file_line) <= MAX_BYTES_PER_VALUE );
@@ -260,8 +255,7 @@
         repFED.federate = num_federe ;
         repFED.federation = num_federation ;
         repFED.number = 0 ;
-        repFED.FEDid = new char[strlen(filename)+1] ;
-        strcpy(repFED.FEDid,filename) ;
+        repFED.FEDid = filename;        
 
         // Send answer
 
@@ -278,7 +272,7 @@
 #endif
 
     D.Out(pdInit, "Federate \"%s\" has joined Federation %u under handle %u.",
-          federate, num_federation, num_federe);
+          federate.c_str(), num_federation, num_federe);
 
     // Send answer
 
@@ -314,25 +308,24 @@
 RTIG::processDestroyFederation(Socket *link, NetworkMessage *req)
 {
     Handle num_federation ;
-    char *federation = req->federationName ;
+    std::string federation = req->federationName ;
 
     G.Out(pdGendoc,"enter RTIG::processDestroyFederation");
     G.Out(pdGendoc,"BEGIN ** DESTROY FEDERATION SERVICE **");
 
-    if (federation == NULL) throw RTIinternalError("Invalid Federation Name.");
+    if (federation.length() == 0) throw RTIinternalError("Invalid Federation 
Name.");
 
-    auditServer << "Name \"" << federation << "\"" ;
-    federations.exists(federation, num_federation);
+    auditServer << "Name \"" << federation.c_str() << "\"" ;
+    federations.exists(federation.c_str(), num_federation);
     federations.destroyFederation(num_federation);
     federationHandles.free(num_federation);
-    D.Out(pdInit, "Federation \"%s\" has been destroyed.", federation);
+    D.Out(pdInit, "Federation \"%s\" has been destroyed.", federation.c_str());
 
     NetworkMessage rep ;
     rep.type = NetworkMessage::DESTROY_FEDERATION_EXECUTION ;
     rep.exception = e_NO_EXCEPTION ;
     rep.federate = req->federate ;
-    rep.federationName = new char[strlen(req->federationName)+1];
-    strcpy(rep.federationName,req->federationName);
+    rep.federationName = req->federationName;    
 
     G.Out(pdGendoc,"processDestroyFederation===>write to RTIA");
 
@@ -413,24 +406,24 @@
     G.Out(pdGendoc,"BEGIN ** REGISTER FEDERATION SYNCHRONIZATION POINT Service 
**");
     G.Out(pdGendoc,"enter RTIG::processRegisterSynchronization");
 
-    auditServer << "Label \"" << req->label << "\" registered. Tag is \""
-               << req->tag << "\"" ;
+    auditServer << "Label \"" << req->label.c_str() << "\" registered. Tag is 
\""
+               << req->tag.c_str() << "\"" ;
 
     // boolean true means a federates set exists
     if ( req->boolean )
         federations.manageSynchronization(req->federation,
                                           req->federate,
                                           true,
-                                          req->label,
-                                          req->tag,
+                                          req->label.c_str(),
+                                          req->tag.c_str(),
                                           req->handleArraySize,
                                           req->handleArray);
     else
         federations.manageSynchronization(req->federation,
                                           req->federate,
                                           true,
-                                          req->label,
-                                          req->tag);
+                                          req->label.c_str(),
+                                          req->tag.c_str());
     D.Out(pdTerm, "Federation %u is now synchronizing.", req->federation);
 
     // send synchronizationPointRegistrationSucceeded() to federate.
@@ -438,7 +431,7 @@
     rep.type = NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED ;
     rep.federate = req->federate ;
     rep.federation = req->federation ;
-    rep.setLabel(req->label);
+    rep.setLabel(req->label.c_str());
 
     G.Out(pdGendoc,"      processRegisterSynchronization====> write SPRS to 
RTIA");
 
@@ -448,15 +441,15 @@
     if ( req->boolean )
         federations.broadcastSynchronization(req->federation,
                                           req->federate,
-                                          req->label,
-                                          req->tag,
+                                          req->label.c_str(),
+                                          req->tag.c_str(),
                                           req->handleArraySize,
                                           req->handleArray);
     else
         federations.broadcastSynchronization(req->federation,
                                           req->federate,
-                                          req->label,
-                                          req->tag);
+                                          req->label.c_str(),
+                                          req->tag.c_str());
 
     G.Out(pdGendoc,"exit  RTIG::processRegisterSynchronization");
     G.Out(pdGendoc,"END   ** REGISTER FEDERATION SYNCHRONIZATION POINT Service 
**");
@@ -468,12 +461,12 @@
 void
 RTIG::processSynchronizationAchieved(Socket *, NetworkMessage *req)
 {
-    auditServer << "Label \"" << req->label << "\" ended." ;
+    auditServer << "Label \"" << req->label.c_str() << "\" ended." ;
 
     federations.manageSynchronization(req->federation,
                                        req->federate,
                                        false,
-                                       req->label,
+                                       req->label.c_str(),
                                        "");
     D.Out(pdTerm, "Federate %u has synchronized.", req->federate);
 }
@@ -490,11 +483,11 @@
     if ( req->boolean )
         // With time
         federations.requestFederationSave(req->federation, req->federate,
-                                          req->label, req->date);
+                                          req->label.c_str(), req->date);
     else
         // Without time
         federations.requestFederationSave(req->federation, req->federate,
-                                          req->label);
+                                          req->label.c_str());
 
     G.Out(pdGendoc,"exit  RTIG::processRequestFederationSave");
     G.Out(pdGendoc,"END   ** REQUEST FEDERATION SAVE SERVICE **");
@@ -543,7 +536,7 @@
     auditServer << "Federate " << req->federate << " request restore." ;
 
     federations.requestFederationRestore(req->federation, req->federate,
-                                          req->label);
+                                          req->label.c_str());
     G.Out(pdGendoc,"exit  RTIG::processRequestFederationRestore");
     G.Out(pdGendoc,"END   ** REQUEST FEDERATION RESTORE SERVICE **");
 }
@@ -696,17 +689,17 @@
     rep.object = federations.registerObject(req->federation,
                                              req->federate,
                                              req->objectClass,
-                                             req->label);
+                                             
const_cast<char*>(req->label.c_str()));
     auditServer << ", Handle = " << rep.object ;
 
     D.Out(pdRegister,
           "Object \"%s\" of Federate %u has been registered under ID %u.",
-          req->label, req->federate, rep.object);
+          req->label.c_str(), req->federate, rep.object);
 
     rep.type = req->type ;
     rep.exception = e_NO_EXCEPTION ;
     rep.federate = req->federate ;
-    rep.setLabel(req->label);
+    rep.setLabel(req->label.c_str());
     // rep.object is set by the call of registerObject
 
     rep.write(link); // Send answer to RTIA
@@ -736,7 +729,7 @@
                                  ValueArray,
                                  req->handleArraySize,
                                  req->date,
-                                 req->label);
+                                 req->label.c_str());
         }
     else
         {
@@ -747,7 +740,7 @@
                                  req->handleArray,
                                  ValueArray,
                                  req->handleArraySize,
-                                 req->label);
+                                 req->label.c_str());
         }
     free(ValueArray);
 
@@ -760,8 +753,8 @@
     rep.date = req->date ;
     rep.handleArraySize = 0 ;
     // Don't forget label and tag
-    strcpy(rep.label,req->label) ;
-    strcpy(rep.tag,req->tag) ;
+    rep.label=req->label ;
+    rep.tag=req->tag;
 
     rep.write(link); // send answer to RTIA
 }
@@ -791,7 +784,7 @@
                                req->handleArraySize,
                                req->date,
                                req->region,
-                               req->label);
+                               req->label.c_str());
         }
     else
         {
@@ -802,7 +795,7 @@
                                values,
                                req->handleArraySize,
                                req->region,
-                               req->label);
+                               req->label.c_str());
         }
     free(values);
 
@@ -816,8 +809,8 @@
     rep.interactionClass = req->interactionClass ;
     rep.handleArraySize = 0 ;
     // Don't forget label and tag
-    strcpy(rep.label,req->label) ;
-    strcpy(rep.tag,req->tag) ;
+    rep.label=req->label;
+    rep.tag=req->tag;
     G.Out(pdGendoc,"processSendInteraction===>write");
     rep.write(link); // send answer to RTIA
 
@@ -840,13 +833,13 @@
                                  req->federate,
                                   req->object,
                                  req->date,
-                                  req->label);
+                                  const_cast<char*>(req->label.c_str()));
     }
     else {
        federations.destroyObject(req->federation,
                                  req->federate,
                                   req->object,
-                                  req->label);
+                                  const_cast<char*>(req->label.c_str()));
     }
 
     D.Out(pdRegister, "Object # %u of Federation %u has been deleted.",
@@ -907,9 +900,9 @@
                              req->federate,
                              req->object,
                              req->handleArray[0]))
-        strcpy(rep.label, "RTI_TRUE");
+        rep.label = "RTI_TRUE";
     else
-        strcpy(rep.label, "RTI_FALSE");
+        rep.label = "RTI_FALSE";
 
     D.Out(pdDebug, "Owner of Attribute %u of Object %u .",
           req->handleArray[0], req->object);
@@ -934,7 +927,7 @@
                                       req->object,
                                       req->handleArray,
                                       req->handleArraySize,
-                                      req->label);
+                                      req->label.c_str());
 
     D.Out(pdDebug, "Federate %u of Federation %u negotiate "
           "divestiture of object %u.",
@@ -1021,7 +1014,7 @@
                          req->object,
                          req->handleArray,
                          req->handleArraySize,
-                         req->label);
+                         req->label.c_str());
 
     D.Out(pdDebug,
           "Federate %u of Federation %u ownership acquisition of object %u.",
@@ -1337,14 +1330,14 @@
     rep.object = federations.registerObjectWithRegion(req->federation,
                                                      req->federate,
                                                      req->objectClass,
-                                                     req->label,
+                                                     
const_cast<char*>(req->label.c_str()),
                                                      req->region,
                                                      req->handleArraySize,
                                                      req->handleArray);
        
     D.Out(pdRegister,
           "Object \"%s\" of Federate %u has been registered under ID %u.",
-          req->label, req->federate, rep.object);
+          req->label.c_str(), req->federate, rep.object);
 
     rep.type = NetworkMessage::DDM_REGISTER_OBJECT ;
     rep.type = req->type ;
@@ -1379,17 +1372,17 @@
      catch (ObjectNotKnown e)
         {
         answer.exception = e_ObjectNotKnown ;
-        strcpy(answer.exceptionReason,e._reason) ;
+        answer.exceptionReason = e._reason ;
         }
      catch (FederationExecutionDoesNotExist e)
         {
         answer.exception = e_FederationExecutionDoesNotExist ;
-        strcpy(answer.exceptionReason,e._reason) ;
+        answer.exceptionReason = e._reason ;
         }
      catch (RTIinternalError e)
         {
         answer.exception = e_RTIinternalError ;
-        strcpy(answer.exceptionReason,e._reason) ;
+        answer.exceptionReason = e._reason ;
         }
 
     answer.type = NetworkMessage::REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE;
@@ -1404,4 +1397,4 @@
 
 }} // namespace certi/rtig
 
-// $Id: RTIG_processing.cc,v 3.56 2008/03/05 15:33:50 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.56.2.1 2008/03/18 15:55:58 erk Exp $

Index: RTIG/RTIG.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG.cc,v
retrieving revision 3.36
retrieving revision 3.36.2.1
diff -u -b -r3.36 -r3.36.2.1
--- RTIG/RTIG.cc        7 Mar 2008 16:10:06 -0000       3.36
+++ RTIG/RTIG.cc        18 Mar 2008 15:55:58 -0000      3.36.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: RTIG.cc,v 3.36 2008/03/07 16:10:06 rousse Exp $
+// $Id: RTIG.cc,v 3.36.2.1 2008/03/18 15:55:58 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -89,9 +89,6 @@
     if ( msg->type != NetworkMessage::DESTROY_FEDERATION_EXECUTION)
        socketServer.checkMessage(link->returnSocket(), msg);
 
-       //D.Mes(pdMessage, 'N', msg->type);
-       msg->trace("RTIG::chooseProcessingMethod ");
-       
     switch(msg->type) {
       case NetworkMessage::MESSAGE_NULL:
         D.Out(pdDebug, "Message Null.");
@@ -120,20 +117,20 @@
         break ;
 
       case NetworkMessage::CREATE_FEDERATION_EXECUTION:
-        D.Out(pdTrace, "Create federation \"%s\".", msg->federationName);
+        D.Out(pdTrace, "Create federation \"%s\".", 
msg->federationName.c_str());
         auditServer.setLevel(9);
         processCreateFederation(link, msg);
         break ;
 
       case NetworkMessage::DESTROY_FEDERATION_EXECUTION:
-        D.Out(pdTrace, "Destroy federation \"%s\".", msg->federationName);
+        D.Out(pdTrace, "Destroy federation \"%s\".", 
msg->federationName.c_str());
         auditServer.setLevel(9);
         processDestroyFederation(link, msg);
         break ;
 
       case NetworkMessage::JOIN_FEDERATION_EXECUTION:
         D.Out(pdTrace, "federate \"%s\" joins federation \"%s\".",
-              msg->federateName, msg->federationName);
+              msg->federateName.c_str(), msg->federationName.c_str());
         auditServer.setLevel(9);
         processJoinFederation(link, msg);
         break ;
@@ -987,4 +984,4 @@
 
 }} // namespace certi/rtig
 
-// $Id: RTIG.cc,v 3.36 2008/03/07 16:10:06 rousse Exp $
+// $Id: RTIG.cc,v 3.36.2.1 2008/03/18 15:55:58 erk Exp $

Index: RTIG/Federation.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.cc,v
retrieving revision 3.80
retrieving revision 3.80.2.1
diff -u -b -r3.80 -r3.80.2.1
--- RTIG/Federation.cc  5 Mar 2008 15:33:50 -0000       3.80
+++ RTIG/Federation.cc  18 Mar 2008 15:55:58 -0000      3.80.2.1
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: Federation.cc,v 3.80 2008/03/05 15:33:50 rousse Exp $
+// $Id: Federation.cc,v 3.80.2.1 2008/03/18 15:55:58 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -41,6 +41,7 @@
 #include "ObjectClassAttribute.hh"
 #include "PrettyDebug.hh"
 #include "LBTS.hh"
+#include "NM_Classes.hh"
 
 #ifdef _WIN32
 #include <windows.h>
@@ -1108,11 +1109,8 @@
         throw RestoreInProgress("Already in restoring state.");
 
     Socket * socket ;
+    NetworkMessage *msg;
 
-    NetworkMessage * msg = new NetworkMessage ;
-    msg->federate = the_federate ;
-    msg->federation = handle ;
-    msg->setLabel(the_label);
 
     // Informs sending federate of success/failure in restoring.
     // At this point, only verify that file is present.
@@ -1137,9 +1135,15 @@
 // JYR Note : forcing success to true to skip xmlParseFile (not compliant ?)
     success = true ;
 
-    msg->type = success ?
-        NetworkMessage::REQUEST_FEDERATION_RESTORE_SUCCEEDED
-        : NetworkMessage::REQUEST_FEDERATION_RESTORE_FAILED ;
+    if (success) {
+       msg = 
NM_Factory::create(NetworkMessage::REQUEST_FEDERATION_RESTORE_SUCCEEDED);
+    } else {
+       msg = 
NM_Factory::create(NetworkMessage::REQUEST_FEDERATION_RESTORE_FAILED);
+    }
+    
+    msg->federate = the_federate ;
+    msg->federation = handle ;
+    msg->setLabel(the_label);
 
     socket = server->getSocketLink(msg->federate);
 
@@ -1166,10 +1170,9 @@
     restoreInProgress = true ;
 
     // Informs federates a new restore is being done.
-    msg = new NetworkMessage ;
+    msg = NM_Factory::create(NetworkMessage::FEDERATION_RESTORE_BEGUN);
     msg->federate = the_federate ;
     msg->federation = handle ;
-    msg->type = NetworkMessage::FEDERATION_RESTORE_BEGUN ;
 
     G.Out(pdGendoc,"             =====> broadcast message F_R_B");
 
@@ -1177,10 +1180,9 @@
     delete msg ;
 
     // For each federate, send an initiateFederateRestore with correct handle.
-    msg = new NetworkMessage ;
+    msg = NM_Factory::create(NetworkMessage::INITIATE_FEDERATE_RESTORE);
     msg->federation = handle ;
     msg->setLabel(the_label);
-    msg->type = NetworkMessage::INITIATE_FEDERATE_RESTORE ;
 
     for (FederateList::iterator i = federates.begin(); i != federates.end(); 
++i) {
         msg->federate = i->getHandle();
@@ -2302,5 +2304,5 @@
 
 }} // namespace certi/rtig
 
-// $Id: Federation.cc,v 3.80 2008/03/05 15:33:50 rousse Exp $
+// $Id: Federation.cc,v 3.80.2.1 2008/03/18 15:55:58 erk Exp $
 

Index: doc/certi_doxygen.cnf.in
===================================================================
RCS file: /sources/certi/certi/doc/certi_doxygen.cnf.in,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -b -r1.1 -r1.1.2.1
--- doc/certi_doxygen.cnf.in    10 Aug 2007 14:45:48 -0000      1.1
+++ doc/certi_doxygen.cnf.in    18 Mar 2008 15:55:58 -0000      1.1.2.1
@@ -720,7 +720,7 @@
 # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
 # generate Latex output.
 
-GENERATE_LATEX         = NO
+GENERATE_LATEX         = YES
 
 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
@@ -743,7 +743,7 @@
 # LaTeX documents. This may be useful for small projects and may help to 
 # save some trees in general.
 
-COMPACT_LATEX          = NO
+COMPACT_LATEX          = YES
 
 # The PAPER_TYPE tag can be used to set the paper type that is used 
 # by the printer. Possible values are: a4, a4wide, letter, legal and 
@@ -768,13 +768,13 @@
 # contain links (just like the HTML output) instead of page references 
 # This makes the output suitable for online browsing using a pdf viewer.
 
-PDF_HYPERLINKS         = NO
+PDF_HYPERLINKS         = YES
 
 # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
 # plain latex in the generated Makefile. Set this option to YES to get a 
 # higher quality PDF documentation.
 
-USE_PDFLATEX           = NO
+USE_PDFLATEX           = YES
 
 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
 # command to the generated LaTeX files. This will instruct LaTeX to keep 

Index: libCERTI/NM_Classes.hh
===================================================================
RCS file: libCERTI/NM_Classes.hh
diff -N libCERTI/NM_Classes.hh
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ libCERTI/NM_Classes.hh      18 Mar 2008 15:55:55 -0000      1.1.2.1
@@ -0,0 +1,1131 @@
+// ----------------------------------------------------------------------------
+// CERTI - HLA RunTime Infrastructure
+// Copyright (C) 2002-2008  ONERA
+//
+// This program is free software ; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation ; either version 2 of
+// the License, or (at your option) Any later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY ; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program ; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA
+//
+// ----------------------------------------------------------------------------
+
+#ifndef CERTI_NM_CLASSES_HH
+#define CERTI_NM_CLASSES_HH
+#include "NetworkMessage.hh"
+
+namespace certi {
+/**
+ * Network Message factory
+ */
+class NM_Factory {
+public:
+       static NetworkMessage* create(NetworkMessage::Message_T type);
+};
+
+/*<BEGIN>---------- Not_Used ------------<BEGIN>*/
+class CERTI_EXPORT NM_Not_Used : public NetworkMessage {
+  public:
+       NM_Not_Used();
+       virtual ~NM_Not_Used();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Not_Used ------------<END>*/
+
+/*<BEGIN>---------- Close_Connexion ------------<BEGIN>*/
+class CERTI_EXPORT NM_Close_Connexion : public NetworkMessage {
+  public:
+       NM_Close_Connexion();
+       virtual ~NM_Close_Connexion();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Close_Connexion ------------<END>*/
+
+/*<BEGIN>---------- Message_Null ------------<BEGIN>*/
+class CERTI_EXPORT NM_Message_Null : public NetworkMessage {
+  public:
+       NM_Message_Null();
+       virtual ~NM_Message_Null();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Message_Null ------------<END>*/
+
+/*<BEGIN>---------- Create_Federation_Execution ------------<BEGIN>*/
+class CERTI_EXPORT NM_Create_Federation_Execution : public NetworkMessage {
+  public:
+       NM_Create_Federation_Execution();
+       virtual ~NM_Create_Federation_Execution();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Create_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Destroy_Federation_Execution ------------<BEGIN>*/
+class CERTI_EXPORT NM_Destroy_Federation_Execution : public NetworkMessage {
+  public:
+       NM_Destroy_Federation_Execution();
+       virtual ~NM_Destroy_Federation_Execution();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Destroy_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Join_Federation_Execution ------------<BEGIN>*/
+class CERTI_EXPORT NM_Join_Federation_Execution : public NetworkMessage {
+  public:
+       NM_Join_Federation_Execution();
+       virtual ~NM_Join_Federation_Execution();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Join_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Resign_Federation_Execution ------------<BEGIN>*/
+class CERTI_EXPORT NM_Resign_Federation_Execution : public NetworkMessage {
+  public:
+       NM_Resign_Federation_Execution();
+       virtual ~NM_Resign_Federation_Execution();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Resign_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Set_Time_Regulating ------------<BEGIN>*/
+class CERTI_EXPORT NM_Set_Time_Regulating : public NetworkMessage {
+  public:
+       NM_Set_Time_Regulating();
+       virtual ~NM_Set_Time_Regulating();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Set_Time_Regulating ------------<END>*/
+
+/*<BEGIN>---------- Set_Time_Constrained ------------<BEGIN>*/
+class CERTI_EXPORT NM_Set_Time_Constrained : public NetworkMessage {
+  public:
+       NM_Set_Time_Constrained();
+       virtual ~NM_Set_Time_Constrained();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Set_Time_Constrained ------------<END>*/
+
+/*<BEGIN>---------- Register_Federation_Synchronization_Point 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Register_Federation_Synchronization_Point : public 
NetworkMessage {
+  public:
+       NM_Register_Federation_Synchronization_Point();
+       virtual ~NM_Register_Federation_Synchronization_Point();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Register_Federation_Synchronization_Point ------------<END>*/
+
+/*<BEGIN>---------- Synchronization_Point_Registration_Succeeded 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Synchronization_Point_Registration_Succeeded : public 
NetworkMessage {
+  public:
+       NM_Synchronization_Point_Registration_Succeeded();
+       virtual ~NM_Synchronization_Point_Registration_Succeeded();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Synchronization_Point_Registration_Succeeded 
------------<END>*/
+
+/*<BEGIN>---------- Announce_Synchronization_Point ------------<BEGIN>*/
+class CERTI_EXPORT NM_Announce_Synchronization_Point : public NetworkMessage {
+  public:
+       NM_Announce_Synchronization_Point();
+       virtual ~NM_Announce_Synchronization_Point();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Announce_Synchronization_Point ------------<END>*/
+
+/*<BEGIN>---------- Synchronization_Point_Achieved ------------<BEGIN>*/
+class CERTI_EXPORT NM_Synchronization_Point_Achieved : public NetworkMessage {
+  public:
+       NM_Synchronization_Point_Achieved();
+       virtual ~NM_Synchronization_Point_Achieved();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Synchronization_Point_Achieved ------------<END>*/
+
+/*<BEGIN>---------- Federation_Synchronized ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federation_Synchronized : public NetworkMessage {
+  public:
+       NM_Federation_Synchronized();
+       virtual ~NM_Federation_Synchronized();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federation_Synchronized ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Save ------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Federation_Save : public NetworkMessage {
+  public:
+       NM_Request_Federation_Save();
+       virtual ~NM_Request_Federation_Save();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Federation_Save ------------<END>*/
+
+/*<BEGIN>---------- Federate_Save_Begun ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federate_Save_Begun : public NetworkMessage {
+  public:
+       NM_Federate_Save_Begun();
+       virtual ~NM_Federate_Save_Begun();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federate_Save_Begun ------------<END>*/
+
+/*<BEGIN>---------- Federate_Save_Complete ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federate_Save_Complete : public NetworkMessage {
+  public:
+       NM_Federate_Save_Complete();
+       virtual ~NM_Federate_Save_Complete();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federate_Save_Complete ------------<END>*/
+
+/*<BEGIN>---------- Federate_Save_Not_Complete ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federate_Save_Not_Complete : public NetworkMessage {
+  public:
+       NM_Federate_Save_Not_Complete();
+       virtual ~NM_Federate_Save_Not_Complete();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federate_Save_Not_Complete ------------<END>*/
+
+/*<BEGIN>---------- Initiate_Federate_Save ------------<BEGIN>*/
+class CERTI_EXPORT NM_Initiate_Federate_Save : public NetworkMessage {
+  public:
+       NM_Initiate_Federate_Save();
+       virtual ~NM_Initiate_Federate_Save();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Initiate_Federate_Save ------------<END>*/
+
+/*<BEGIN>---------- Federation_Saved ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federation_Saved : public NetworkMessage {
+  public:
+       NM_Federation_Saved();
+       virtual ~NM_Federation_Saved();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federation_Saved ------------<END>*/
+
+/*<BEGIN>---------- Federation_Not_Saved ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federation_Not_Saved : public NetworkMessage {
+  public:
+       NM_Federation_Not_Saved();
+       virtual ~NM_Federation_Not_Saved();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federation_Not_Saved ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Restore ------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Federation_Restore : public NetworkMessage {
+  public:
+       NM_Request_Federation_Restore();
+       virtual ~NM_Request_Federation_Restore();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Federation_Restore ------------<END>*/
+
+/*<BEGIN>---------- Federate_Restore_Complete ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federate_Restore_Complete : public NetworkMessage {
+  public:
+       NM_Federate_Restore_Complete();
+       virtual ~NM_Federate_Restore_Complete();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federate_Restore_Complete ------------<END>*/
+
+/*<BEGIN>---------- Federate_Restore_Not_Complete ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federate_Restore_Not_Complete : public NetworkMessage {
+  public:
+       NM_Federate_Restore_Not_Complete();
+       virtual ~NM_Federate_Restore_Not_Complete();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federate_Restore_Not_Complete ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Restore_Succeeded ------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Federation_Restore_Succeeded : public 
NetworkMessage {
+  public:
+       NM_Request_Federation_Restore_Succeeded();
+       virtual ~NM_Request_Federation_Restore_Succeeded();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Federation_Restore_Succeeded ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Restore_Failed ------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Federation_Restore_Failed : public 
NetworkMessage {
+  public:
+       NM_Request_Federation_Restore_Failed();
+       virtual ~NM_Request_Federation_Restore_Failed();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Federation_Restore_Failed ------------<END>*/
+
+/*<BEGIN>---------- Federation_Restore_Begun ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federation_Restore_Begun : public NetworkMessage {
+  public:
+       NM_Federation_Restore_Begun();
+       virtual ~NM_Federation_Restore_Begun();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federation_Restore_Begun ------------<END>*/
+
+/*<BEGIN>---------- Initiate_Federate_Restore ------------<BEGIN>*/
+class CERTI_EXPORT NM_Initiate_Federate_Restore : public NetworkMessage {
+  public:
+       NM_Initiate_Federate_Restore();
+       virtual ~NM_Initiate_Federate_Restore();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Initiate_Federate_Restore ------------<END>*/
+
+/*<BEGIN>---------- Federation_Restored ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federation_Restored : public NetworkMessage {
+  public:
+       NM_Federation_Restored();
+       virtual ~NM_Federation_Restored();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federation_Restored ------------<END>*/
+
+/*<BEGIN>---------- Federation_Not_Restored ------------<BEGIN>*/
+class CERTI_EXPORT NM_Federation_Not_Restored : public NetworkMessage {
+  public:
+       NM_Federation_Not_Restored();
+       virtual ~NM_Federation_Not_Restored();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Federation_Not_Restored ------------<END>*/
+
+/*<BEGIN>---------- Publish_Object_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Publish_Object_Class : public NetworkMessage {
+  public:
+       NM_Publish_Object_Class();
+       virtual ~NM_Publish_Object_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Publish_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Unpublish_Object_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Unpublish_Object_Class : public NetworkMessage {
+  public:
+       NM_Unpublish_Object_Class();
+       virtual ~NM_Unpublish_Object_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Unpublish_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Publish_Interaction_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Publish_Interaction_Class : public NetworkMessage {
+  public:
+       NM_Publish_Interaction_Class();
+       virtual ~NM_Publish_Interaction_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Publish_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Unpublish_Interaction_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Unpublish_Interaction_Class : public NetworkMessage {
+  public:
+       NM_Unpublish_Interaction_Class();
+       virtual ~NM_Unpublish_Interaction_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Unpublish_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Subscribe_Object_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Subscribe_Object_Class : public NetworkMessage {
+  public:
+       NM_Subscribe_Object_Class();
+       virtual ~NM_Subscribe_Object_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Subscribe_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Unsubscribe_Object_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Unsubscribe_Object_Class : public NetworkMessage {
+  public:
+       NM_Unsubscribe_Object_Class();
+       virtual ~NM_Unsubscribe_Object_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Unsubscribe_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Subscribe_Interaction_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Subscribe_Interaction_Class : public NetworkMessage {
+  public:
+       NM_Subscribe_Interaction_Class();
+       virtual ~NM_Subscribe_Interaction_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Subscribe_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Unsubscribe_Interaction_Class ------------<BEGIN>*/
+class CERTI_EXPORT NM_Unsubscribe_Interaction_Class : public NetworkMessage {
+  public:
+       NM_Unsubscribe_Interaction_Class();
+       virtual ~NM_Unsubscribe_Interaction_Class();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Unsubscribe_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Turn_Interactions_On ------------<BEGIN>*/
+class CERTI_EXPORT NM_Turn_Interactions_On : public NetworkMessage {
+  public:
+       NM_Turn_Interactions_On();
+       virtual ~NM_Turn_Interactions_On();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Turn_Interactions_On ------------<END>*/
+
+/*<BEGIN>---------- Turn_Interactions_Off ------------<BEGIN>*/
+class CERTI_EXPORT NM_Turn_Interactions_Off : public NetworkMessage {
+  public:
+       NM_Turn_Interactions_Off();
+       virtual ~NM_Turn_Interactions_Off();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Turn_Interactions_Off ------------<END>*/
+
+/*<BEGIN>---------- Register_Object ------------<BEGIN>*/
+class CERTI_EXPORT NM_Register_Object : public NetworkMessage {
+  public:
+       NM_Register_Object();
+       virtual ~NM_Register_Object();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Register_Object ------------<END>*/
+
+/*<BEGIN>---------- Discover_Object ------------<BEGIN>*/
+class CERTI_EXPORT NM_Discover_Object : public NetworkMessage {
+  public:
+       NM_Discover_Object();
+       virtual ~NM_Discover_Object();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Discover_Object ------------<END>*/
+
+/*<BEGIN>---------- Update_Attribute_Values ------------<BEGIN>*/
+class CERTI_EXPORT NM_Update_Attribute_Values : public NetworkMessage {
+  public:
+       NM_Update_Attribute_Values();
+       virtual ~NM_Update_Attribute_Values();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Update_Attribute_Values ------------<END>*/
+
+/*<BEGIN>---------- Reflect_Attribute_Values ------------<BEGIN>*/
+class CERTI_EXPORT NM_Reflect_Attribute_Values : public NetworkMessage {
+  public:
+       NM_Reflect_Attribute_Values();
+       virtual ~NM_Reflect_Attribute_Values();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Reflect_Attribute_Values ------------<END>*/
+
+/*<BEGIN>---------- Send_Interaction ------------<BEGIN>*/
+class CERTI_EXPORT NM_Send_Interaction : public NetworkMessage {
+  public:
+       NM_Send_Interaction();
+       virtual ~NM_Send_Interaction();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Send_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Receive_Interaction ------------<BEGIN>*/
+class CERTI_EXPORT NM_Receive_Interaction : public NetworkMessage {
+  public:
+       NM_Receive_Interaction();
+       virtual ~NM_Receive_Interaction();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Receive_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Delete_Object ------------<BEGIN>*/
+class CERTI_EXPORT NM_Delete_Object : public NetworkMessage {
+  public:
+       NM_Delete_Object();
+       virtual ~NM_Delete_Object();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Delete_Object ------------<END>*/
+
+/*<BEGIN>---------- Remove_Object ------------<BEGIN>*/
+class CERTI_EXPORT NM_Remove_Object : public NetworkMessage {
+  public:
+       NM_Remove_Object();
+       virtual ~NM_Remove_Object();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Remove_Object ------------<END>*/
+
+/*<BEGIN>---------- Change_Attribute_Transport_Type ------------<BEGIN>*/
+class CERTI_EXPORT NM_Change_Attribute_Transport_Type : public NetworkMessage {
+  public:
+       NM_Change_Attribute_Transport_Type();
+       virtual ~NM_Change_Attribute_Transport_Type();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Change_Attribute_Transport_Type ------------<END>*/
+
+/*<BEGIN>---------- Change_Attribute_Order_Type ------------<BEGIN>*/
+class CERTI_EXPORT NM_Change_Attribute_Order_Type : public NetworkMessage {
+  public:
+       NM_Change_Attribute_Order_Type();
+       virtual ~NM_Change_Attribute_Order_Type();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Change_Attribute_Order_Type ------------<END>*/
+
+/*<BEGIN>---------- Change_Interaction_Transport_Type ------------<BEGIN>*/
+class CERTI_EXPORT NM_Change_Interaction_Transport_Type : public 
NetworkMessage {
+  public:
+       NM_Change_Interaction_Transport_Type();
+       virtual ~NM_Change_Interaction_Transport_Type();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Change_Interaction_Transport_Type ------------<END>*/
+
+/*<BEGIN>---------- Change_Interaction_Order_Type ------------<BEGIN>*/
+class CERTI_EXPORT NM_Change_Interaction_Order_Type : public NetworkMessage {
+  public:
+       NM_Change_Interaction_Order_Type();
+       virtual ~NM_Change_Interaction_Order_Type();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Change_Interaction_Order_Type ------------<END>*/
+
+/*<BEGIN>---------- Request_Class_Attribute_Value_Update ------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Class_Attribute_Value_Update : public 
NetworkMessage {
+  public:
+       NM_Request_Class_Attribute_Value_Update();
+       virtual ~NM_Request_Class_Attribute_Value_Update();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Class_Attribute_Value_Update ------------<END>*/
+
+/*<BEGIN>---------- Request_Object_Attribute_Value_Update ------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Object_Attribute_Value_Update : public 
NetworkMessage {
+  public:
+       NM_Request_Object_Attribute_Value_Update();
+       virtual ~NM_Request_Object_Attribute_Value_Update();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Object_Attribute_Value_Update ------------<END>*/
+
+/*<BEGIN>---------- Is_Attribute_Owned_By_Federate ------------<BEGIN>*/
+class CERTI_EXPORT NM_Is_Attribute_Owned_By_Federate : public NetworkMessage {
+  public:
+       NM_Is_Attribute_Owned_By_Federate();
+       virtual ~NM_Is_Attribute_Owned_By_Federate();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Is_Attribute_Owned_By_Federate ------------<END>*/
+
+/*<BEGIN>---------- Query_Attribute_Ownership ------------<BEGIN>*/
+class CERTI_EXPORT NM_Query_Attribute_Ownership : public NetworkMessage {
+  public:
+       NM_Query_Attribute_Ownership();
+       virtual ~NM_Query_Attribute_Ownership();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Query_Attribute_Ownership ------------<END>*/
+
+/*<BEGIN>---------- Attribute_Is_Not_Owned ------------<BEGIN>*/
+class CERTI_EXPORT NM_Attribute_Is_Not_Owned : public NetworkMessage {
+  public:
+       NM_Attribute_Is_Not_Owned();
+       virtual ~NM_Attribute_Is_Not_Owned();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Attribute_Is_Not_Owned ------------<END>*/
+
+/*<BEGIN>---------- Inform_Attribute_Ownership ------------<BEGIN>*/
+class CERTI_EXPORT NM_Inform_Attribute_Ownership : public NetworkMessage {
+  public:
+       NM_Inform_Attribute_Ownership();
+       virtual ~NM_Inform_Attribute_Ownership();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Inform_Attribute_Ownership ------------<END>*/
+
+/*<BEGIN>---------- Negotiated_Attribute_Ownership_Divestiture 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Negotiated_Attribute_Ownership_Divestiture : public 
NetworkMessage {
+  public:
+       NM_Negotiated_Attribute_Ownership_Divestiture();
+       virtual ~NM_Negotiated_Attribute_Ownership_Divestiture();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Negotiated_Attribute_Ownership_Divestiture 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Acquisition_Notification 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Attribute_Ownership_Acquisition_Notification : public 
NetworkMessage {
+  public:
+       NM_Attribute_Ownership_Acquisition_Notification();
+       virtual ~NM_Attribute_Ownership_Acquisition_Notification();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Attribute_Ownership_Acquisition_Notification 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Divestiture_Notification 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Attribute_Ownership_Divestiture_Notification : public 
NetworkMessage {
+  public:
+       NM_Attribute_Ownership_Divestiture_Notification();
+       virtual ~NM_Attribute_Ownership_Divestiture_Notification();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Attribute_Ownership_Divestiture_Notification 
------------<END>*/
+
+/*<BEGIN>---------- Request_Attribute_Ownership_Assumption 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Attribute_Ownership_Assumption : public 
NetworkMessage {
+  public:
+       NM_Request_Attribute_Ownership_Assumption();
+       virtual ~NM_Request_Attribute_Ownership_Assumption();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Attribute_Ownership_Assumption ------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Unavailable ------------<BEGIN>*/
+class CERTI_EXPORT NM_Attribute_Ownership_Unavailable : public NetworkMessage {
+  public:
+       NM_Attribute_Ownership_Unavailable();
+       virtual ~NM_Attribute_Ownership_Unavailable();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Attribute_Ownership_Unavailable ------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Acquisition_If_Available 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Attribute_Ownership_Acquisition_If_Available : public 
NetworkMessage {
+  public:
+       NM_Attribute_Ownership_Acquisition_If_Available();
+       virtual ~NM_Attribute_Ownership_Acquisition_If_Available();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Attribute_Ownership_Acquisition_If_Available 
------------<END>*/
+
+/*<BEGIN>---------- Unconditional_Attribute_Ownership_Divestiture 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Unconditional_Attribute_Ownership_Divestiture : public 
NetworkMessage {
+  public:
+       NM_Unconditional_Attribute_Ownership_Divestiture();
+       virtual ~NM_Unconditional_Attribute_Ownership_Divestiture();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Unconditional_Attribute_Ownership_Divestiture 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Acquisition ------------<BEGIN>*/
+class CERTI_EXPORT NM_Attribute_Ownership_Acquisition : public NetworkMessage {
+  public:
+       NM_Attribute_Ownership_Acquisition();
+       virtual ~NM_Attribute_Ownership_Acquisition();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Attribute_Ownership_Acquisition ------------<END>*/
+
+/*<BEGIN>---------- Request_Attribute_Ownership_Release ------------<BEGIN>*/
+class CERTI_EXPORT NM_Request_Attribute_Ownership_Release : public 
NetworkMessage {
+  public:
+       NM_Request_Attribute_Ownership_Release();
+       virtual ~NM_Request_Attribute_Ownership_Release();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Request_Attribute_Ownership_Release ------------<END>*/
+
+/*<BEGIN>---------- Cancel_Negotiated_Attribute_Ownership_Divestiture 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Cancel_Negotiated_Attribute_Ownership_Divestiture : 
public NetworkMessage {
+  public:
+       NM_Cancel_Negotiated_Attribute_Ownership_Divestiture();
+       virtual ~NM_Cancel_Negotiated_Attribute_Ownership_Divestiture();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Cancel_Negotiated_Attribute_Ownership_Divestiture 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Release_Response ------------<BEGIN>*/
+class CERTI_EXPORT NM_Attribute_Ownership_Release_Response : public 
NetworkMessage {
+  public:
+       NM_Attribute_Ownership_Release_Response();
+       virtual ~NM_Attribute_Ownership_Release_Response();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Attribute_Ownership_Release_Response ------------<END>*/
+
+/*<BEGIN>---------- Cancel_Attribute_Ownership_Acquisition 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Cancel_Attribute_Ownership_Acquisition : public 
NetworkMessage {
+  public:
+       NM_Cancel_Attribute_Ownership_Acquisition();
+       virtual ~NM_Cancel_Attribute_Ownership_Acquisition();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Cancel_Attribute_Ownership_Acquisition ------------<END>*/
+
+/*<BEGIN>---------- Confirm_Attribute_Ownership_Acquisition_Cancellation 
------------<BEGIN>*/
+class CERTI_EXPORT NM_Confirm_Attribute_Ownership_Acquisition_Cancellation : 
public NetworkMessage {
+  public:
+       NM_Confirm_Attribute_Ownership_Acquisition_Cancellation();
+       virtual ~NM_Confirm_Attribute_Ownership_Acquisition_Cancellation();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Confirm_Attribute_Ownership_Acquisition_Cancellation 
------------<END>*/
+
+/*<BEGIN>---------- Ddm_Create_Region ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Create_Region : public NetworkMessage {
+  public:
+       NM_Ddm_Create_Region();
+       virtual ~NM_Ddm_Create_Region();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Create_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Modify_Region ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Modify_Region : public NetworkMessage {
+  public:
+       NM_Ddm_Modify_Region();
+       virtual ~NM_Ddm_Modify_Region();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Modify_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Delete_Region ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Delete_Region : public NetworkMessage {
+  public:
+       NM_Ddm_Delete_Region();
+       virtual ~NM_Ddm_Delete_Region();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Delete_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Associate_Region ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Associate_Region : public NetworkMessage {
+  public:
+       NM_Ddm_Associate_Region();
+       virtual ~NM_Ddm_Associate_Region();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Associate_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Register_Object ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Register_Object : public NetworkMessage {
+  public:
+       NM_Ddm_Register_Object();
+       virtual ~NM_Ddm_Register_Object();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Register_Object ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Unassociate_Region ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Unassociate_Region : public NetworkMessage {
+  public:
+       NM_Ddm_Unassociate_Region();
+       virtual ~NM_Ddm_Unassociate_Region();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Unassociate_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Subscribe_Attributes ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Subscribe_Attributes : public NetworkMessage {
+  public:
+       NM_Ddm_Subscribe_Attributes();
+       virtual ~NM_Ddm_Subscribe_Attributes();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Subscribe_Attributes ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Unsubscribe_Attributes ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Unsubscribe_Attributes : public NetworkMessage {
+  public:
+       NM_Ddm_Unsubscribe_Attributes();
+       virtual ~NM_Ddm_Unsubscribe_Attributes();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Unsubscribe_Attributes ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Subscribe_Interaction ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Subscribe_Interaction : public NetworkMessage {
+  public:
+       NM_Ddm_Subscribe_Interaction();
+       virtual ~NM_Ddm_Subscribe_Interaction();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Subscribe_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Unsubscribe_Interaction ------------<BEGIN>*/
+class CERTI_EXPORT NM_Ddm_Unsubscribe_Interaction : public NetworkMessage {
+  public:
+       NM_Ddm_Unsubscribe_Interaction();
+       virtual ~NM_Ddm_Unsubscribe_Interaction();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Ddm_Unsubscribe_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Provide_Attribute_Value_Update ------------<BEGIN>*/
+class CERTI_EXPORT NM_Provide_Attribute_Value_Update : public NetworkMessage {
+  public:
+       NM_Provide_Attribute_Value_Update();
+       virtual ~NM_Provide_Attribute_Value_Update();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Provide_Attribute_Value_Update ------------<END>*/
+
+/*<BEGIN>---------- Get_Fed_File ------------<BEGIN>*/
+class CERTI_EXPORT NM_Get_Fed_File : public NetworkMessage {
+  public:
+       NM_Get_Fed_File();
+       virtual ~NM_Get_Fed_File();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Get_Fed_File ------------<END>*/
+
+/*<BEGIN>---------- Last ------------<BEGIN>*/
+class CERTI_EXPORT NM_Last : public NetworkMessage {
+  public:
+       NM_Last();
+       virtual ~NM_Last();
+       virtual void serialize();
+       virtual void deserialize();
+  protected:
+  private:
+};
+
+/*<END>---------- Last ------------<END>*/
+
+
+
+}
+
+#endif

Index: libCERTI/NM_Classes.cc
===================================================================
RCS file: libCERTI/NM_Classes.cc
diff -N libCERTI/NM_Classes.cc
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ libCERTI/NM_Classes.cc      18 Mar 2008 15:55:56 -0000      1.1.2.1
@@ -0,0 +1,1384 @@
+// ----------------------------------------------------------------------------
+// CERTI - HLA RunTime Infrastructure
+// Copyright (C) 2002-2005  ONERA
+//
+// This program is free software ; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation ; either version 2 of
+// the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY ; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program ; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// ----------------------------------------------------------------------------
+
+#include "NM_Classes.hh"
+
+namespace certi {
+
+NetworkMessage* NM_Factory::create(NetworkMessage::Message_T type) {
+       NetworkMessage* msg;
+       
+       switch (type) {
+       case NetworkMessage::NOT_USED:
+          msg = new NM_Not_Used(); 
+          break;
+       case NetworkMessage::CLOSE_CONNEXION:
+          msg = new NM_Close_Connexion(); 
+          break;
+       case NetworkMessage::MESSAGE_NULL:
+          msg = new NM_Message_Null(); 
+          break;
+       case NetworkMessage::CREATE_FEDERATION_EXECUTION:
+          msg = new NM_Create_Federation_Execution(); 
+          break;
+       case NetworkMessage::DESTROY_FEDERATION_EXECUTION:
+          msg = new NM_Destroy_Federation_Execution(); 
+          break;
+       case NetworkMessage::JOIN_FEDERATION_EXECUTION:
+          msg = new NM_Join_Federation_Execution(); 
+          break;
+       case NetworkMessage::RESIGN_FEDERATION_EXECUTION:
+          msg = new NM_Resign_Federation_Execution(); 
+          break;
+       case NetworkMessage::SET_TIME_REGULATING:
+          msg = new NM_Set_Time_Regulating(); 
+          break;
+       case NetworkMessage::SET_TIME_CONSTRAINED:
+          msg = new NM_Set_Time_Constrained(); 
+          break;
+       case NetworkMessage::REGISTER_FEDERATION_SYNCHRONIZATION_POINT:
+          msg = new NM_Register_Federation_Synchronization_Point(); 
+          break;
+       case NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED:
+          msg = new NM_Synchronization_Point_Registration_Succeeded(); 
+          break;
+       case NetworkMessage::ANNOUNCE_SYNCHRONIZATION_POINT:
+          msg = new NM_Announce_Synchronization_Point(); 
+          break;
+       case NetworkMessage::SYNCHRONIZATION_POINT_ACHIEVED:
+          msg = new NM_Synchronization_Point_Achieved(); 
+          break;
+       case NetworkMessage::FEDERATION_SYNCHRONIZED:
+          msg = new NM_Federation_Synchronized(); 
+          break;
+       case NetworkMessage::REQUEST_FEDERATION_SAVE:
+          msg = new NM_Request_Federation_Save(); 
+          break;
+       case NetworkMessage::FEDERATE_SAVE_BEGUN:
+          msg = new NM_Federate_Save_Begun(); 
+          break;
+       case NetworkMessage::FEDERATE_SAVE_COMPLETE:
+          msg = new NM_Federate_Save_Complete(); 
+          break;
+       case NetworkMessage::FEDERATE_SAVE_NOT_COMPLETE:
+          msg = new NM_Federate_Save_Not_Complete(); 
+          break;
+       case NetworkMessage::INITIATE_FEDERATE_SAVE:
+          msg = new NM_Initiate_Federate_Save(); 
+          break;
+       case NetworkMessage::FEDERATION_SAVED:
+          msg = new NM_Federation_Saved(); 
+          break;
+       case NetworkMessage::FEDERATION_NOT_SAVED:
+          msg = new NM_Federation_Not_Saved(); 
+          break;
+       case NetworkMessage::REQUEST_FEDERATION_RESTORE:
+          msg = new NM_Request_Federation_Restore(); 
+          break;
+       case NetworkMessage::FEDERATE_RESTORE_COMPLETE:
+          msg = new NM_Federate_Restore_Complete(); 
+          break;
+       case NetworkMessage::FEDERATE_RESTORE_NOT_COMPLETE:
+          msg = new NM_Federate_Restore_Not_Complete(); 
+          break;
+       case NetworkMessage::REQUEST_FEDERATION_RESTORE_SUCCEEDED:
+          msg = new NM_Request_Federation_Restore_Succeeded(); 
+          break;
+       case NetworkMessage::REQUEST_FEDERATION_RESTORE_FAILED:
+          msg = new NM_Request_Federation_Restore_Failed(); 
+          break;
+       case NetworkMessage::FEDERATION_RESTORE_BEGUN:
+          msg = new NM_Federation_Restore_Begun(); 
+          break;
+       case NetworkMessage::INITIATE_FEDERATE_RESTORE:
+          msg = new NM_Initiate_Federate_Restore(); 
+          break;
+       case NetworkMessage::FEDERATION_RESTORED:
+          msg = new NM_Federation_Restored(); 
+          break;
+       case NetworkMessage::FEDERATION_NOT_RESTORED:
+          msg = new NM_Federation_Not_Restored(); 
+          break;
+       case NetworkMessage::PUBLISH_OBJECT_CLASS:
+          msg = new NM_Publish_Object_Class(); 
+          break;
+       case NetworkMessage::UNPUBLISH_OBJECT_CLASS:
+          msg = new NM_Unpublish_Object_Class(); 
+          break;
+       case NetworkMessage::PUBLISH_INTERACTION_CLASS:
+          msg = new NM_Publish_Interaction_Class(); 
+          break;
+       case NetworkMessage::UNPUBLISH_INTERACTION_CLASS:
+          msg = new NM_Unpublish_Interaction_Class(); 
+          break;
+       case NetworkMessage::SUBSCRIBE_OBJECT_CLASS:
+          msg = new NM_Subscribe_Object_Class(); 
+          break;
+       case NetworkMessage::UNSUBSCRIBE_OBJECT_CLASS:
+          msg = new NM_Unsubscribe_Object_Class(); 
+          break;
+       case NetworkMessage::SUBSCRIBE_INTERACTION_CLASS:
+          msg = new NM_Subscribe_Interaction_Class(); 
+          break;
+       case NetworkMessage::UNSUBSCRIBE_INTERACTION_CLASS:
+          msg = new NM_Unsubscribe_Interaction_Class(); 
+          break;
+       case NetworkMessage::TURN_INTERACTIONS_ON:
+          msg = new NM_Turn_Interactions_On(); 
+          break;
+       case NetworkMessage::TURN_INTERACTIONS_OFF:
+          msg = new NM_Turn_Interactions_Off(); 
+          break;
+       case NetworkMessage::REGISTER_OBJECT:
+          msg = new NM_Register_Object(); 
+          break;
+       case NetworkMessage::DISCOVER_OBJECT:
+          msg = new NM_Discover_Object(); 
+          break;
+       case NetworkMessage::UPDATE_ATTRIBUTE_VALUES:
+          msg = new NM_Update_Attribute_Values(); 
+          break;
+       case NetworkMessage::REFLECT_ATTRIBUTE_VALUES:
+          msg = new NM_Reflect_Attribute_Values(); 
+          break;
+       case NetworkMessage::SEND_INTERACTION:
+          msg = new NM_Send_Interaction(); 
+          break;
+       case NetworkMessage::RECEIVE_INTERACTION:
+          msg = new NM_Receive_Interaction(); 
+          break;
+       case NetworkMessage::DELETE_OBJECT:
+          msg = new NM_Delete_Object(); 
+          break;
+       case NetworkMessage::REMOVE_OBJECT:
+          msg = new NM_Remove_Object(); 
+          break;
+       case NetworkMessage::CHANGE_ATTRIBUTE_TRANSPORT_TYPE:
+          msg = new NM_Change_Attribute_Transport_Type(); 
+          break;
+       case NetworkMessage::CHANGE_ATTRIBUTE_ORDER_TYPE:
+          msg = new NM_Change_Attribute_Order_Type(); 
+          break;
+       case NetworkMessage::CHANGE_INTERACTION_TRANSPORT_TYPE:
+          msg = new NM_Change_Interaction_Transport_Type(); 
+          break;
+       case NetworkMessage::CHANGE_INTERACTION_ORDER_TYPE:
+          msg = new NM_Change_Interaction_Order_Type(); 
+          break;
+       case NetworkMessage::REQUEST_CLASS_ATTRIBUTE_VALUE_UPDATE:
+          msg = new NM_Request_Class_Attribute_Value_Update(); 
+          break;
+       case NetworkMessage::REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE:
+          msg = new NM_Request_Object_Attribute_Value_Update(); 
+          break;
+       case NetworkMessage::IS_ATTRIBUTE_OWNED_BY_FEDERATE:
+          msg = new NM_Is_Attribute_Owned_By_Federate(); 
+          break;
+       case NetworkMessage::QUERY_ATTRIBUTE_OWNERSHIP:
+          msg = new NM_Query_Attribute_Ownership(); 
+          break;
+       case NetworkMessage::ATTRIBUTE_IS_NOT_OWNED:
+          msg = new NM_Attribute_Is_Not_Owned(); 
+          break;
+       case NetworkMessage::INFORM_ATTRIBUTE_OWNERSHIP:
+          msg = new NM_Inform_Attribute_Ownership(); 
+          break;
+       case NetworkMessage::NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE:
+          msg = new NM_Negotiated_Attribute_Ownership_Divestiture(); 
+          break;
+       case NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_NOTIFICATION:
+          msg = new NM_Attribute_Ownership_Acquisition_Notification(); 
+          break;
+       case NetworkMessage::ATTRIBUTE_OWNERSHIP_DIVESTITURE_NOTIFICATION:
+          msg = new NM_Attribute_Ownership_Divestiture_Notification(); 
+          break;
+       case NetworkMessage::REQUEST_ATTRIBUTE_OWNERSHIP_ASSUMPTION:
+          msg = new NM_Request_Attribute_Ownership_Assumption(); 
+          break;
+       case NetworkMessage::ATTRIBUTE_OWNERSHIP_UNAVAILABLE:
+          msg = new NM_Attribute_Ownership_Unavailable(); 
+          break;
+       case NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE:
+          msg = new NM_Attribute_Ownership_Acquisition_If_Available(); 
+          break;
+       case NetworkMessage::UNCONDITIONAL_ATTRIBUTE_OWNERSHIP_DIVESTITURE:
+          msg = new NM_Unconditional_Attribute_Ownership_Divestiture(); 
+          break;
+       case NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION:
+          msg = new NM_Attribute_Ownership_Acquisition(); 
+          break;
+       case NetworkMessage::REQUEST_ATTRIBUTE_OWNERSHIP_RELEASE:
+          msg = new NM_Request_Attribute_Ownership_Release(); 
+          break;
+       case NetworkMessage::CANCEL_NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE:
+          msg = new NM_Cancel_Negotiated_Attribute_Ownership_Divestiture(); 
+          break;
+       case NetworkMessage::ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE:
+          msg = new NM_Attribute_Ownership_Release_Response(); 
+          break;
+       case NetworkMessage::CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION:
+          msg = new NM_Cancel_Attribute_Ownership_Acquisition(); 
+          break;
+       case 
NetworkMessage::CONFIRM_ATTRIBUTE_OWNERSHIP_ACQUISITION_CANCELLATION:
+          msg = new NM_Confirm_Attribute_Ownership_Acquisition_Cancellation(); 
+          break;
+       case NetworkMessage::DDM_CREATE_REGION:
+          msg = new NM_Ddm_Create_Region(); 
+          break;
+       case NetworkMessage::DDM_MODIFY_REGION:
+          msg = new NM_Ddm_Modify_Region(); 
+          break;
+       case NetworkMessage::DDM_DELETE_REGION:
+          msg = new NM_Ddm_Delete_Region(); 
+          break;
+       case NetworkMessage::DDM_ASSOCIATE_REGION:
+          msg = new NM_Ddm_Associate_Region(); 
+          break;
+       case NetworkMessage::DDM_REGISTER_OBJECT:
+          msg = new NM_Ddm_Register_Object(); 
+          break;
+       case NetworkMessage::DDM_UNASSOCIATE_REGION:
+          msg = new NM_Ddm_Unassociate_Region(); 
+          break;
+       case NetworkMessage::DDM_SUBSCRIBE_ATTRIBUTES:
+          msg = new NM_Ddm_Subscribe_Attributes(); 
+          break;
+       case NetworkMessage::DDM_UNSUBSCRIBE_ATTRIBUTES:
+          msg = new NM_Ddm_Unsubscribe_Attributes(); 
+          break;
+       case NetworkMessage::DDM_SUBSCRIBE_INTERACTION:
+          msg = new NM_Ddm_Subscribe_Interaction(); 
+          break;
+       case NetworkMessage::DDM_UNSUBSCRIBE_INTERACTION:
+          msg = new NM_Ddm_Unsubscribe_Interaction(); 
+          break;
+       case NetworkMessage::PROVIDE_ATTRIBUTE_VALUE_UPDATE:
+          msg = new NM_Provide_Attribute_Value_Update(); 
+          break;
+       case NetworkMessage::GET_FED_FILE:
+          msg = new NM_Get_Fed_File(); 
+          break;
+       case NetworkMessage::LAST:
+          msg = new NM_Last(); 
+          break;
+
+       default:
+               throw RTIinternalError("Unknown/Unimplemented message Type");
+       }
+} /* end of NM_Factory::create */
+
+/*<BEGIN>---------- Not_Used ------------<BEGIN>*/
+NM_Not_Used::NM_Not_Used() {
+    this->type = NetworkMessage::NOT_USED;
+    this->name = "NOT_USED";
+}
+NM_Not_Used::~NM_Not_Used() {
+}
+void NM_Not_Used::serialize() {
+}
+void NM_Not_Used::deserialize() {
+}
+/*<END>---------- Not_Used ------------<END>*/
+
+/*<BEGIN>---------- Close_Connexion ------------<BEGIN>*/
+NM_Close_Connexion::NM_Close_Connexion() {
+    this->type = NetworkMessage::CLOSE_CONNEXION;
+    this->name = "CLOSE_CONNEXION";
+}
+NM_Close_Connexion::~NM_Close_Connexion() {
+}
+void NM_Close_Connexion::serialize() {
+}
+void NM_Close_Connexion::deserialize() {
+}
+/*<END>---------- Close_Connexion ------------<END>*/
+
+/*<BEGIN>---------- Message_Null ------------<BEGIN>*/
+NM_Message_Null::NM_Message_Null() {
+    this->type = NetworkMessage::MESSAGE_NULL;
+    this->name = "MESSAGE_NULL";
+}
+NM_Message_Null::~NM_Message_Null() {
+}
+void NM_Message_Null::serialize() {
+}
+void NM_Message_Null::deserialize() {
+}
+/*<END>---------- Message_Null ------------<END>*/
+
+/*<BEGIN>---------- Create_Federation_Execution ------------<BEGIN>*/
+NM_Create_Federation_Execution::NM_Create_Federation_Execution() {
+    this->type = NetworkMessage::CREATE_FEDERATION_EXECUTION;
+    this->name = "CREATE_FEDERATION_EXECUTION";
+}
+NM_Create_Federation_Execution::~NM_Create_Federation_Execution() {
+}
+void NM_Create_Federation_Execution::serialize() {
+}
+void NM_Create_Federation_Execution::deserialize() {
+}
+/*<END>---------- Create_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Destroy_Federation_Execution ------------<BEGIN>*/
+NM_Destroy_Federation_Execution::NM_Destroy_Federation_Execution() {
+    this->type = NetworkMessage::DESTROY_FEDERATION_EXECUTION;
+    this->name = "DESTROY_FEDERATION_EXECUTION";
+}
+NM_Destroy_Federation_Execution::~NM_Destroy_Federation_Execution() {
+}
+void NM_Destroy_Federation_Execution::serialize() {
+}
+void NM_Destroy_Federation_Execution::deserialize() {
+}
+/*<END>---------- Destroy_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Join_Federation_Execution ------------<BEGIN>*/
+NM_Join_Federation_Execution::NM_Join_Federation_Execution() {
+    this->type = NetworkMessage::JOIN_FEDERATION_EXECUTION;
+    this->name = "JOIN_FEDERATION_EXECUTION";
+}
+NM_Join_Federation_Execution::~NM_Join_Federation_Execution() {
+}
+void NM_Join_Federation_Execution::serialize() {
+}
+void NM_Join_Federation_Execution::deserialize() {
+}
+/*<END>---------- Join_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Resign_Federation_Execution ------------<BEGIN>*/
+NM_Resign_Federation_Execution::NM_Resign_Federation_Execution() {
+    this->type = NetworkMessage::RESIGN_FEDERATION_EXECUTION;
+    this->name = "RESIGN_FEDERATION_EXECUTION";
+}
+NM_Resign_Federation_Execution::~NM_Resign_Federation_Execution() {
+}
+void NM_Resign_Federation_Execution::serialize() {
+}
+void NM_Resign_Federation_Execution::deserialize() {
+}
+/*<END>---------- Resign_Federation_Execution ------------<END>*/
+
+/*<BEGIN>---------- Set_Time_Regulating ------------<BEGIN>*/
+NM_Set_Time_Regulating::NM_Set_Time_Regulating() {
+    this->type = NetworkMessage::SET_TIME_REGULATING;
+    this->name = "SET_TIME_REGULATING";
+}
+NM_Set_Time_Regulating::~NM_Set_Time_Regulating() {
+}
+void NM_Set_Time_Regulating::serialize() {
+}
+void NM_Set_Time_Regulating::deserialize() {
+}
+/*<END>---------- Set_Time_Regulating ------------<END>*/
+
+/*<BEGIN>---------- Set_Time_Constrained ------------<BEGIN>*/
+NM_Set_Time_Constrained::NM_Set_Time_Constrained() {
+    this->type = NetworkMessage::SET_TIME_CONSTRAINED;
+    this->name = "SET_TIME_CONSTRAINED";
+}
+NM_Set_Time_Constrained::~NM_Set_Time_Constrained() {
+}
+void NM_Set_Time_Constrained::serialize() {
+}
+void NM_Set_Time_Constrained::deserialize() {
+}
+/*<END>---------- Set_Time_Constrained ------------<END>*/
+
+/*<BEGIN>---------- Register_Federation_Synchronization_Point 
------------<BEGIN>*/
+NM_Register_Federation_Synchronization_Point::NM_Register_Federation_Synchronization_Point()
 {
+    this->type = NetworkMessage::REGISTER_FEDERATION_SYNCHRONIZATION_POINT;
+    this->name = "REGISTER_FEDERATION_SYNCHRONIZATION_POINT";
+}
+NM_Register_Federation_Synchronization_Point::~NM_Register_Federation_Synchronization_Point()
 {
+}
+void NM_Register_Federation_Synchronization_Point::serialize() {
+}
+void NM_Register_Federation_Synchronization_Point::deserialize() {
+}
+/*<END>---------- Register_Federation_Synchronization_Point ------------<END>*/
+
+/*<BEGIN>---------- Synchronization_Point_Registration_Succeeded 
------------<BEGIN>*/
+NM_Synchronization_Point_Registration_Succeeded::NM_Synchronization_Point_Registration_Succeeded()
 {
+    this->type = NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED;
+    this->name = "SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED";
+}
+NM_Synchronization_Point_Registration_Succeeded::~NM_Synchronization_Point_Registration_Succeeded()
 {
+}
+void NM_Synchronization_Point_Registration_Succeeded::serialize() {
+}
+void NM_Synchronization_Point_Registration_Succeeded::deserialize() {
+}
+/*<END>---------- Synchronization_Point_Registration_Succeeded 
------------<END>*/
+
+/*<BEGIN>---------- Announce_Synchronization_Point ------------<BEGIN>*/
+NM_Announce_Synchronization_Point::NM_Announce_Synchronization_Point() {
+    this->type = NetworkMessage::ANNOUNCE_SYNCHRONIZATION_POINT;
+    this->name = "ANNOUNCE_SYNCHRONIZATION_POINT";
+}
+NM_Announce_Synchronization_Point::~NM_Announce_Synchronization_Point() {
+}
+void NM_Announce_Synchronization_Point::serialize() {
+}
+void NM_Announce_Synchronization_Point::deserialize() {
+}
+/*<END>---------- Announce_Synchronization_Point ------------<END>*/
+
+/*<BEGIN>---------- Synchronization_Point_Achieved ------------<BEGIN>*/
+NM_Synchronization_Point_Achieved::NM_Synchronization_Point_Achieved() {
+    this->type = NetworkMessage::SYNCHRONIZATION_POINT_ACHIEVED;
+    this->name = "SYNCHRONIZATION_POINT_ACHIEVED";
+}
+NM_Synchronization_Point_Achieved::~NM_Synchronization_Point_Achieved() {
+}
+void NM_Synchronization_Point_Achieved::serialize() {
+}
+void NM_Synchronization_Point_Achieved::deserialize() {
+}
+/*<END>---------- Synchronization_Point_Achieved ------------<END>*/
+
+/*<BEGIN>---------- Federation_Synchronized ------------<BEGIN>*/
+NM_Federation_Synchronized::NM_Federation_Synchronized() {
+    this->type = NetworkMessage::FEDERATION_SYNCHRONIZED;
+    this->name = "FEDERATION_SYNCHRONIZED";
+}
+NM_Federation_Synchronized::~NM_Federation_Synchronized() {
+}
+void NM_Federation_Synchronized::serialize() {
+}
+void NM_Federation_Synchronized::deserialize() {
+}
+/*<END>---------- Federation_Synchronized ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Save ------------<BEGIN>*/
+NM_Request_Federation_Save::NM_Request_Federation_Save() {
+    this->type = NetworkMessage::REQUEST_FEDERATION_SAVE;
+    this->name = "REQUEST_FEDERATION_SAVE";
+}
+NM_Request_Federation_Save::~NM_Request_Federation_Save() {
+}
+void NM_Request_Federation_Save::serialize() {
+}
+void NM_Request_Federation_Save::deserialize() {
+}
+/*<END>---------- Request_Federation_Save ------------<END>*/
+
+/*<BEGIN>---------- Federate_Save_Begun ------------<BEGIN>*/
+NM_Federate_Save_Begun::NM_Federate_Save_Begun() {
+    this->type = NetworkMessage::FEDERATE_SAVE_BEGUN;
+    this->name = "FEDERATE_SAVE_BEGUN";
+}
+NM_Federate_Save_Begun::~NM_Federate_Save_Begun() {
+}
+void NM_Federate_Save_Begun::serialize() {
+}
+void NM_Federate_Save_Begun::deserialize() {
+}
+/*<END>---------- Federate_Save_Begun ------------<END>*/
+
+/*<BEGIN>---------- Federate_Save_Complete ------------<BEGIN>*/
+NM_Federate_Save_Complete::NM_Federate_Save_Complete() {
+    this->type = NetworkMessage::FEDERATE_SAVE_COMPLETE;
+    this->name = "FEDERATE_SAVE_COMPLETE";
+}
+NM_Federate_Save_Complete::~NM_Federate_Save_Complete() {
+}
+void NM_Federate_Save_Complete::serialize() {
+}
+void NM_Federate_Save_Complete::deserialize() {
+}
+/*<END>---------- Federate_Save_Complete ------------<END>*/
+
+/*<BEGIN>---------- Federate_Save_Not_Complete ------------<BEGIN>*/
+NM_Federate_Save_Not_Complete::NM_Federate_Save_Not_Complete() {
+    this->type = NetworkMessage::FEDERATE_SAVE_NOT_COMPLETE;
+    this->name = "FEDERATE_SAVE_NOT_COMPLETE";
+}
+NM_Federate_Save_Not_Complete::~NM_Federate_Save_Not_Complete() {
+}
+void NM_Federate_Save_Not_Complete::serialize() {
+}
+void NM_Federate_Save_Not_Complete::deserialize() {
+}
+/*<END>---------- Federate_Save_Not_Complete ------------<END>*/
+
+/*<BEGIN>---------- Initiate_Federate_Save ------------<BEGIN>*/
+NM_Initiate_Federate_Save::NM_Initiate_Federate_Save() {
+    this->type = NetworkMessage::INITIATE_FEDERATE_SAVE;
+    this->name = "INITIATE_FEDERATE_SAVE";
+}
+NM_Initiate_Federate_Save::~NM_Initiate_Federate_Save() {
+}
+void NM_Initiate_Federate_Save::serialize() {
+}
+void NM_Initiate_Federate_Save::deserialize() {
+}
+/*<END>---------- Initiate_Federate_Save ------------<END>*/
+
+/*<BEGIN>---------- Federation_Saved ------------<BEGIN>*/
+NM_Federation_Saved::NM_Federation_Saved() {
+    this->type = NetworkMessage::FEDERATION_SAVED;
+    this->name = "FEDERATION_SAVED";
+}
+NM_Federation_Saved::~NM_Federation_Saved() {
+}
+void NM_Federation_Saved::serialize() {
+}
+void NM_Federation_Saved::deserialize() {
+}
+/*<END>---------- Federation_Saved ------------<END>*/
+
+/*<BEGIN>---------- Federation_Not_Saved ------------<BEGIN>*/
+NM_Federation_Not_Saved::NM_Federation_Not_Saved() {
+    this->type = NetworkMessage::FEDERATION_NOT_SAVED;
+    this->name = "FEDERATION_NOT_SAVED";
+}
+NM_Federation_Not_Saved::~NM_Federation_Not_Saved() {
+}
+void NM_Federation_Not_Saved::serialize() {
+}
+void NM_Federation_Not_Saved::deserialize() {
+}
+/*<END>---------- Federation_Not_Saved ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Restore ------------<BEGIN>*/
+NM_Request_Federation_Restore::NM_Request_Federation_Restore() {
+    this->type = NetworkMessage::REQUEST_FEDERATION_RESTORE;
+    this->name = "REQUEST_FEDERATION_RESTORE";
+}
+NM_Request_Federation_Restore::~NM_Request_Federation_Restore() {
+}
+void NM_Request_Federation_Restore::serialize() {
+}
+void NM_Request_Federation_Restore::deserialize() {
+}
+/*<END>---------- Request_Federation_Restore ------------<END>*/
+
+/*<BEGIN>---------- Federate_Restore_Complete ------------<BEGIN>*/
+NM_Federate_Restore_Complete::NM_Federate_Restore_Complete() {
+    this->type = NetworkMessage::FEDERATE_RESTORE_COMPLETE;
+    this->name = "FEDERATE_RESTORE_COMPLETE";
+}
+NM_Federate_Restore_Complete::~NM_Federate_Restore_Complete() {
+}
+void NM_Federate_Restore_Complete::serialize() {
+}
+void NM_Federate_Restore_Complete::deserialize() {
+}
+/*<END>---------- Federate_Restore_Complete ------------<END>*/
+
+/*<BEGIN>---------- Federate_Restore_Not_Complete ------------<BEGIN>*/
+NM_Federate_Restore_Not_Complete::NM_Federate_Restore_Not_Complete() {
+    this->type = NetworkMessage::FEDERATE_RESTORE_NOT_COMPLETE;
+    this->name = "FEDERATE_RESTORE_NOT_COMPLETE";
+}
+NM_Federate_Restore_Not_Complete::~NM_Federate_Restore_Not_Complete() {
+}
+void NM_Federate_Restore_Not_Complete::serialize() {
+}
+void NM_Federate_Restore_Not_Complete::deserialize() {
+}
+/*<END>---------- Federate_Restore_Not_Complete ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Restore_Succeeded ------------<BEGIN>*/
+NM_Request_Federation_Restore_Succeeded::NM_Request_Federation_Restore_Succeeded()
 {
+    this->type = NetworkMessage::REQUEST_FEDERATION_RESTORE_SUCCEEDED;
+    this->name = "REQUEST_FEDERATION_RESTORE_SUCCEEDED";
+}
+NM_Request_Federation_Restore_Succeeded::~NM_Request_Federation_Restore_Succeeded()
 {
+}
+void NM_Request_Federation_Restore_Succeeded::serialize() {
+}
+void NM_Request_Federation_Restore_Succeeded::deserialize() {
+}
+/*<END>---------- Request_Federation_Restore_Succeeded ------------<END>*/
+
+/*<BEGIN>---------- Request_Federation_Restore_Failed ------------<BEGIN>*/
+NM_Request_Federation_Restore_Failed::NM_Request_Federation_Restore_Failed() {
+    this->type = NetworkMessage::REQUEST_FEDERATION_RESTORE_FAILED;
+    this->name = "REQUEST_FEDERATION_RESTORE_FAILED";
+}
+NM_Request_Federation_Restore_Failed::~NM_Request_Federation_Restore_Failed() {
+}
+void NM_Request_Federation_Restore_Failed::serialize() {
+}
+void NM_Request_Federation_Restore_Failed::deserialize() {
+}
+/*<END>---------- Request_Federation_Restore_Failed ------------<END>*/
+
+/*<BEGIN>---------- Federation_Restore_Begun ------------<BEGIN>*/
+NM_Federation_Restore_Begun::NM_Federation_Restore_Begun() {
+    this->type = NetworkMessage::FEDERATION_RESTORE_BEGUN;
+    this->name = "FEDERATION_RESTORE_BEGUN";
+}
+NM_Federation_Restore_Begun::~NM_Federation_Restore_Begun() {
+}
+void NM_Federation_Restore_Begun::serialize() {
+}
+void NM_Federation_Restore_Begun::deserialize() {
+}
+/*<END>---------- Federation_Restore_Begun ------------<END>*/
+
+/*<BEGIN>---------- Initiate_Federate_Restore ------------<BEGIN>*/
+NM_Initiate_Federate_Restore::NM_Initiate_Federate_Restore() {
+    this->type = NetworkMessage::INITIATE_FEDERATE_RESTORE;
+    this->name = "INITIATE_FEDERATE_RESTORE";
+}
+NM_Initiate_Federate_Restore::~NM_Initiate_Federate_Restore() {
+}
+void NM_Initiate_Federate_Restore::serialize() {
+}
+void NM_Initiate_Federate_Restore::deserialize() {
+}
+/*<END>---------- Initiate_Federate_Restore ------------<END>*/
+
+/*<BEGIN>---------- Federation_Restored ------------<BEGIN>*/
+NM_Federation_Restored::NM_Federation_Restored() {
+    this->type = NetworkMessage::FEDERATION_RESTORED;
+    this->name = "FEDERATION_RESTORED";
+}
+NM_Federation_Restored::~NM_Federation_Restored() {
+}
+void NM_Federation_Restored::serialize() {
+}
+void NM_Federation_Restored::deserialize() {
+}
+/*<END>---------- Federation_Restored ------------<END>*/
+
+/*<BEGIN>---------- Federation_Not_Restored ------------<BEGIN>*/
+NM_Federation_Not_Restored::NM_Federation_Not_Restored() {
+    this->type = NetworkMessage::FEDERATION_NOT_RESTORED;
+    this->name = "FEDERATION_NOT_RESTORED";
+}
+NM_Federation_Not_Restored::~NM_Federation_Not_Restored() {
+}
+void NM_Federation_Not_Restored::serialize() {
+}
+void NM_Federation_Not_Restored::deserialize() {
+}
+/*<END>---------- Federation_Not_Restored ------------<END>*/
+
+/*<BEGIN>---------- Publish_Object_Class ------------<BEGIN>*/
+NM_Publish_Object_Class::NM_Publish_Object_Class() {
+    this->type = NetworkMessage::PUBLISH_OBJECT_CLASS;
+    this->name = "PUBLISH_OBJECT_CLASS";
+}
+NM_Publish_Object_Class::~NM_Publish_Object_Class() {
+}
+void NM_Publish_Object_Class::serialize() {
+}
+void NM_Publish_Object_Class::deserialize() {
+}
+/*<END>---------- Publish_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Unpublish_Object_Class ------------<BEGIN>*/
+NM_Unpublish_Object_Class::NM_Unpublish_Object_Class() {
+    this->type = NetworkMessage::UNPUBLISH_OBJECT_CLASS;
+    this->name = "UNPUBLISH_OBJECT_CLASS";
+}
+NM_Unpublish_Object_Class::~NM_Unpublish_Object_Class() {
+}
+void NM_Unpublish_Object_Class::serialize() {
+}
+void NM_Unpublish_Object_Class::deserialize() {
+}
+/*<END>---------- Unpublish_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Publish_Interaction_Class ------------<BEGIN>*/
+NM_Publish_Interaction_Class::NM_Publish_Interaction_Class() {
+    this->type = NetworkMessage::PUBLISH_INTERACTION_CLASS;
+    this->name = "PUBLISH_INTERACTION_CLASS";
+}
+NM_Publish_Interaction_Class::~NM_Publish_Interaction_Class() {
+}
+void NM_Publish_Interaction_Class::serialize() {
+}
+void NM_Publish_Interaction_Class::deserialize() {
+}
+/*<END>---------- Publish_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Unpublish_Interaction_Class ------------<BEGIN>*/
+NM_Unpublish_Interaction_Class::NM_Unpublish_Interaction_Class() {
+    this->type = NetworkMessage::UNPUBLISH_INTERACTION_CLASS;
+    this->name = "UNPUBLISH_INTERACTION_CLASS";
+}
+NM_Unpublish_Interaction_Class::~NM_Unpublish_Interaction_Class() {
+}
+void NM_Unpublish_Interaction_Class::serialize() {
+}
+void NM_Unpublish_Interaction_Class::deserialize() {
+}
+/*<END>---------- Unpublish_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Subscribe_Object_Class ------------<BEGIN>*/
+NM_Subscribe_Object_Class::NM_Subscribe_Object_Class() {
+    this->type = NetworkMessage::SUBSCRIBE_OBJECT_CLASS;
+    this->name = "SUBSCRIBE_OBJECT_CLASS";
+}
+NM_Subscribe_Object_Class::~NM_Subscribe_Object_Class() {
+}
+void NM_Subscribe_Object_Class::serialize() {
+}
+void NM_Subscribe_Object_Class::deserialize() {
+}
+/*<END>---------- Subscribe_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Unsubscribe_Object_Class ------------<BEGIN>*/
+NM_Unsubscribe_Object_Class::NM_Unsubscribe_Object_Class() {
+    this->type = NetworkMessage::UNSUBSCRIBE_OBJECT_CLASS;
+    this->name = "UNSUBSCRIBE_OBJECT_CLASS";
+}
+NM_Unsubscribe_Object_Class::~NM_Unsubscribe_Object_Class() {
+}
+void NM_Unsubscribe_Object_Class::serialize() {
+}
+void NM_Unsubscribe_Object_Class::deserialize() {
+}
+/*<END>---------- Unsubscribe_Object_Class ------------<END>*/
+
+/*<BEGIN>---------- Subscribe_Interaction_Class ------------<BEGIN>*/
+NM_Subscribe_Interaction_Class::NM_Subscribe_Interaction_Class() {
+    this->type = NetworkMessage::SUBSCRIBE_INTERACTION_CLASS;
+    this->name = "SUBSCRIBE_INTERACTION_CLASS";
+}
+NM_Subscribe_Interaction_Class::~NM_Subscribe_Interaction_Class() {
+}
+void NM_Subscribe_Interaction_Class::serialize() {
+}
+void NM_Subscribe_Interaction_Class::deserialize() {
+}
+/*<END>---------- Subscribe_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Unsubscribe_Interaction_Class ------------<BEGIN>*/
+NM_Unsubscribe_Interaction_Class::NM_Unsubscribe_Interaction_Class() {
+    this->type = NetworkMessage::UNSUBSCRIBE_INTERACTION_CLASS;
+    this->name = "UNSUBSCRIBE_INTERACTION_CLASS";
+}
+NM_Unsubscribe_Interaction_Class::~NM_Unsubscribe_Interaction_Class() {
+}
+void NM_Unsubscribe_Interaction_Class::serialize() {
+}
+void NM_Unsubscribe_Interaction_Class::deserialize() {
+}
+/*<END>---------- Unsubscribe_Interaction_Class ------------<END>*/
+
+/*<BEGIN>---------- Turn_Interactions_On ------------<BEGIN>*/
+NM_Turn_Interactions_On::NM_Turn_Interactions_On() {
+    this->type = NetworkMessage::TURN_INTERACTIONS_ON;
+    this->name = "TURN_INTERACTIONS_ON";
+}
+NM_Turn_Interactions_On::~NM_Turn_Interactions_On() {
+}
+void NM_Turn_Interactions_On::serialize() {
+}
+void NM_Turn_Interactions_On::deserialize() {
+}
+/*<END>---------- Turn_Interactions_On ------------<END>*/
+
+/*<BEGIN>---------- Turn_Interactions_Off ------------<BEGIN>*/
+NM_Turn_Interactions_Off::NM_Turn_Interactions_Off() {
+    this->type = NetworkMessage::TURN_INTERACTIONS_OFF;
+    this->name = "TURN_INTERACTIONS_OFF";
+}
+NM_Turn_Interactions_Off::~NM_Turn_Interactions_Off() {
+}
+void NM_Turn_Interactions_Off::serialize() {
+}
+void NM_Turn_Interactions_Off::deserialize() {
+}
+/*<END>---------- Turn_Interactions_Off ------------<END>*/
+
+/*<BEGIN>---------- Register_Object ------------<BEGIN>*/
+NM_Register_Object::NM_Register_Object() {
+    this->type = NetworkMessage::REGISTER_OBJECT;
+    this->name = "REGISTER_OBJECT";
+}
+NM_Register_Object::~NM_Register_Object() {
+}
+void NM_Register_Object::serialize() {
+}
+void NM_Register_Object::deserialize() {
+}
+/*<END>---------- Register_Object ------------<END>*/
+
+/*<BEGIN>---------- Discover_Object ------------<BEGIN>*/
+NM_Discover_Object::NM_Discover_Object() {
+    this->type = NetworkMessage::DISCOVER_OBJECT;
+    this->name = "DISCOVER_OBJECT";
+}
+NM_Discover_Object::~NM_Discover_Object() {
+}
+void NM_Discover_Object::serialize() {
+}
+void NM_Discover_Object::deserialize() {
+}
+/*<END>---------- Discover_Object ------------<END>*/
+
+/*<BEGIN>---------- Update_Attribute_Values ------------<BEGIN>*/
+NM_Update_Attribute_Values::NM_Update_Attribute_Values() {
+    this->type = NetworkMessage::UPDATE_ATTRIBUTE_VALUES;
+    this->name = "UPDATE_ATTRIBUTE_VALUES";
+}
+NM_Update_Attribute_Values::~NM_Update_Attribute_Values() {
+}
+void NM_Update_Attribute_Values::serialize() {
+}
+void NM_Update_Attribute_Values::deserialize() {
+}
+/*<END>---------- Update_Attribute_Values ------------<END>*/
+
+/*<BEGIN>---------- Reflect_Attribute_Values ------------<BEGIN>*/
+NM_Reflect_Attribute_Values::NM_Reflect_Attribute_Values() {
+    this->type = NetworkMessage::REFLECT_ATTRIBUTE_VALUES;
+    this->name = "REFLECT_ATTRIBUTE_VALUES";
+}
+NM_Reflect_Attribute_Values::~NM_Reflect_Attribute_Values() {
+}
+void NM_Reflect_Attribute_Values::serialize() {
+}
+void NM_Reflect_Attribute_Values::deserialize() {
+}
+/*<END>---------- Reflect_Attribute_Values ------------<END>*/
+
+/*<BEGIN>---------- Send_Interaction ------------<BEGIN>*/
+NM_Send_Interaction::NM_Send_Interaction() {
+    this->type = NetworkMessage::SEND_INTERACTION;
+    this->name = "SEND_INTERACTION";
+}
+NM_Send_Interaction::~NM_Send_Interaction() {
+}
+void NM_Send_Interaction::serialize() {
+}
+void NM_Send_Interaction::deserialize() {
+}
+/*<END>---------- Send_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Receive_Interaction ------------<BEGIN>*/
+NM_Receive_Interaction::NM_Receive_Interaction() {
+    this->type = NetworkMessage::RECEIVE_INTERACTION;
+    this->name = "RECEIVE_INTERACTION";
+}
+NM_Receive_Interaction::~NM_Receive_Interaction() {
+}
+void NM_Receive_Interaction::serialize() {
+}
+void NM_Receive_Interaction::deserialize() {
+}
+/*<END>---------- Receive_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Delete_Object ------------<BEGIN>*/
+NM_Delete_Object::NM_Delete_Object() {
+    this->type = NetworkMessage::DELETE_OBJECT;
+    this->name = "DELETE_OBJECT";
+}
+NM_Delete_Object::~NM_Delete_Object() {
+}
+void NM_Delete_Object::serialize() {
+}
+void NM_Delete_Object::deserialize() {
+}
+/*<END>---------- Delete_Object ------------<END>*/
+
+/*<BEGIN>---------- Remove_Object ------------<BEGIN>*/
+NM_Remove_Object::NM_Remove_Object() {
+    this->type = NetworkMessage::REMOVE_OBJECT;
+    this->name = "REMOVE_OBJECT";
+}
+NM_Remove_Object::~NM_Remove_Object() {
+}
+void NM_Remove_Object::serialize() {
+}
+void NM_Remove_Object::deserialize() {
+}
+/*<END>---------- Remove_Object ------------<END>*/
+
+/*<BEGIN>---------- Change_Attribute_Transport_Type ------------<BEGIN>*/
+NM_Change_Attribute_Transport_Type::NM_Change_Attribute_Transport_Type() {
+    this->type = NetworkMessage::CHANGE_ATTRIBUTE_TRANSPORT_TYPE;
+    this->name = "CHANGE_ATTRIBUTE_TRANSPORT_TYPE";
+}
+NM_Change_Attribute_Transport_Type::~NM_Change_Attribute_Transport_Type() {
+}
+void NM_Change_Attribute_Transport_Type::serialize() {
+}
+void NM_Change_Attribute_Transport_Type::deserialize() {
+}
+/*<END>---------- Change_Attribute_Transport_Type ------------<END>*/
+
+/*<BEGIN>---------- Change_Attribute_Order_Type ------------<BEGIN>*/
+NM_Change_Attribute_Order_Type::NM_Change_Attribute_Order_Type() {
+    this->type = NetworkMessage::CHANGE_ATTRIBUTE_ORDER_TYPE;
+    this->name = "CHANGE_ATTRIBUTE_ORDER_TYPE";
+}
+NM_Change_Attribute_Order_Type::~NM_Change_Attribute_Order_Type() {
+}
+void NM_Change_Attribute_Order_Type::serialize() {
+}
+void NM_Change_Attribute_Order_Type::deserialize() {
+}
+/*<END>---------- Change_Attribute_Order_Type ------------<END>*/
+
+/*<BEGIN>---------- Change_Interaction_Transport_Type ------------<BEGIN>*/
+NM_Change_Interaction_Transport_Type::NM_Change_Interaction_Transport_Type() {
+    this->type = NetworkMessage::CHANGE_INTERACTION_TRANSPORT_TYPE;
+    this->name = "CHANGE_INTERACTION_TRANSPORT_TYPE";
+}
+NM_Change_Interaction_Transport_Type::~NM_Change_Interaction_Transport_Type() {
+}
+void NM_Change_Interaction_Transport_Type::serialize() {
+}
+void NM_Change_Interaction_Transport_Type::deserialize() {
+}
+/*<END>---------- Change_Interaction_Transport_Type ------------<END>*/
+
+/*<BEGIN>---------- Change_Interaction_Order_Type ------------<BEGIN>*/
+NM_Change_Interaction_Order_Type::NM_Change_Interaction_Order_Type() {
+    this->type = NetworkMessage::CHANGE_INTERACTION_ORDER_TYPE;
+    this->name = "CHANGE_INTERACTION_ORDER_TYPE";
+}
+NM_Change_Interaction_Order_Type::~NM_Change_Interaction_Order_Type() {
+}
+void NM_Change_Interaction_Order_Type::serialize() {
+}
+void NM_Change_Interaction_Order_Type::deserialize() {
+}
+/*<END>---------- Change_Interaction_Order_Type ------------<END>*/
+
+/*<BEGIN>---------- Request_Class_Attribute_Value_Update ------------<BEGIN>*/
+NM_Request_Class_Attribute_Value_Update::NM_Request_Class_Attribute_Value_Update()
 {
+    this->type = NetworkMessage::REQUEST_CLASS_ATTRIBUTE_VALUE_UPDATE;
+    this->name = "REQUEST_CLASS_ATTRIBUTE_VALUE_UPDATE";
+}
+NM_Request_Class_Attribute_Value_Update::~NM_Request_Class_Attribute_Value_Update()
 {
+}
+void NM_Request_Class_Attribute_Value_Update::serialize() {
+}
+void NM_Request_Class_Attribute_Value_Update::deserialize() {
+}
+/*<END>---------- Request_Class_Attribute_Value_Update ------------<END>*/
+
+/*<BEGIN>---------- Request_Object_Attribute_Value_Update ------------<BEGIN>*/
+NM_Request_Object_Attribute_Value_Update::NM_Request_Object_Attribute_Value_Update()
 {
+    this->type = NetworkMessage::REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE;
+    this->name = "REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE";
+}
+NM_Request_Object_Attribute_Value_Update::~NM_Request_Object_Attribute_Value_Update()
 {
+}
+void NM_Request_Object_Attribute_Value_Update::serialize() {
+}
+void NM_Request_Object_Attribute_Value_Update::deserialize() {
+}
+/*<END>---------- Request_Object_Attribute_Value_Update ------------<END>*/
+
+/*<BEGIN>---------- Is_Attribute_Owned_By_Federate ------------<BEGIN>*/
+NM_Is_Attribute_Owned_By_Federate::NM_Is_Attribute_Owned_By_Federate() {
+    this->type = NetworkMessage::IS_ATTRIBUTE_OWNED_BY_FEDERATE;
+    this->name = "IS_ATTRIBUTE_OWNED_BY_FEDERATE";
+}
+NM_Is_Attribute_Owned_By_Federate::~NM_Is_Attribute_Owned_By_Federate() {
+}
+void NM_Is_Attribute_Owned_By_Federate::serialize() {
+}
+void NM_Is_Attribute_Owned_By_Federate::deserialize() {
+}
+/*<END>---------- Is_Attribute_Owned_By_Federate ------------<END>*/
+
+/*<BEGIN>---------- Query_Attribute_Ownership ------------<BEGIN>*/
+NM_Query_Attribute_Ownership::NM_Query_Attribute_Ownership() {
+    this->type = NetworkMessage::QUERY_ATTRIBUTE_OWNERSHIP;
+    this->name = "QUERY_ATTRIBUTE_OWNERSHIP";
+}
+NM_Query_Attribute_Ownership::~NM_Query_Attribute_Ownership() {
+}
+void NM_Query_Attribute_Ownership::serialize() {
+}
+void NM_Query_Attribute_Ownership::deserialize() {
+}
+/*<END>---------- Query_Attribute_Ownership ------------<END>*/
+
+/*<BEGIN>---------- Attribute_Is_Not_Owned ------------<BEGIN>*/
+NM_Attribute_Is_Not_Owned::NM_Attribute_Is_Not_Owned() {
+    this->type = NetworkMessage::ATTRIBUTE_IS_NOT_OWNED;
+    this->name = "ATTRIBUTE_IS_NOT_OWNED";
+}
+NM_Attribute_Is_Not_Owned::~NM_Attribute_Is_Not_Owned() {
+}
+void NM_Attribute_Is_Not_Owned::serialize() {
+}
+void NM_Attribute_Is_Not_Owned::deserialize() {
+}
+/*<END>---------- Attribute_Is_Not_Owned ------------<END>*/
+
+/*<BEGIN>---------- Inform_Attribute_Ownership ------------<BEGIN>*/
+NM_Inform_Attribute_Ownership::NM_Inform_Attribute_Ownership() {
+    this->type = NetworkMessage::INFORM_ATTRIBUTE_OWNERSHIP;
+    this->name = "INFORM_ATTRIBUTE_OWNERSHIP";
+}
+NM_Inform_Attribute_Ownership::~NM_Inform_Attribute_Ownership() {
+}
+void NM_Inform_Attribute_Ownership::serialize() {
+}
+void NM_Inform_Attribute_Ownership::deserialize() {
+}
+/*<END>---------- Inform_Attribute_Ownership ------------<END>*/
+
+/*<BEGIN>---------- Negotiated_Attribute_Ownership_Divestiture 
------------<BEGIN>*/
+NM_Negotiated_Attribute_Ownership_Divestiture::NM_Negotiated_Attribute_Ownership_Divestiture()
 {
+    this->type = NetworkMessage::NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE;
+    this->name = "NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE";
+}
+NM_Negotiated_Attribute_Ownership_Divestiture::~NM_Negotiated_Attribute_Ownership_Divestiture()
 {
+}
+void NM_Negotiated_Attribute_Ownership_Divestiture::serialize() {
+}
+void NM_Negotiated_Attribute_Ownership_Divestiture::deserialize() {
+}
+/*<END>---------- Negotiated_Attribute_Ownership_Divestiture 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Acquisition_Notification 
------------<BEGIN>*/
+NM_Attribute_Ownership_Acquisition_Notification::NM_Attribute_Ownership_Acquisition_Notification()
 {
+    this->type = NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_NOTIFICATION;
+    this->name = "ATTRIBUTE_OWNERSHIP_ACQUISITION_NOTIFICATION";
+}
+NM_Attribute_Ownership_Acquisition_Notification::~NM_Attribute_Ownership_Acquisition_Notification()
 {
+}
+void NM_Attribute_Ownership_Acquisition_Notification::serialize() {
+}
+void NM_Attribute_Ownership_Acquisition_Notification::deserialize() {
+}
+/*<END>---------- Attribute_Ownership_Acquisition_Notification 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Divestiture_Notification 
------------<BEGIN>*/
+NM_Attribute_Ownership_Divestiture_Notification::NM_Attribute_Ownership_Divestiture_Notification()
 {
+    this->type = NetworkMessage::ATTRIBUTE_OWNERSHIP_DIVESTITURE_NOTIFICATION;
+    this->name = "ATTRIBUTE_OWNERSHIP_DIVESTITURE_NOTIFICATION";
+}
+NM_Attribute_Ownership_Divestiture_Notification::~NM_Attribute_Ownership_Divestiture_Notification()
 {
+}
+void NM_Attribute_Ownership_Divestiture_Notification::serialize() {
+}
+void NM_Attribute_Ownership_Divestiture_Notification::deserialize() {
+}
+/*<END>---------- Attribute_Ownership_Divestiture_Notification 
------------<END>*/
+
+/*<BEGIN>---------- Request_Attribute_Ownership_Assumption 
------------<BEGIN>*/
+NM_Request_Attribute_Ownership_Assumption::NM_Request_Attribute_Ownership_Assumption()
 {
+    this->type = NetworkMessage::REQUEST_ATTRIBUTE_OWNERSHIP_ASSUMPTION;
+    this->name = "REQUEST_ATTRIBUTE_OWNERSHIP_ASSUMPTION";
+}
+NM_Request_Attribute_Ownership_Assumption::~NM_Request_Attribute_Ownership_Assumption()
 {
+}
+void NM_Request_Attribute_Ownership_Assumption::serialize() {
+}
+void NM_Request_Attribute_Ownership_Assumption::deserialize() {
+}
+/*<END>---------- Request_Attribute_Ownership_Assumption ------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Unavailable ------------<BEGIN>*/
+NM_Attribute_Ownership_Unavailable::NM_Attribute_Ownership_Unavailable() {
+    this->type = NetworkMessage::ATTRIBUTE_OWNERSHIP_UNAVAILABLE;
+    this->name = "ATTRIBUTE_OWNERSHIP_UNAVAILABLE";
+}
+NM_Attribute_Ownership_Unavailable::~NM_Attribute_Ownership_Unavailable() {
+}
+void NM_Attribute_Ownership_Unavailable::serialize() {
+}
+void NM_Attribute_Ownership_Unavailable::deserialize() {
+}
+/*<END>---------- Attribute_Ownership_Unavailable ------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Acquisition_If_Available 
------------<BEGIN>*/
+NM_Attribute_Ownership_Acquisition_If_Available::NM_Attribute_Ownership_Acquisition_If_Available()
 {
+    this->type = NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE;
+    this->name = "ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE";
+}
+NM_Attribute_Ownership_Acquisition_If_Available::~NM_Attribute_Ownership_Acquisition_If_Available()
 {
+}
+void NM_Attribute_Ownership_Acquisition_If_Available::serialize() {
+}
+void NM_Attribute_Ownership_Acquisition_If_Available::deserialize() {
+}
+/*<END>---------- Attribute_Ownership_Acquisition_If_Available 
------------<END>*/
+
+/*<BEGIN>---------- Unconditional_Attribute_Ownership_Divestiture 
------------<BEGIN>*/
+NM_Unconditional_Attribute_Ownership_Divestiture::NM_Unconditional_Attribute_Ownership_Divestiture()
 {
+    this->type = NetworkMessage::UNCONDITIONAL_ATTRIBUTE_OWNERSHIP_DIVESTITURE;
+    this->name = "UNCONDITIONAL_ATTRIBUTE_OWNERSHIP_DIVESTITURE";
+}
+NM_Unconditional_Attribute_Ownership_Divestiture::~NM_Unconditional_Attribute_Ownership_Divestiture()
 {
+}
+void NM_Unconditional_Attribute_Ownership_Divestiture::serialize() {
+}
+void NM_Unconditional_Attribute_Ownership_Divestiture::deserialize() {
+}
+/*<END>---------- Unconditional_Attribute_Ownership_Divestiture 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Acquisition ------------<BEGIN>*/
+NM_Attribute_Ownership_Acquisition::NM_Attribute_Ownership_Acquisition() {
+    this->type = NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION;
+    this->name = "ATTRIBUTE_OWNERSHIP_ACQUISITION";
+}
+NM_Attribute_Ownership_Acquisition::~NM_Attribute_Ownership_Acquisition() {
+}
+void NM_Attribute_Ownership_Acquisition::serialize() {
+}
+void NM_Attribute_Ownership_Acquisition::deserialize() {
+}
+/*<END>---------- Attribute_Ownership_Acquisition ------------<END>*/
+
+/*<BEGIN>---------- Request_Attribute_Ownership_Release ------------<BEGIN>*/
+NM_Request_Attribute_Ownership_Release::NM_Request_Attribute_Ownership_Release()
 {
+    this->type = NetworkMessage::REQUEST_ATTRIBUTE_OWNERSHIP_RELEASE;
+    this->name = "REQUEST_ATTRIBUTE_OWNERSHIP_RELEASE";
+}
+NM_Request_Attribute_Ownership_Release::~NM_Request_Attribute_Ownership_Release()
 {
+}
+void NM_Request_Attribute_Ownership_Release::serialize() {
+}
+void NM_Request_Attribute_Ownership_Release::deserialize() {
+}
+/*<END>---------- Request_Attribute_Ownership_Release ------------<END>*/
+
+/*<BEGIN>---------- Cancel_Negotiated_Attribute_Ownership_Divestiture 
------------<BEGIN>*/
+NM_Cancel_Negotiated_Attribute_Ownership_Divestiture::NM_Cancel_Negotiated_Attribute_Ownership_Divestiture()
 {
+    this->type = 
NetworkMessage::CANCEL_NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE;
+    this->name = "CANCEL_NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE";
+}
+NM_Cancel_Negotiated_Attribute_Ownership_Divestiture::~NM_Cancel_Negotiated_Attribute_Ownership_Divestiture()
 {
+}
+void NM_Cancel_Negotiated_Attribute_Ownership_Divestiture::serialize() {
+}
+void NM_Cancel_Negotiated_Attribute_Ownership_Divestiture::deserialize() {
+}
+/*<END>---------- Cancel_Negotiated_Attribute_Ownership_Divestiture 
------------<END>*/
+
+/*<BEGIN>---------- Attribute_Ownership_Release_Response ------------<BEGIN>*/
+NM_Attribute_Ownership_Release_Response::NM_Attribute_Ownership_Release_Response()
 {
+    this->type = NetworkMessage::ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE;
+    this->name = "ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE";
+}
+NM_Attribute_Ownership_Release_Response::~NM_Attribute_Ownership_Release_Response()
 {
+}
+void NM_Attribute_Ownership_Release_Response::serialize() {
+}
+void NM_Attribute_Ownership_Release_Response::deserialize() {
+}
+/*<END>---------- Attribute_Ownership_Release_Response ------------<END>*/
+
+/*<BEGIN>---------- Cancel_Attribute_Ownership_Acquisition 
------------<BEGIN>*/
+NM_Cancel_Attribute_Ownership_Acquisition::NM_Cancel_Attribute_Ownership_Acquisition()
 {
+    this->type = NetworkMessage::CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION;
+    this->name = "CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION";
+}
+NM_Cancel_Attribute_Ownership_Acquisition::~NM_Cancel_Attribute_Ownership_Acquisition()
 {
+}
+void NM_Cancel_Attribute_Ownership_Acquisition::serialize() {
+}
+void NM_Cancel_Attribute_Ownership_Acquisition::deserialize() {
+}
+/*<END>---------- Cancel_Attribute_Ownership_Acquisition ------------<END>*/
+
+/*<BEGIN>---------- Confirm_Attribute_Ownership_Acquisition_Cancellation 
------------<BEGIN>*/
+NM_Confirm_Attribute_Ownership_Acquisition_Cancellation::NM_Confirm_Attribute_Ownership_Acquisition_Cancellation()
 {
+    this->type = 
NetworkMessage::CONFIRM_ATTRIBUTE_OWNERSHIP_ACQUISITION_CANCELLATION;
+    this->name = "CONFIRM_ATTRIBUTE_OWNERSHIP_ACQUISITION_CANCELLATION";
+}
+NM_Confirm_Attribute_Ownership_Acquisition_Cancellation::~NM_Confirm_Attribute_Ownership_Acquisition_Cancellation()
 {
+}
+void NM_Confirm_Attribute_Ownership_Acquisition_Cancellation::serialize() {
+}
+void NM_Confirm_Attribute_Ownership_Acquisition_Cancellation::deserialize() {
+}
+/*<END>---------- Confirm_Attribute_Ownership_Acquisition_Cancellation 
------------<END>*/
+
+/*<BEGIN>---------- Ddm_Create_Region ------------<BEGIN>*/
+NM_Ddm_Create_Region::NM_Ddm_Create_Region() {
+    this->type = NetworkMessage::DDM_CREATE_REGION;
+    this->name = "DDM_CREATE_REGION";
+}
+NM_Ddm_Create_Region::~NM_Ddm_Create_Region() {
+}
+void NM_Ddm_Create_Region::serialize() {
+}
+void NM_Ddm_Create_Region::deserialize() {
+}
+/*<END>---------- Ddm_Create_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Modify_Region ------------<BEGIN>*/
+NM_Ddm_Modify_Region::NM_Ddm_Modify_Region() {
+    this->type = NetworkMessage::DDM_MODIFY_REGION;
+    this->name = "DDM_MODIFY_REGION";
+}
+NM_Ddm_Modify_Region::~NM_Ddm_Modify_Region() {
+}
+void NM_Ddm_Modify_Region::serialize() {
+}
+void NM_Ddm_Modify_Region::deserialize() {
+}
+/*<END>---------- Ddm_Modify_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Delete_Region ------------<BEGIN>*/
+NM_Ddm_Delete_Region::NM_Ddm_Delete_Region() {
+    this->type = NetworkMessage::DDM_DELETE_REGION;
+    this->name = "DDM_DELETE_REGION";
+}
+NM_Ddm_Delete_Region::~NM_Ddm_Delete_Region() {
+}
+void NM_Ddm_Delete_Region::serialize() {
+}
+void NM_Ddm_Delete_Region::deserialize() {
+}
+/*<END>---------- Ddm_Delete_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Associate_Region ------------<BEGIN>*/
+NM_Ddm_Associate_Region::NM_Ddm_Associate_Region() {
+    this->type = NetworkMessage::DDM_ASSOCIATE_REGION;
+    this->name = "DDM_ASSOCIATE_REGION";
+}
+NM_Ddm_Associate_Region::~NM_Ddm_Associate_Region() {
+}
+void NM_Ddm_Associate_Region::serialize() {
+}
+void NM_Ddm_Associate_Region::deserialize() {
+}
+/*<END>---------- Ddm_Associate_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Register_Object ------------<BEGIN>*/
+NM_Ddm_Register_Object::NM_Ddm_Register_Object() {
+    this->type = NetworkMessage::DDM_REGISTER_OBJECT;
+    this->name = "DDM_REGISTER_OBJECT";
+}
+NM_Ddm_Register_Object::~NM_Ddm_Register_Object() {
+}
+void NM_Ddm_Register_Object::serialize() {
+}
+void NM_Ddm_Register_Object::deserialize() {
+}
+/*<END>---------- Ddm_Register_Object ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Unassociate_Region ------------<BEGIN>*/
+NM_Ddm_Unassociate_Region::NM_Ddm_Unassociate_Region() {
+    this->type = NetworkMessage::DDM_UNASSOCIATE_REGION;
+    this->name = "DDM_UNASSOCIATE_REGION";
+}
+NM_Ddm_Unassociate_Region::~NM_Ddm_Unassociate_Region() {
+}
+void NM_Ddm_Unassociate_Region::serialize() {
+}
+void NM_Ddm_Unassociate_Region::deserialize() {
+}
+/*<END>---------- Ddm_Unassociate_Region ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Subscribe_Attributes ------------<BEGIN>*/
+NM_Ddm_Subscribe_Attributes::NM_Ddm_Subscribe_Attributes() {
+    this->type = NetworkMessage::DDM_SUBSCRIBE_ATTRIBUTES;
+    this->name = "DDM_SUBSCRIBE_ATTRIBUTES";
+}
+NM_Ddm_Subscribe_Attributes::~NM_Ddm_Subscribe_Attributes() {
+}
+void NM_Ddm_Subscribe_Attributes::serialize() {
+}
+void NM_Ddm_Subscribe_Attributes::deserialize() {
+}
+/*<END>---------- Ddm_Subscribe_Attributes ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Unsubscribe_Attributes ------------<BEGIN>*/
+NM_Ddm_Unsubscribe_Attributes::NM_Ddm_Unsubscribe_Attributes() {
+    this->type = NetworkMessage::DDM_UNSUBSCRIBE_ATTRIBUTES;
+    this->name = "DDM_UNSUBSCRIBE_ATTRIBUTES";
+}
+NM_Ddm_Unsubscribe_Attributes::~NM_Ddm_Unsubscribe_Attributes() {
+}
+void NM_Ddm_Unsubscribe_Attributes::serialize() {
+}
+void NM_Ddm_Unsubscribe_Attributes::deserialize() {
+}
+/*<END>---------- Ddm_Unsubscribe_Attributes ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Subscribe_Interaction ------------<BEGIN>*/
+NM_Ddm_Subscribe_Interaction::NM_Ddm_Subscribe_Interaction() {
+    this->type = NetworkMessage::DDM_SUBSCRIBE_INTERACTION;
+    this->name = "DDM_SUBSCRIBE_INTERACTION";
+}
+NM_Ddm_Subscribe_Interaction::~NM_Ddm_Subscribe_Interaction() {
+}
+void NM_Ddm_Subscribe_Interaction::serialize() {
+}
+void NM_Ddm_Subscribe_Interaction::deserialize() {
+}
+/*<END>---------- Ddm_Subscribe_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Ddm_Unsubscribe_Interaction ------------<BEGIN>*/
+NM_Ddm_Unsubscribe_Interaction::NM_Ddm_Unsubscribe_Interaction() {
+    this->type = NetworkMessage::DDM_UNSUBSCRIBE_INTERACTION;
+    this->name = "DDM_UNSUBSCRIBE_INTERACTION";
+}
+NM_Ddm_Unsubscribe_Interaction::~NM_Ddm_Unsubscribe_Interaction() {
+}
+void NM_Ddm_Unsubscribe_Interaction::serialize() {
+}
+void NM_Ddm_Unsubscribe_Interaction::deserialize() {
+}
+/*<END>---------- Ddm_Unsubscribe_Interaction ------------<END>*/
+
+/*<BEGIN>---------- Provide_Attribute_Value_Update ------------<BEGIN>*/
+NM_Provide_Attribute_Value_Update::NM_Provide_Attribute_Value_Update() {
+    this->type = NetworkMessage::PROVIDE_ATTRIBUTE_VALUE_UPDATE;
+    this->name = "PROVIDE_ATTRIBUTE_VALUE_UPDATE";
+}
+NM_Provide_Attribute_Value_Update::~NM_Provide_Attribute_Value_Update() {
+}
+void NM_Provide_Attribute_Value_Update::serialize() {
+}
+void NM_Provide_Attribute_Value_Update::deserialize() {
+}
+/*<END>---------- Provide_Attribute_Value_Update ------------<END>*/
+
+/*<BEGIN>---------- Get_Fed_File ------------<BEGIN>*/
+NM_Get_Fed_File::NM_Get_Fed_File() {
+    this->type = NetworkMessage::GET_FED_FILE;
+    this->name = "GET_FED_FILE";
+}
+NM_Get_Fed_File::~NM_Get_Fed_File() {
+}
+void NM_Get_Fed_File::serialize() {
+}
+void NM_Get_Fed_File::deserialize() {
+}
+/*<END>---------- Get_Fed_File ------------<END>*/
+
+/*<BEGIN>---------- Last ------------<BEGIN>*/
+NM_Last::NM_Last() {
+    this->type = NetworkMessage::LAST;
+    this->name = "LAST";
+}
+NM_Last::~NM_Last() {
+}
+void NM_Last::serialize() {
+}
+void NM_Last::deserialize() {
+}
+/*<END>---------- Last ------------<END>*/
+
+
+
+
+
+} /* end of certi namespace */
+




reply via email to

[Prev in Thread] Current Thread [Next in Thread]