certi-cvs
[Top][All Lists]
Advanced

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

[certi-cvs] certi RTIG/RTIG.cc RTIG/RTIG_processing.cc RTIG... [br_DEV_H


From: certi-cvs
Subject: [certi-cvs] certi RTIG/RTIG.cc RTIG/RTIG_processing.cc RTIG... [br_DEV_HETEROGENEOUS]
Date: Thu, 10 Apr 2008 11:35:58 +0000

CVSROOT:        /sources/certi
Module name:    certi
Branch:         br_DEV_HETEROGENEOUS
Changes by:     Eric NOULARD <erk>      08/04/10 11:35:57

Modified files:
        RTIG           : RTIG.cc RTIG_processing.cc Federation.cc 
        libCERTI       : NetworkMessage.hh NetworkMessage_RW.cc 
                         NM_Classes.hh ObjectClassBroadcastList.cc 
                         InteractionBroadcastList.cc ObjectSet.cc 
                         InteractionBroadcastList.hh NM_Classes.cc 
                         Interaction.cc ObjectClass.cc NetworkMessage.cc 
        RTIA           : Communications.cc 

Log message:
        Update with NM_Factory usage

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.36.2.2&r2=3.36.2.3
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.56.2.1&r2=3.56.2.2
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.80.2.1&r2=3.80.2.2
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage.hh?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.30.2.5&r2=3.30.2.6
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage_RW.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.45.2.4&r2=3.45.2.5
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NM_Classes.hh?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=1.1.2.6&r2=1.1.2.7
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClassBroadcastList.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.18.2.1&r2=3.18.2.2
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/InteractionBroadcastList.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.11&r2=3.11.2.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectSet.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.18.2.1&r2=3.18.2.2
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/InteractionBroadcastList.hh?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.7&r2=3.7.4.1
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NM_Classes.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=1.1.2.6&r2=1.1.2.7
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Interaction.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.35.2.1&r2=3.35.2.2
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClass.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.41.2.1&r2=3.41.2.2
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.28.2.4&r2=3.28.2.5
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/Communications.cc?cvsroot=certi&only_with_tag=br_DEV_HETEROGENEOUS&r1=3.22.2.1&r2=3.22.2.2

Patches:
Index: RTIG/RTIG.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG.cc,v
retrieving revision 3.36.2.2
retrieving revision 3.36.2.3
diff -u -b -r3.36.2.2 -r3.36.2.3
--- RTIG/RTIG.cc        9 Apr 2008 14:16:33 -0000       3.36.2.2
+++ RTIG/RTIG.cc        10 Apr 2008 11:35:55 -0000      3.36.2.3
@@ -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.2.2 2008/04/09 14:16:33 erk Exp $
+// $Id: RTIG.cc,v 3.36.2.3 2008/04/10 11:35:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -43,7 +43,7 @@
 namespace certi {
 namespace rtig {
 
-static pdCDebug D("RTIG", __FILE__);
+static PrettyDebug D("RTIG", __FILE__);
 static PrettyDebug G("GENDOC",__FILE__);
 
 // ----------------------------------------------------------------------------
@@ -961,8 +961,9 @@
 
     if (link == NULL) return link ;
 
+    /* FIXME ***/
     if (rep.exception != e_NO_EXCEPTION) {
-        rep.write(link);
+        rep.send(link);
         D.Out(pdExcept,
               "RTIG catched exception %d and sent it back to federate %d.",
               rep.exception, rep.federate);
@@ -986,4 +987,4 @@
 
 }} // namespace certi/rtig
 
-// $Id: RTIG.cc,v 3.36.2.2 2008/04/09 14:16:33 erk Exp $
+// $Id: RTIG.cc,v 3.36.2.3 2008/04/10 11:35:55 erk Exp $

Index: RTIG/RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.56.2.1
retrieving revision 3.56.2.2
diff -u -b -r3.56.2.1 -r3.56.2.2
--- RTIG/RTIG_processing.cc     18 Mar 2008 15:55:58 -0000      3.56.2.1
+++ RTIG/RTIG_processing.cc     10 Apr 2008 11:35:56 -0000      3.56.2.2
@@ -18,11 +18,12 @@
 // 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.2.1 2008/03/18 15:55:58 erk Exp $
+// $Id: RTIG_processing.cc,v 3.56.2.2 2008/04/10 11:35:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
 #include "RTIG.hh"
+#include "NM_Classes.hh"
 
 #include <assert.h>
 
@@ -42,7 +43,7 @@
 {
     std::string federation = req->federationName;
     std::string FEDid      = req->FEDid;
-    NetworkMessage rep ;               // rep for answer to RTIA
+    NM_Create_Federation_Execution  rep;   // rep for answer to RTIA
 
     G.Out(pdGendoc,"enter RTIG::processCreateFederation");
     G.Out(pdGendoc,"BEGIN ** CREATE FEDERATION SERVICE **");
@@ -78,7 +79,6 @@
     ClientSockets.push_front(com_mc);
 
 #else
-    rep.exception = e_NO_EXCEPTION ;
     // We catch createFederation because it is useful to send
     // exception reason to RTIA 
     try {
@@ -101,7 +101,6 @@
         }
 #endif
     // Prepare answer for RTIA : store NetworkMessage rep
-    rep.type = NetworkMessage::CREATE_FEDERATION_EXECUTION ;
     if ( rep.exception == e_NO_EXCEPTION )
         {
         rep.federation = h ;
@@ -111,7 +110,7 @@
 
     G.Out(pdGendoc,"processCreateFederation===>write answer to RTIA");
 
-    rep.write(link); // Send answer to RTIA
+    rep.send(link); // Send answer to RTIA
 
     D.Out(pdInit, "Federation \"%s\" created with Handle %d.",
           federation.c_str(), rep.federation);
@@ -176,9 +175,7 @@
 
     // Prepare answer about JoinFederationExecution
     // This answer wille be made AFTER FED file processing
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::JOIN_FEDERATION_EXECUTION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Join_Federation_Execution rep ;        
     rep.federationName = federation;    
     rep.federate = num_federe ;
     rep.federation = num_federation ;
@@ -199,8 +196,7 @@
         }
 
     // RTIG says OK or not to RTIA
-    NetworkMessage repFED ;
-    repFED.type = NetworkMessage::GET_FED_FILE ;
+    NM_Get_FED_File repFED ;    
     repFED.federate = num_federe ;
     repFED.federation = num_federation ;
     repFED.number = 0 ;
@@ -211,15 +207,14 @@
           repFED.type,repFED.FEDid.c_str());
     G.Out(pdGendoc,"processJoinFederation====>Begin FED file transfer");
 
-    repFED.write(link);
+    repFED.send(link);
 
     if ( e ==  e_NO_EXCEPTION )  
         {
         // Wait for OK from RTIA
-        NetworkMessage msg ;
-        msg.type = NetworkMessage::GET_FED_FILE ;
+       NM_Get_FED_File msg ;        
         D.Out(pdTrace,"wait NetworkMessage of Type %d",msg.type);
-        msg.read(link);
+        msg.receive(link);
         assert ( msg.number == 0 );
         // RTIA has opened working file then RTIG has to transfer file contents
         // line by line
@@ -229,7 +224,6 @@
             {
             num_line++;
             // RTIG sends line to RTIA and number gives line number
-            repFED.type = NetworkMessage::GET_FED_FILE ;
             repFED.exception = e_NO_EXCEPTION ;
             repFED.federate = num_federe ;
             repFED.federation = num_federation ;
@@ -241,16 +235,15 @@
             repFED.setValue(0,file_line,strlen(file_line)+1);  
 
             // Send answer
-            repFED.write(link);
+            repFED.send(link);
 
             // Wait for OK from RTIA
-            msg.read(link);
+            msg.receive(link);
             assert ( msg.number == num_line );
             }
     
        // close
        fclose(fdd) ;
-        repFED.type = NetworkMessage::GET_FED_FILE ;
         repFED.exception = e_NO_EXCEPTION ;
         repFED.federate = num_federe ;
         repFED.federation = num_federation ;
@@ -261,7 +254,7 @@
 
         G.Out(pdGendoc,"processJoinFederation====>End  FED file transfer");
 
-        repFED.write(link);
+        repFED.send(link);
         }
     // END of FED file processing
 
@@ -276,7 +269,7 @@
 
     // Send answer
 
-    rep.write(link);
+    rep.send(link);
 
     G.Out(pdGendoc,"exit RTIG::processJoinFederation");
     G.Out(pdGendoc,"END ** JOIN FEDERATION SERVICE **");
@@ -321,15 +314,13 @@
     federationHandles.free(num_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 ;
+    NM_Destroy_Federation_Execution rep ;    
     rep.federate = req->federate ;
     rep.federationName = req->federationName;    
 
     G.Out(pdGendoc,"processDestroyFederation===>write to RTIA");
 
-    rep.write(link);
+    rep.send(link);
 
     G.Out(pdGendoc,"END ** DESTROY FEDERATION SERVICE **");
     G.Out(pdGendoc,"exit RTIG::processDestroyFederation");
@@ -427,15 +418,14 @@
     D.Out(pdTerm, "Federation %u is now synchronizing.", req->federation);
 
     // send synchronizationPointRegistrationSucceeded() to federate.
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED ;
+    NM_Synchronization_Point_Registration_Succeeded rep ;    
     rep.federate = req->federate ;
     rep.federation = req->federation ;
     rep.setLabel(req->label.c_str());
 
     G.Out(pdGendoc,"      processRegisterSynchronization====> write SPRS to 
RTIA");
 
-    rep.write(link);
+    rep.send(link);
 
     // boolean true means a federates set exists
     if ( req->boolean )
@@ -577,14 +567,12 @@
     D.Out(pdRegister, "Federate %u of Federation %u published object class 
%d.",
           req->federate, req->federation, req->objectClass);
 
-    NetworkMessage rep ;
-    rep.type = req->type ;
-    rep.exception = e_NO_EXCEPTION ;
-    rep.federate = req->federate ;
-    rep.objectClass = req->objectClass ;
-    rep.handleArraySize = 0 ;
+    std::auto_ptr<NetworkMessage> rep(NM_Factory::create(req->type));    
+    rep->federate = req->federate ;
+    rep->objectClass = req->objectClass ;
+    rep->handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep->send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -610,14 +598,12 @@
           "Federate %u of Federation %u subscribed to object class %d.",
           req->federate, req->federation, req->objectClass);
 
-    NetworkMessage rep ;
-    rep.type = req->type ;
-    rep.exception = e_NO_EXCEPTION ;
-    rep.federate = req->federate ;
-    rep.objectClass = req->objectClass ;
-    rep.handleArraySize = 0 ;
+    std::auto_ptr<NetworkMessage> rep(NM_Factory::create(req->type));
+    rep->federate = req->federate ;
+    rep->objectClass = req->objectClass ;
+    rep->handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep->send(link); // send answer to RTIA
 
     G.Out(pdGendoc,"END   **  SUBSCRIBE OBJECT CLASS SERVICE **");
     G.Out(pdGendoc,"exit  RTIG::processSubscribeObjectClass");
@@ -642,13 +628,11 @@
           req->federation,
           req->interactionClass);
 
-    NetworkMessage rep ;
-    rep.type = req->type ;
-    rep.exception = e_NO_EXCEPTION ;
-    rep.federate = req->federate ;
-    rep.interactionClass = req->interactionClass ;
+    std::auto_ptr<NetworkMessage> rep(NM_Factory::create(req->type)); ;   
+    rep->federate = req->federate ;
+    rep->interactionClass = req->interactionClass ;
 
-    rep.write(link); // send answer to RTIA
+    rep->send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -669,13 +653,11 @@
           req->federation,
           req->interactionClass);
 
-    NetworkMessage rep ;
-    rep.type = req->type ;
-    rep.exception = e_NO_EXCEPTION ;
-    rep.federate = req->federate ;
-    rep.interactionClass = req->interactionClass ;
+    std::auto_ptr<NetworkMessage> rep(NM_Factory::create(req->type));;    
+    rep->federate = req->federate ;
+    rep->interactionClass = req->interactionClass ;
 
-    rep.write(link); // send answer to RTIA
+    rep->send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -683,26 +665,24 @@
 void
 RTIG::processRegisterObject(Socket *link, NetworkMessage *req)
 {
-    NetworkMessage rep ;
+       std::auto_ptr<NetworkMessage> rep(NM_Factory::create(req->type));;
 
     auditServer << "Class = %u" << req->objectClass ;
-    rep.object = federations.registerObject(req->federation,
+    rep->object = federations.registerObject(req->federation,
                                              req->federate,
                                              req->objectClass,
                                              
const_cast<char*>(req->label.c_str()));
-    auditServer << ", Handle = " << rep.object ;
+    auditServer << ", Handle = " << rep->object ;
 
     D.Out(pdRegister,
           "Object \"%s\" of Federate %u has been registered under ID %u.",
-          req->label.c_str(), 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.c_str());
+    rep->federate = req->federate ;
+    rep->setLabel(req->label);
     // rep.object is set by the call of registerObject
 
-    rep.write(link); // Send answer to RTIA
+    rep->send(link); // Send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -745,9 +725,7 @@
     free(ValueArray);
 
     // Building answer (Network Message re)
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::UPDATE_ATTRIBUTE_VALUES ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Update_Attribute_Values rep ;
     rep.federate = req->federate ;
     rep.object = req->object ;
     rep.date = req->date ;
@@ -756,7 +734,7 @@
     rep.label=req->label ;
     rep.tag=req->tag;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -802,9 +780,7 @@
     D.Out(pdDebug, "Interaction %d parameters update completed",
           req->interactionClass);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::SEND_INTERACTION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Send_Interaction rep ;    
     rep.federate = req->federate ;
     rep.interactionClass = req->interactionClass ;
     rep.handleArraySize = 0 ;
@@ -812,7 +788,7 @@
     rep.label=req->label;
     rep.tag=req->tag;
     G.Out(pdGendoc,"processSendInteraction===>write");
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 
     G.Out(pdGendoc,"exit RTIG::processSendInteraction");
     G.Out(pdGendoc,"END ** SEND INTERACTION SERVICE **");
@@ -845,13 +821,11 @@
     D.Out(pdRegister, "Object # %u of Federation %u has been deleted.",
           req->object, req->federation);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DELETE_OBJECT ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Delete_Object rep ;    
     rep.federate = req->federate ;
     rep.object = req->object ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
     
     G.Out(pdGendoc,"exit RTIG::processDeleteObject");
     G.Out(pdGendoc,"END ** DELETE OBJECT INSTANCE **");
@@ -875,13 +849,11 @@
     D.Out(pdDebug, "Owner of Attribute %u of Object %u .",
           req->handleArray[0], req->object);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::QUERY_ATTRIBUTE_OWNERSHIP ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Query_Attribute_Ownership rep ;    
     rep.federate = req->federate ;
     rep.object = req->object ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -889,7 +861,7 @@
 void
 RTIG::processAttributeOwnedByFederate(Socket *link, NetworkMessage *req)
 {
-    NetworkMessage rep ;
+    NM_Is_Attribute_Owned_By_Federate rep ;
 
     D.Out(pdDebug, "Owner of Attribute %u of Object %u .",
           req->handleArray[0], req->object);
@@ -907,12 +879,10 @@
     D.Out(pdDebug, "Owner of Attribute %u of Object %u .",
           req->handleArray[0], req->object);
 
-    rep.type = NetworkMessage::IS_ATTRIBUTE_OWNED_BY_FEDERATE ;
-    rep.exception = e_NO_EXCEPTION ;
     rep.federate = req->federate ;
     rep.object = req->object ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -933,14 +903,12 @@
           "divestiture of object %u.",
           req->federate, req->federation, req->object);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Negotiated_Attribute_Ownership_Divestiture rep ;    
     rep.federate = req->federate ;
     rep.object = req->object ;
     rep.handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -962,14 +930,12 @@
           "of object %u.",
           req->federate, req->federation, req->object);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_IF_AVAILABLE ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Attribute_Ownership_Acquisition_If_Available rep ;   
     rep.federate = req->federate ;
     rep.object = req->object ;
     rep.handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -991,14 +957,12 @@
           "of object %u.",
           req->federate, req->federation, req->object);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::UNCONDITIONAL_ATTRIBUTE_OWNERSHIP_DIVESTITURE ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Unconditional_Attribute_Ownership_Divestiture rep ;    
     rep.federate = req->federate ;
     rep.object = req->object ;
     rep.handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -1020,14 +984,12 @@
           "Federate %u of Federation %u ownership acquisition of object %u.",
           req->federate, req->federation, req->object);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Attribute_Ownership_Acquisition rep ;    
     rep.federate = req->federate ;
     rep.object = req->object ;
     rep.handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -1048,14 +1010,12 @@
           "divestiture of object %u.",
           req->federate, req->federation, req->object);
 
-    NetworkMessage rep ;
-    rep.type = 
NetworkMessage::CANCEL_NEGOTIATED_ATTRIBUTE_OWNERSHIP_DIVESTITURE ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Cancel_Negotiated_Attribute_Ownership_Divestiture rep ;    
     rep.federate = req->federate ;
     rep.object = req->object ;
     rep.handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -1077,19 +1037,17 @@
           "of object %u.",
           req->federate, req->federation, req->object);
 
-    NetworkMessage rep ;
+    NM_Attribute_Ownership_Release_Response rep ;
     rep.handleArraySize = attributes->size();
 
     for (unsigned int i = 0 ; i < attributes->size(); i++) {
         rep.handleArray[i] = attributes->getHandle(i);
     }
 
-    rep.type = NetworkMessage::ATTRIBUTE_OWNERSHIP_RELEASE_RESPONSE ;
-    rep.exception = e_NO_EXCEPTION ;
     rep.federate = req->federate ;
     rep.object = req->object ;
 
-    rep.write(link); // Send answer to RTIA
+    rep.send(link); // Send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -1110,14 +1068,12 @@
           "Federate %u of Federation %u release response of object %u.",
           req->federate, req->federation, req->object);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::CANCEL_ATTRIBUTE_OWNERSHIP_ACQUISITION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_Cancel_Attribute_Ownership_Acquisition rep ;    
     rep.federate = req->federate ;
     rep.object = req->object ;
     rep.handleArraySize = 0 ;
 
-    rep.write(link); // send answer to RTIA
+    rep.send(link); // send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -1127,7 +1083,7 @@
 {
     // TODO: audit...
 
-    NetworkMessage rep ;
+    NM_DDM_Create_Region rep ;
 
     rep.region = federations.createRegion(req->federation,
                                            req->federate,
@@ -1138,10 +1094,8 @@
                << req->federation << " creates region " << rep.region
                << endl ;
 
-    rep.type = NetworkMessage::DDM_CREATE_REGION ;
-    rep.exception = e_NO_EXCEPTION ;
     rep.federate = req->federate ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1156,12 +1110,9 @@
                << req->federation << " modifies region " << req->region
                << endl ;
 
-    NetworkMessage rep ;
-
-    rep.type = NetworkMessage::DDM_MODIFY_REGION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Modify_Region rep ;
     rep.federate = req->federate ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1177,12 +1128,10 @@
                << req->federation << " deletes region " << req->region
                << endl ;
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DDM_DELETE_REGION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Delete_Region rep ;    
     rep.federate = req->federate ;
     rep.region = req->region ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1200,11 +1149,9 @@
                                 req->region, req->handleArraySize,
                                 req->handleArray);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DDM_ASSOCIATE_REGION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Associate_Region rep ;    
     rep.federate = req->federate ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1221,11 +1168,9 @@
                << req->federation << " associates region " << req->region
                << " from object " << req->object << endl ;
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DDM_UNASSOCIATE_REGION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Unassociate_Region rep ;
     rep.federate = req->federate ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1242,13 +1187,11 @@
                                       req->objectClass, req->region,
                                       req->handleArraySize, req->handleArray);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DDM_SUBSCRIBE_ATTRIBUTES ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Subscribe_Attributes rep ;    
     rep.federate = req->federate ;
     rep.objectClass = req->objectClass ;
     rep.handleArraySize = 0 ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1264,11 +1207,9 @@
     federations.unsubscribeAttributesWR(req->federation, req->federate,
                                         req->objectClass, req->region);
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DDM_UNSUBSCRIBE_ATTRIBUTES ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Unsubscribe_Attributes rep ;
     rep.federate = req->federate ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1285,11 +1226,9 @@
                << req->federation << " subscribes with region " << req->region
                << " to interaction class " << req->interactionClass << endl ;
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DDM_SUBSCRIBE_INTERACTION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Subscribe_Interaction rep ;    
     rep.federate = req->federate ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1306,11 +1245,9 @@
                << req->federation << " unsubscribes with region " << 
req->region
                << " from interaction class " << req->interactionClass << endl ;
 
-    NetworkMessage rep ;
-    rep.type = NetworkMessage::DDM_UNSUBSCRIBE_INTERACTION ;
-    rep.exception = e_NO_EXCEPTION ;
+    NM_DDM_Unsubscribe_Interaction rep ;
     rep.federate = req->federate ;
-    rep.write(link);
+    rep.send(link);
 }
 
 // ----------------------------------------------------------------------------
@@ -1318,7 +1255,7 @@
 void
 RTIG::processRegisterObjectWithRegion(Socket *link, NetworkMessage *req)
 {
-    NetworkMessage rep ;
+       std::auto_ptr<NetworkMessage> rep(NM_Factory::create(req->type));
     // FIXME bug #9869
     // When we were passed a set of region
     // we should register object for each region  
@@ -1327,7 +1264,7 @@
     //     - req->region  (coming from NetworkMessage::region)
     //     - req->regions (coming from BasicMessage::regions)
     // would be nice to sort those thing out.
-    rep.object = federations.registerObjectWithRegion(req->federation,
+    rep->object = federations.registerObjectWithRegion(req->federation,
                                                      req->federate,
                                                      req->objectClass,
                                                      
const_cast<char*>(req->label.c_str()),
@@ -1337,14 +1274,10 @@
        
     D.Out(pdRegister,
           "Object \"%s\" of Federate %u has been registered under ID %u.",
-          req->label.c_str(), req->federate, rep.object);
-
-    rep.type = NetworkMessage::DDM_REGISTER_OBJECT ;
-    rep.type = req->type ;
-    rep.exception = e_NO_EXCEPTION ;
-    rep.federate = req->federate ;
+          req->label.c_str(), req->federate, rep->object);
 
-    rep.write(link); // Send answer to RTIA
+    rep->federate = req->federate ;
+    rep->send(link); // Send answer to RTIA
 }
 
 // ----------------------------------------------------------------------------
@@ -1352,7 +1285,7 @@
 void
 RTIG::processRequestObjectAttributeValueUpdate(Socket *link, NetworkMessage 
*request)
 {
-    NetworkMessage answer ;
+    NM_Request_Object_Attribute_Value_Update answer ;
     Handle federateOwner ;  // federate owner of the object
     G.Out(pdGendoc,"enter RTIG::processRequestObjectAttributeValueUpdate");
     G.Out(pdGendoc,"BEGIN ** REQUEST OBJECT ATTRIBUTE VALUE UPDATE **");
@@ -1390,11 +1323,11 @@
     answer.federate = request->federate ;
     answer.object = request->object ;
 
-    answer.write(link); // Send answer to RTIA
+    answer.send(link); // Send answer to RTIA
     G.Out(pdGendoc,"exit  RTIG::processRequestObjectAttributeValueUpdate");
     G.Out(pdGendoc,"END   ** REQUEST OBJECT ATTRIBUTE VALUE UPDATE **");
 }
 
 }} // namespace certi/rtig
 
-// $Id: RTIG_processing.cc,v 3.56.2.1 2008/03/18 15:55:58 erk Exp $
+// $Id: RTIG_processing.cc,v 3.56.2.2 2008/04/10 11:35:56 erk Exp $

Index: RTIG/Federation.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.cc,v
retrieving revision 3.80.2.1
retrieving revision 3.80.2.2
diff -u -b -r3.80.2.1 -r3.80.2.2
--- RTIG/Federation.cc  18 Mar 2008 15:55:58 -0000      3.80.2.1
+++ RTIG/Federation.cc  10 Apr 2008 11:35:56 -0000      3.80.2.2
@@ -18,11 +18,12 @@
 // 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.2.1 2008/03/18 15:55:58 erk Exp $
+// $Id: Federation.cc,v 3.80.2.2 2008/04/10 11:35:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
 #include "Federation.hh"
+#include "NM_Classes.hh"
 #include <sstream>
 #include <cassert>
 
@@ -439,39 +440,37 @@
     // Send, to the newly added federate, a Null message from each regulating
     // federate (i) with their logical time h(i). This permits to calculate
     // its LBTS.
-    NetworkMessage message ;
+    NM_Message_Null nullMessage;
+    NM_Announce_Synchronization_Point ASPMessage; 
     try {
        std::vector<LBTS::FederateClock> v ;
        regulators.get(v);
 
         for (unsigned int i = 0 ; i < v.size(); ++i) {
-            message.type = NetworkMessage::MESSAGE_NULL ;
-            message.federation = handle ;
-           message.federate = v[i].first ;
-           message.date = v[i].second ;
-
+            nullMessage.federation = handle ;
+               nullMessage.federate = v[i].first ;
+               nullMessage.date = v[i].second ;
             D.Out(pdTerm,
                  "Sending NULL message(type %d) from %d to new federate.",
-                  message.type, message.federate);
+                  nullMessage.type, nullMessage.federate);
 
-            message.write(tcp_link);
+            nullMessage.send(tcp_link);
         }
 
         // If federation is synchronizing, put federate in same state.
         if (isSynchronizing()) {
-            message.type = NetworkMessage::ANNOUNCE_SYNCHRONIZATION_POINT ;
-            message.federate = federate_handle ;
-            message.federation = handle ;
+            ASPMessage.federate = federate_handle ;
+            ASPMessage.federation = handle ;
 
             std::map<const char *, const char *>::const_iterator i ;
             i = synchronizationLabels.begin();
             for (; i != synchronizationLabels.end(); i++) {
-                message.setLabel((*i).first);
-                message.setTag((*i).second);
+                ASPMessage.setLabel((*i).first);
+                ASPMessage.setTag((*i).second);
                 D.Out(pdTerm, "Sending synchronization message %s (type %d)"
-                      " to the new Federate.", (*i).first, message.type);
+                      " to the new Federate.", (*i).first, ASPMessage.type);
 
-                message.write(tcp_link);
+                ASPMessage.send(tcp_link);
                 federates.back().addSynchronizationLabel((*i).first);
             }
         }
@@ -558,7 +557,7 @@
 #else
                 socket = server->getSocketLink(i->getHandle());
 #endif
-                msg->write(socket);
+                msg->send(socket);
             }
             catch (RTIinternalError &e) {
                 D[pdExcept] << "Reference to a killed Federate while "
@@ -606,7 +605,7 @@
 #else
                             socket = server->getSocketLink(i->getHandle());
 #endif
-                            msg->write(socket);
+                            msg->send(socket);
                             }
                         catch (RTIinternalError &e)
                             {
@@ -1152,7 +1151,7 @@
     else
        G.Out(pdGendoc,"             =====> send message R_F_R_F to RTIA");
 
-    msg->write(socket);
+    msg->send(socket);
     delete msg ;
 
     // Reading file failed: not restoring !
@@ -1190,8 +1189,9 @@
         // send message.
         socket = server->getSocketLink(msg->federate);
         G.Out(pdGendoc,"             =====> send message I_F_R to federate 
%d",msg->federate);
-        msg->write(socket);
+        msg->send(socket);
     }
+    delete msg;
     G.Out(pdGendoc,"exit  Federation::requestFederationRestore");
 }
 
@@ -2277,7 +2277,7 @@
         throw (ObjectNotKnown)
 {
 FederateHandle theOwnerHandle ;
-NetworkMessage mess ;
+NM_Provide_Attribute_Value_Update mess ;
 
     G.Out(pdGendoc,"enter Federation::requestObjectOwner");
 
@@ -2285,7 +2285,6 @@
     theOwnerHandle = root->requestObjectOwner(theFederateHandle,theObject) ;
 
     // Send a PROVIDE_ATTRIBUTE_VALUE_UPDATE to the owner
-    mess.type = NetworkMessage::PROVIDE_ATTRIBUTE_VALUE_UPDATE ;
     mess.federate = theFederateHandle ;
     mess.object = theObject ;
     mess.handleArraySize = theListSize ;
@@ -2294,7 +2293,7 @@
         mess.handleArray[i] = theAttributeList[i] ;
         }
 
-     mess.write(server->getSocketLink(theOwnerHandle));
+     mess.send(server->getSocketLink(theOwnerHandle));
  
    
     G.Out(pdGendoc,"exit  Federation::requestObjectOwner");
@@ -2304,5 +2303,5 @@
 
 }} // namespace certi/rtig
 
-// $Id: Federation.cc,v 3.80.2.1 2008/03/18 15:55:58 erk Exp $
+// $Id: Federation.cc,v 3.80.2.2 2008/04/10 11:35:56 erk Exp $
 

Index: libCERTI/NetworkMessage.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage.hh,v
retrieving revision 3.30.2.5
retrieving revision 3.30.2.6
diff -u -b -r3.30.2.5 -r3.30.2.6
--- libCERTI/NetworkMessage.hh  9 Apr 2008 14:16:30 -0000       3.30.2.5
+++ libCERTI/NetworkMessage.hh  10 Apr 2008 11:35:56 -0000      3.30.2.6
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: NetworkMessage.hh,v 3.30.2.5 2008/04/09 14:16:30 erk Exp $
+// $Id: NetworkMessage.hh,v 3.30.2.6 2008/04/10 11:35:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef CERTI_NETWORK_MESSAGE_HH
@@ -149,8 +149,8 @@
        virtual void serialize();
        virtual void deserialize();
        
-       void send(Socket* socket);
-       void receive(Socket* socket);
+       void send(Socket* socket) throw (NetworkError, NetworkSignal);
+       void receive(Socket* socket) throw (NetworkError, NetworkSignal);
        
        // Parameter and Attribute Management
        // Remove the Parameter of rank 'Rank' in the ParamArray and its value 
in
@@ -166,13 +166,6 @@
        // See RemoveParameter for explanations.
        void removeAttribute(UShort Rank);
 
-       // Read and Write NetworkMessage Objects to and from Socket objects.
-       void write(Socket *Socket)
-       throw (NetworkError, NetworkSignal);
-
-       void read(Socket *Socket)
-       throw (NetworkError, NetworkSignal);
-
        // Value Array Management
 
        // setValue : Value and its length are stored into ValueArray[Rank]
@@ -294,6 +287,9 @@
         */
        std::string exceptionReason;    
 
+       /* used by some sub-classes */
+       int32_t attribute;
+
 protected:
        /** 
         * The message name.
@@ -301,10 +297,10 @@
         * network message constructor
         */
        std::string name;
-       
-private:       
        // ValueArray is now a ValueLengthPair
        ValueLengthPair ValueArray[MAX_ATTRIBUTES_PER_CLASS] ;
+       
+private:
 };
 
 // BUG: FIXME this is used by SocketMC and should
@@ -315,4 +311,4 @@
 
 #endif // CERTI_NETWORK_MESSAGE_HH
 
-// $Id: NetworkMessage.hh,v 3.30.2.5 2008/04/09 14:16:30 erk Exp $
+// $Id: NetworkMessage.hh,v 3.30.2.6 2008/04/10 11:35:56 erk Exp $

Index: libCERTI/NetworkMessage_RW.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage_RW.cc,v
retrieving revision 3.45.2.4
retrieving revision 3.45.2.5
diff -u -b -r3.45.2.4 -r3.45.2.5
--- libCERTI/NetworkMessage_RW.cc       9 Apr 2008 14:16:32 -0000       3.45.2.4
+++ libCERTI/NetworkMessage_RW.cc       10 Apr 2008 11:35:56 -0000      3.45.2.5
@@ -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_RW.cc,v 3.45.2.4 2008/04/09 14:16:32 erk Exp $
+// $Id: NetworkMessage_RW.cc,v 3.45.2.5 2008/04/10 11:35:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -67,7 +67,6 @@
         * ALL Network Messages will contain the following
         */     
        D[pdDebug] << "deserialize <" << getName().c_str()<<">"<<endl;
-       D.Out(pdDebug, "deserialize <%s>", getName().c_str());
        /* deserialize common part */
        type        = 
static_cast<certi::NetworkMessage::Type>(msgBuf.read_int32());
        exception   = static_cast<certi::TypeException>(msgBuf.read_int32());
@@ -91,8 +90,10 @@
 } /* end of deserialize */
 
 void
-NetworkMessage::send(Socket *socket) {
+NetworkMessage::send(Socket *socket) throw (NetworkError, NetworkSignal) {
        G.Out(pdGendoc,"enter NetworkMessage::send");
+       /* 0- reset send buffer */
+       msgBuf.reset();
        /* 1- serialize the message
         * This is a polymorphic call 
         * which may specialized in a daughter class  
@@ -108,8 +109,13 @@
 } /* end of send */
 
 void
-NetworkMessage::receive(Socket* socket) {
+NetworkMessage::receive(Socket* socket) throw (NetworkError, NetworkSignal) {
        G.Out(pdGendoc,"enter NetworkMessage::receive");
+       /* 0- Reset receive buffer */
+       /* FIXME this reset may not be necessary since we 
+        * do raw-receive + assume-size
+        */
+       msgBuf.reset();
        /* 1- Read 'reserved bytes' header from socket */
        D.Out(pdDebug,"reading %d bytes for header",msgBuf.reservedBytes);
        socket->receive(msgBuf(0), msgBuf.reservedBytes);       
@@ -130,4 +136,4 @@
 
 } // namespace certi
 
-// $Id: NetworkMessage_RW.cc,v 3.45.2.4 2008/04/09 14:16:32 erk Exp $
+// $Id: NetworkMessage_RW.cc,v 3.45.2.5 2008/04/10 11:35:56 erk Exp $

Index: libCERTI/NM_Classes.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/Attic/NM_Classes.hh,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -b -r1.1.2.6 -r1.1.2.7
--- libCERTI/NM_Classes.hh      9 Apr 2008 14:16:31 -0000       1.1.2.6
+++ libCERTI/NM_Classes.hh      10 Apr 2008 11:35:56 -0000      1.1.2.7
@@ -133,8 +133,8 @@
        /* specific Getter/Setter */
 protected:
        /* specific field */      
-       std::string federationName ;
-       std::string FEDid ;
+//     std::string federationName ;
+//     std::string FEDid ;
 private:
 };
 
@@ -151,7 +151,7 @@
        /* specific Getter/Setter */
 protected:
        /* specific field */     
-       std::string federationName;
+//     std::string federationName;
 private:
 };
 
@@ -168,12 +168,12 @@
        /* specific Getter/Setter */
 protected:
        /* specific field */
-       int32_t  numberOfRegulators;
-       uint32_t multicastAddress;
-       uint32_t bestEffortAddress;
-       uint32_t bestEffortPeer;
-       std::string federationName;
-       std::string federateName;
+//     int32_t  numberOfRegulators;
+//     uint32_t multicastAddress;
+//     uint32_t bestEffortAddress;
+//     uint32_t bestEffortPeer;
+//     std::string federationName;
+//     std::string federateName;
 private:
 };
 
@@ -683,7 +683,7 @@
        /* specific Getter/Setter */
 protected:
        /* specific field */
-       ObjectHandle object;
+//     ObjectHandle object;
 private:
 };
 
@@ -746,8 +746,8 @@
        /* specific Getter/Setter */
 protected:
        /* specific field */
-       InteractionClassHandle interactionClass;        
-       ValueLengthPair ValueArray[MAX_ATTRIBUTES_PER_CLASS];
+//     InteractionClassHandle interactionClass;        
+//     ValueLengthPair ValueArray[MAX_ATTRIBUTES_PER_CLASS];
 private:
 };
 
@@ -889,7 +889,6 @@
        void setObject(ObjectHandle object) {this->object=object;};
 protected:
        /* specific field */
-       ObjectHandle object;
 private:
 };
 
@@ -906,8 +905,8 @@
        /* specific Getter/Setter */
 protected:
        /* specific field */
-       ObjectHandle    object;
-       AttributeHandle attribute;
+//     ObjectHandle    object;
+//     AttributeHandle attribute;
 private:
 };
 
@@ -1152,9 +1151,9 @@
        void setRegion(SpaceHandle region) {this->region=region;};
 protected:
        /* specific field */
-       SpaceHandle space;
-       int32_t nbExtents;
-       int32_t region;
+//     SpaceHandle space;
+//     int32_t nbExtents;
+//     int32_t region;
 private:
 };
 
@@ -1192,7 +1191,7 @@
        void setRegion(SpaceHandle region) {this->region=region;};
 protected:
        /* specific field */
-       int32_t region; 
+//     int32_t region; 
 private:
 };
 
@@ -1329,11 +1328,11 @@
 /*<END>---------- Provide_Attribute_Value_Update ------------<END>*/
 
 /*<BEGIN>---------- Get_Fed_File ------------<BEGIN>*/
-class CERTI_EXPORT NM_Get_Fed_File : public NetworkMessage {
+class CERTI_EXPORT NM_Get_FED_File : public NetworkMessage {
 public:
        typedef NetworkMessage Super;
-       NM_Get_Fed_File();
-       virtual ~NM_Get_Fed_File();
+       NM_Get_FED_File();
+       virtual ~NM_Get_FED_File();
        virtual void serialize();
        virtual void deserialize();
        /* specific Getter/Setter */
@@ -1346,7 +1345,7 @@
        std::string getFEDLine() {return line;};
 protected:
        /* specific field */
-       std::string FEDid;
+//     std::string FEDid;
        bool lineFollows;
        std::string line;
 private:

Index: libCERTI/ObjectClassBroadcastList.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClassBroadcastList.cc,v
retrieving revision 3.18.2.1
retrieving revision 3.18.2.2
diff -u -b -r3.18.2.1 -r3.18.2.2
--- libCERTI/ObjectClassBroadcastList.cc        18 Mar 2008 15:55:55 -0000      
3.18.2.1
+++ libCERTI/ObjectClassBroadcastList.cc        10 Apr 2008 11:35:56 -0000      
3.18.2.2
@@ -19,13 +19,14 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: ObjectClassBroadcastList.cc,v 3.18.2.1 2008/03/18 15:55:55 erk Exp $
+// $Id: ObjectClassBroadcastList.cc,v 3.18.2.2 2008/04/10 11:35:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 
 
 #include "ObjectClassBroadcastList.hh"
 #include "PrettyDebug.hh"
+#include "NM_Classes.hh"
 
 using std::list ;
 
@@ -63,8 +64,7 @@
         throw RTIinternalError("Bad Message type in Broadcast's AdaptMsg.");
 
     // Copy static informations.
-    NetworkMessage *reducedMessage = new NetworkMessage ;
-    reducedMessage->type = message->type ;
+    NetworkMessage *reducedMessage = NM_Factory::create(message->type);    
     reducedMessage->exception = message->exception ;
     reducedMessage->federation = message->federation ;
     reducedMessage->federate = message->federate ;
@@ -250,7 +250,7 @@
                   "Broadcasting message to Federate %d.", (*i)->Federate);
             try {
                 socket = server->getSocketLink((*i)->Federate);
-                message->write(socket);
+                message->send(socket);
             }
             catch (RTIinternalError &e) {
                 D.Out(pdExcept,
@@ -356,7 +356,7 @@
                 socket = server->getSocketLink((*i)->Federate);
 #endif
                 G.Out(pdGendoc,"                                 
sendPendingRAVMessage=====> write");
-                currentMessage->write(socket);
+                currentMessage->send(socket);
             }
             catch (RTIinternalError &e) {
                 D.Out(pdExcept,
@@ -391,4 +391,4 @@
 
 } // namespace certi
 
-// $Id: ObjectClassBroadcastList.cc,v 3.18.2.1 2008/03/18 15:55:55 erk Exp $
+// $Id: ObjectClassBroadcastList.cc,v 3.18.2.2 2008/04/10 11:35:56 erk Exp $

Index: libCERTI/InteractionBroadcastList.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/InteractionBroadcastList.cc,v
retrieving revision 3.11
retrieving revision 3.11.2.1
diff -u -b -r3.11 -r3.11.2.1
--- libCERTI/InteractionBroadcastList.cc        9 Aug 2007 09:22:45 -0000       
3.11
+++ libCERTI/InteractionBroadcastList.cc        10 Apr 2008 11:35:56 -0000      
3.11.2.1
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: InteractionBroadcastList.cc,v 3.11 2007/08/09 09:22:45 rousse Exp $
+// $Id: InteractionBroadcastList.cc,v 3.11.2.1 2008/04/10 11:35:56 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -97,7 +97,7 @@
 InteractionBroadcastList::clear()
 {
     delete message ;
-    message = 0 ;
+    message = NULL ;
 
     while (!lines.empty()) {
         delete lines.front();
@@ -153,7 +153,7 @@
 
                 G.Out(pdGendoc,"sendPendingMessage===>write");
 
-                message->write(socket);
+                message->send(socket);
             }
             catch (RTIinternalError &e) {
                 D.Out(pdExcept,
@@ -177,4 +177,4 @@
 
 } // namespace certi
 
-// $Id: InteractionBroadcastList.cc,v 3.11 2007/08/09 09:22:45 rousse Exp $
+// $Id: InteractionBroadcastList.cc,v 3.11.2.1 2008/04/10 11:35:56 erk Exp $

Index: libCERTI/ObjectSet.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectSet.cc,v
retrieving revision 3.18.2.1
retrieving revision 3.18.2.2
diff -u -b -r3.18.2.1 -r3.18.2.2
--- libCERTI/ObjectSet.cc       18 Mar 2008 15:55:56 -0000      3.18.2.1
+++ libCERTI/ObjectSet.cc       10 Apr 2008 11:35:57 -0000      3.18.2.2
@@ -425,7 +425,7 @@
 #else
         socket = server->getSocketLink(the_federate);
 #endif
-        msg->write(socket);
+        msg->send(socket);
     }
     catch (RTIinternalError &e) {
         D.Out(pdExcept,
@@ -458,4 +458,4 @@
 }
 } // namespace certi
 
-// $Id: ObjectSet.cc,v 3.18.2.1 2008/03/18 15:55:56 erk Exp $
+// $Id: ObjectSet.cc,v 3.18.2.2 2008/04/10 11:35:57 erk Exp $

Index: libCERTI/InteractionBroadcastList.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/InteractionBroadcastList.hh,v
retrieving revision 3.7
retrieving revision 3.7.4.1
diff -u -b -r3.7 -r3.7.4.1
--- libCERTI/InteractionBroadcastList.hh        4 Apr 2005 14:51:24 -0000       
3.7
+++ libCERTI/InteractionBroadcastList.hh        10 Apr 2008 11:35:57 -0000      
3.7.4.1
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: InteractionBroadcastList.hh,v 3.7 2005/04/04 14:51:24 breholee Exp $
+// $Id: InteractionBroadcastList.hh,v 3.7.4.1 2008/04/10 11:35:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef CERTI_INTERACTION_BROADCAST_LIST_HH
@@ -55,8 +55,9 @@
     void addFederate(FederateHandle theFederate);
     void sendPendingMessage(SecurityServer *Server);
 
-    /*! The Message to be broadcast. This message must be allocated before
-      calling the constructor of the class, be is deleted by the destructor.
+    /** 
+     * The Message to be broadcasted. This message must be allocated before
+     * calling the constructor of the class, be is deleted by the destructor.
     */
     NetworkMessage *message ;
 
@@ -70,4 +71,4 @@
 
 #endif // CERTI_INTERACTION_BROADCAST_LIST_HH
 
-// $Id: InteractionBroadcastList.hh,v 3.7 2005/04/04 14:51:24 breholee Exp $
+// $Id: InteractionBroadcastList.hh,v 3.7.4.1 2008/04/10 11:35:57 erk Exp $

Index: libCERTI/NM_Classes.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Attic/NM_Classes.cc,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -b -r1.1.2.6 -r1.1.2.7
--- libCERTI/NM_Classes.cc      9 Apr 2008 14:16:33 -0000       1.1.2.6
+++ libCERTI/NM_Classes.cc      10 Apr 2008 11:35:57 -0000      1.1.2.7
@@ -278,7 +278,7 @@
                msg = new NM_Provide_Attribute_Value_Update(); 
                break;
        case NetworkMessage::GET_FED_FILE:
-               msg = new NM_Get_Fed_File(); 
+               msg = new NM_Get_FED_File(); 
                break;
        case NetworkMessage::LAST:
                throw RTIinternalError("LAST message type should not be 
used!!");
@@ -1594,15 +1594,15 @@
 }
 /*<END>---------- Provide_Attribute_Value_Update ------------<END>*/
 
-/*<BEGIN>---------- Get_Fed_File ------------<BEGIN>*/
-NM_Get_Fed_File::NM_Get_Fed_File() {
+/*<BEGIN>---------- Get_FED_File ------------<BEGIN>*/
+NM_Get_FED_File::NM_Get_FED_File() {
        this->name = "GET_FED_FILE";
        this->type = NetworkMessage::GET_FED_FILE;
        /* specific field init */
 }
-NM_Get_Fed_File::~NM_Get_Fed_File() {
+NM_Get_FED_File::~NM_Get_FED_File() {
 }
-void NM_Get_Fed_File::serialize() {
+void NM_Get_FED_File::serialize() {
        /* call mother class */      
        Super::serialize(); 
        /* specific code (if any) goes here */
@@ -1612,7 +1612,7 @@
                msgBuf.write_string(line);
        }
 } /* end of serialize */ 
-void NM_Get_Fed_File::deserialize() {
+void NM_Get_FED_File::deserialize() {
        /* call mother class */      
        Super::deserialize(); 
        /* specific code (if any) goes here */
@@ -1622,7 +1622,7 @@
                line = msgBuf.read_string();
        }
 } /* end of deserialize */
-/*<END>---------- Get_Fed_File ------------<END>*/
+/*<END>---------- Get_FED_File ------------<END>*/
 
 /*<BEGIN>---------- Last ------------<BEGIN>*/
 NM_Last::NM_Last() {

Index: libCERTI/Interaction.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Interaction.cc,v
retrieving revision 3.35.2.1
retrieving revision 3.35.2.2
diff -u -b -r3.35.2.1 -r3.35.2.2
--- libCERTI/Interaction.cc     18 Mar 2008 15:55:56 -0000      3.35.2.1
+++ libCERTI/Interaction.cc     10 Apr 2008 11:35:57 -0000      3.35.2.2
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: Interaction.cc,v 3.35.2.1 2008/03/18 15:55:56 erk Exp $
+// $Id: Interaction.cc,v 3.35.2.2 2008/04/10 11:35:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -27,6 +27,7 @@
 #include "Interaction.hh"
 #include "InteractionBroadcastList.hh"
 #include "PrettyDebug.hh"
+#include "NM_Classes.hh"
 
 #include <iostream>
 #include <sstream>
@@ -407,8 +408,7 @@
     // Prepare and Broadcast message for this class
     InteractionBroadcastList *ibList = NULL ;
     if (server != NULL) {
-        NetworkMessage *answer = new NetworkMessage ;
-        answer->type = NetworkMessage::RECEIVE_INTERACTION ;
+        NetworkMessage *answer = 
NM_Factory::create(NetworkMessage::RECEIVE_INTERACTION) ;       
         answer->exception = e_NO_EXCEPTION ;
         answer->federation = server->federation();
         answer->federate = federate_handle ;
@@ -467,8 +467,7 @@
     // Prepare and Broadcast message for this class
     InteractionBroadcastList *ibList = NULL ;
     if (server != NULL) {
-        NetworkMessage *answer = new NetworkMessage ;
-        answer->type = NetworkMessage::RECEIVE_INTERACTION ;
+        NetworkMessage *answer = 
NM_Factory::create(NetworkMessage::RECEIVE_INTERACTION) ;        
         answer->exception = e_NO_EXCEPTION ;
         answer->federation = server->federation();
         answer->federate = federate_handle ;
@@ -553,4 +552,4 @@
 
 } // namespace certi
 
-// $Id: Interaction.cc,v 3.35.2.1 2008/03/18 15:55:56 erk Exp $
+// $Id: Interaction.cc,v 3.35.2.2 2008/04/10 11:35:57 erk Exp $

Index: libCERTI/ObjectClass.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClass.cc,v
retrieving revision 3.41.2.1
retrieving revision 3.41.2.2
diff -u -b -r3.41.2.1 -r3.41.2.2
--- libCERTI/ObjectClass.cc     18 Mar 2008 15:55:55 -0000      3.41.2.1
+++ libCERTI/ObjectClass.cc     10 Apr 2008 11:35:57 -0000      3.41.2.2
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: ObjectClass.cc,v 3.41.2.1 2008/03/18 15:55:55 erk Exp $
+// $Id: ObjectClass.cc,v 3.41.2.2 2008/04/10 11:35:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include  "Object.hh"
@@ -206,7 +206,7 @@
 #else
         socket = server->getSocketLink(theFederate);
 #endif
-        msg->write(socket);
+        msg->send(socket);
     }
     catch (RTIinternalError &e) {
         D.Out(pdExcept,
@@ -426,8 +426,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 ;
@@ -750,8 +749,7 @@
               "Object %u registered in class %u, now broadcasting...",
               the_object->getHandle(), handle);
 
-        NetworkMessage *answer = new NetworkMessage ;
-        answer->type = NetworkMessage::DISCOVER_OBJECT ;
+        NetworkMessage *answer = 
NM_Factory::create(NetworkMessage::DISCOVER_OBJECT);       
         answer->federation = server->federation();
         answer->federate = the_federate ;
         answer->exception = e_NO_EXCEPTION ;
@@ -811,7 +809,7 @@
            Socket *socket = NULL ;
            try {
                socket = server->getSocketLink(federate);
-               message.write(socket);
+               message.send(socket);
            }
            catch (RTIinternalError &e) {
                D.Out(pdExcept,
@@ -905,8 +903,7 @@
     // Prepare and Broadcast message for this class
     ObjectClassBroadcastList *ocbList = NULL ;
     if (server != NULL) {
-        NetworkMessage *answer = new NetworkMessage ;
-        answer->type = NetworkMessage::REFLECT_ATTRIBUTE_VALUES ;
+        NetworkMessage *answer = 
NM_Factory::create(NetworkMessage::REFLECT_ATTRIBUTE_VALUES);        
         answer->federation = server->federation();
         answer->federate = the_federate ;
         answer->exception = e_NO_EXCEPTION ;
@@ -970,8 +967,7 @@
     // Prepare and Broadcast message for this class
     ObjectClassBroadcastList *ocbList = NULL ;
     if (server != NULL) {
-        NetworkMessage *answer = new NetworkMessage ;
-        answer->type = NetworkMessage::REFLECT_ATTRIBUTE_VALUES ;
+        NetworkMessage *answer = 
NM_Factory::create(NetworkMessage::REFLECT_ATTRIBUTE_VALUES) ;      
         answer->federation = server->federation();
         answer->federate = the_federate ;
         answer->exception = e_NO_EXCEPTION ;
@@ -1057,7 +1053,7 @@
     FederateHandle NewOwner ;
 
     if (server != NULL) {
-        NetworkMessage *AnswerAssumption = new NetworkMessage ;
+        NetworkMessage *AnswerAssumption = 
NM_Factory::create(NetworkMessage::REQUEST_ATTRIBUTE_OWNERSHIP_ASSUMPTION) ;
         NetworkMessage AnswerDivestiture;
 
         AnswerAssumption->handleArraySize = theListSize ;
@@ -1127,7 +1123,6 @@
         }
 
         if (compteur_assumption !=0) {
-            AnswerAssumption->type = 
NetworkMessage::REQUEST_ATTRIBUTE_OWNERSHIP_ASSUMPTION ;
             AnswerAssumption->federation = server->federation();
             AnswerAssumption->federate = theFederateHandle ;
             AnswerAssumption->exception = e_NO_EXCEPTION ;
@@ -1209,16 +1204,13 @@
                 throw AttributeAlreadyBeingAcquired("");
         }
 
-        NetworkMessage *Answer_notification = new NetworkMessage ;
-        Answer_notification->type =
-            NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_NOTIFICATION ;
+        NetworkMessage *Answer_notification = 
NM_Factory::create(NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_NOTIFICATION);
        
         Answer_notification->federation = server->federation();
         Answer_notification->federate = the_federate ;
         Answer_notification->exception = e_NO_EXCEPTION ;
         Answer_notification->object = the_object ;
 
-        NetworkMessage *Answer_unavailable = new NetworkMessage ;
-        Answer_unavailable->type = 
NetworkMessage::ATTRIBUTE_OWNERSHIP_UNAVAILABLE ;
+        NetworkMessage *Answer_unavailable = 
NM_Factory::create(NetworkMessage::ATTRIBUTE_OWNERSHIP_UNAVAILABLE) ;        
         Answer_unavailable->federation = server->federation();
         Answer_unavailable->federate = the_federate ;
         Answer_unavailable->exception = e_NO_EXCEPTION ;
@@ -1335,11 +1327,11 @@
 
     int compteur_assumption = 0 ;
     int compteur_acquisition = 0 ;
-    NetworkMessage *AnswerAssumption = NULL ;
+    NM_Request_Attribute_Ownership_Assumption *AnswerAssumption = NULL ;
     ObjectClassBroadcastList *List = NULL ;
     FederateHandle NewOwner ;
     if (server != NULL) {
-        AnswerAssumption = new NetworkMessage ;
+        AnswerAssumption = new NM_Request_Attribute_Ownership_Assumption();
         AnswerAssumption->handleArraySize = theListSize ;
         CDiffusion *diffusionAcquisition = new CDiffusion();
 
@@ -1474,9 +1466,8 @@
             throw ObjectClassNotPublished("");
         }
 
-        NetworkMessage *AnswerNotification = new NetworkMessage ;
-        AnswerNotification->type =
-            NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_NOTIFICATION ;
+        NetworkMessage *AnswerNotification = 
NM_Factory::create(NetworkMessage::ATTRIBUTE_OWNERSHIP_ACQUISITION_NOTIFICATION);
+
         AnswerNotification->federation = server->federation();
         AnswerNotification->federate = theFederateHandle ;
         AnswerNotification->exception = e_NO_EXCEPTION ;
@@ -1698,9 +1689,7 @@
                 throw AttributeAcquisitionWasNotRequested("");
         }
 
-        NetworkMessage *answer_confirmation = new NetworkMessage ;
-        answer_confirmation->type =
-            
NetworkMessage::CONFIRM_ATTRIBUTE_OWNERSHIP_ACQUISITION_CANCELLATION ;
+        NetworkMessage *answer_confirmation = 
NM_Factory::create(NetworkMessage::CONFIRM_ATTRIBUTE_OWNERSHIP_ACQUISITION_CANCELLATION);
                 
         answer_confirmation->federation = server->federation();
         answer_confirmation->federate = federate_handle ;
         answer_confirmation->exception = e_NO_EXCEPTION ;
@@ -1829,4 +1818,4 @@
 
 } // namespace certi
 
-// $Id: ObjectClass.cc,v 3.41.2.1 2008/03/18 15:55:55 erk Exp $
+// $Id: ObjectClass.cc,v 3.41.2.2 2008/04/10 11:35:57 erk Exp $

Index: libCERTI/NetworkMessage.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage.cc,v
retrieving revision 3.28.2.4
retrieving revision 3.28.2.5
diff -u -b -r3.28.2.4 -r3.28.2.5
--- libCERTI/NetworkMessage.cc  9 Apr 2008 14:16:32 -0000       3.28.2.4
+++ libCERTI/NetworkMessage.cc  10 Apr 2008 11:35:57 -0000      3.28.2.5
@@ -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.2.4 2008/04/09 14:16:32 erk Exp $
+// $Id: NetworkMessage.cc,v 3.28.2.5 2008/04/10 11:35:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -35,9 +35,13 @@
 
 // ----------------------------------------------------------------------------
 NetworkMessage::NetworkMessage()
-    : type(NOT_USED), exception(e_NO_EXCEPTION), isDated(false), 
isLabelled(false), isTagged(false)
+    : type(NOT_USED), 
+      exception(e_NO_EXCEPTION), 
+      isDated(false), 
+      isLabelled(false), 
+      isTagged(false)
 {
-       name = "NetworkMessage";
+       name               = "NetworkMessage (generic)";
     exceptionReason[0] = '\0' ;
     number = 0 ;
 
@@ -203,26 +207,6 @@
 }
 
 // ----------------------------------------------------------------------------
-/** read a NetworkMessage
-    First read Header and upon readHeader result read or not the Body with 
readBody
-    @param socket 
-*/
-void
-NetworkMessage::read(Socket *socket)
-    throw (NetworkError, NetworkSignal)
-{
-    receive(socket);
-}
-
-// ----------------------------------------------------------------------------
-void
-NetworkMessage::write(Socket *socket)
-    throw (NetworkError, NetworkSignal)
-{
-    send(socket);
-}
-
-// ----------------------------------------------------------------------------
 void
 NetworkMessage::setAHS(const AttributeHandle *attr, int size)
 {
@@ -246,4 +230,4 @@
 
 } // namespace certi
 
-// $Id: NetworkMessage.cc,v 3.28.2.4 2008/04/09 14:16:32 erk Exp $
+// $Id: NetworkMessage.cc,v 3.28.2.5 2008/04/10 11:35:57 erk Exp $

Index: RTIA/Communications.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/Communications.cc,v
retrieving revision 3.22.2.1
retrieving revision 3.22.2.2
diff -u -b -r3.22.2.1 -r3.22.2.2
--- RTIA/Communications.cc      18 Mar 2008 15:55:57 -0000      3.22.2.1
+++ RTIA/Communications.cc      10 Apr 2008 11:35:57 -0000      3.22.2.2
@@ -18,13 +18,14 @@
 // 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.2.1 2008/03/18 15:55:57 erk Exp $
+// $Id: Communications.cc,v 3.22.2.2 2008/04/10 11:35:57 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
 #include "Communications.hh"
 #include <assert.h>
 #include "PrettyDebug.hh"
+#include "NM_Classes.hh"
 
 #ifdef _WIN32
     #include <windows.h>
@@ -70,16 +71,14 @@
 
     // Otherwise, wait for a message with same type than expected and with
     // same federate number.
-    msg = new NetworkMessage();
-    msg->read((SecureTCPSocket *)this);
+    msg = NM_Factory::receive((SecureTCPSocket *) this);    
 
     D.Out(pdProtocol, "TCP Message of Type %d has arrived.", type_msg);
 
     while ((msg->type != type_msg) ||
            ((numeroFedere != 0) && (msg->federate != numeroFedere))) {
         waitingList.push_back(msg);
-        msg = new NetworkMessage();
-        msg->read((SecureTCPSocket *) this);
+        msg = NM_Factory::receive((SecureTCPSocket *) this);        
         D.Out(pdProtocol, "Message of Type %d has arrived.", type_msg);
     }
     
@@ -131,10 +130,8 @@
 {
     // Advertise RTIG that TCP link is being closed.
 
-    NetworkMessage msg ;
-    msg.type = NetworkMessage::CLOSE_CONNEXION ;
-    msg.write((SecureTCPSocket *) this);
-
+    NM_Close_Connexion closeMsg ;    
+    closeMsg.send((SecureTCPSocket *) this);
     SecureTCPSocket::close();
 }
 
@@ -211,15 +208,13 @@
     else if (SecureTCPSocket::isDataReady()) {
         // Datas are in TCP waiting buffer.
         // Read a message from RTIG TCP link.
-       *msg_reseau = new NetworkMessage();
-        (*msg_reseau)->read((SecureTCPSocket *) this);
+       *msg_reseau = NM_Factory::receive((SecureTCPSocket *) this);        
         n = 1 ;
     }
     else if (SocketUDP::isDataReady()) {
         // Datas are in UDP waiting buffer.
         // Read a message from RTIG UDP link.
-       *msg_reseau = new NetworkMessage();
-        (*msg_reseau)->read((SocketUDP *) this);
+       *msg_reseau = NM_Factory::receive((SocketUDP *) this);       
         n = 1 ;
     }
     else if (SocketUN::isDataReady()) {
@@ -261,14 +256,12 @@
 
         if (FD_ISSET(SecureTCPSocket::returnSocket(), &fdset)) {
             // Read a message coming from the TCP link with RTIG.
-               (*msg_reseau) = new NetworkMessage();
-            (*msg_reseau)->read((SecureTCPSocket *) this);
+               (*msg_reseau) = NM_Factory::receive((SecureTCPSocket *) this);  
          
             n = 1 ;
         }
         else if (FD_ISSET(SocketUDP::returnSocket(), &fdset)) {
             // Read a message coming from the UDP link with RTIG.
-               (*msg_reseau) = new NetworkMessage();
-               (*msg_reseau)->read((SocketUDP *) this);
+               (*msg_reseau) = NM_Factory::receive((SocketUDP *) this);        
        
             n = 1 ;
         }
         else {
@@ -316,7 +309,7 @@
 void
 Communications::sendMessage(NetworkMessage *Msg)
 {
-    Msg->write((SecureTCPSocket *) this);
+    Msg->send((SecureTCPSocket *) this);
 }
 
 // ----------------------------------------------------------------------------
@@ -335,4 +328,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: Communications.cc,v 3.22.2.1 2008/03/18 15:55:57 erk Exp $
+// $Id: Communications.cc,v 3.22.2.2 2008/04/10 11:35:57 erk Exp $




reply via email to

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