certi-cvs
[Top][All Lists]
Advanced

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

certi RTIA/FederationManagement.cc RTIA/Federat...


From: certi-cvs
Subject: certi RTIA/FederationManagement.cc RTIA/Federat...
Date: Mon, 17 Dec 2007 16:01:25 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     ROUSSELOT <rousse>      07/12/17 16:01:25

Modified files:
        RTIA           : FederationManagement.cc FederationManagement.hh 
                         RTIA_federate.cc 
        RTIG           : Federation.cc RTIG_processing.cc 
        include        : certi.hh 
        libCERTI       : Message.cc Message.hh Message_R.cc Message_W.cc 
                         NetworkMessage.cc NetworkMessage.hh 
                         NetworkMessage_RW.cc 

Log message:
        Constant MAX_FEDERATION_NAME_LENGTH has been deleted, so any federation 
name is allowed

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/FederationManagement.cc?cvsroot=certi&r1=3.37&r2=3.38
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/FederationManagement.hh?cvsroot=certi&r1=3.20&r2=3.21
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&r1=3.56&r2=3.57
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.cc?cvsroot=certi&r1=3.73&r2=3.74
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&r1=3.46&r2=3.47
http://cvs.savannah.gnu.org/viewcvs/certi/include/certi.hh?cvsroot=certi&r1=3.22&r2=3.23
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message.cc?cvsroot=certi&r1=3.42&r2=3.43
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message.hh?cvsroot=certi&r1=3.40&r2=3.41
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_R.cc?cvsroot=certi&r1=3.10&r2=3.11
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_W.cc?cvsroot=certi&r1=3.12&r2=3.13
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage.cc?cvsroot=certi&r1=3.24&r2=3.25
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage.hh?cvsroot=certi&r1=3.28&r2=3.29
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage_RW.cc?cvsroot=certi&r1=3.36&r2=3.37

Patches:
Index: RTIA/FederationManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/FederationManagement.cc,v
retrieving revision 3.37
retrieving revision 3.38
diff -u -b -r3.37 -r3.38
--- RTIA/FederationManagement.cc        11 Dec 2007 16:44:19 -0000      3.37
+++ RTIA/FederationManagement.cc        17 Dec 2007 16:01:24 -0000      3.38
@@ -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.37 2007/12/11 16:44:19 rousse Exp $
+// $Id: FederationManagement.cc,v 3.38 2007/12/17 16:01:24 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -65,7 +65,7 @@
     _est_createur_federation = false ;
     _est_membre_federation = false ;
 
-    _nom_federation[0] = 0 ;
+    _nom_federation = NULL ;
     _nom_federe[0] = 0 ;
     _FEDid = NULL ;
 }
@@ -95,6 +95,8 @@
         }
         cout << "RTIA: Federation destroyed" << endl ;
     }
+    delete _nom_federation ;
+    delete _FEDid ;
 }
 
 // ----------------------------------------------------------------------------
@@ -121,6 +123,7 @@
     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) ;
@@ -138,6 +141,7 @@
 
         if (reponse.exception == e_NO_EXCEPTION)
             {
+            _nom_federation = new char[strlen(theName)] ;
             strcpy(_nom_federation, theName);
             _numero_federation = reponse.federation ;
             _est_createur_federation = true ;
@@ -202,6 +206,7 @@
         requete.type = NetworkMessage::DESTROY_FEDERATION_EXECUTION ;
         requete.federation = _numero_federation ;
         requete.federate = federate ;
+        requete.federationName = new char[strlen(theName)+1] ;
         strcpy(requete.federationName, theName);
 
         comm->sendMessage(&requete);
@@ -210,7 +215,7 @@
                           federate);
 
         if (reponse.exception == e_NO_EXCEPTION) {
-            _nom_federation[0] = 0 ;
+            _nom_federation = NULL ;
             _numero_federation = 0 ;
             _est_createur_federation = false ;
             _fin_execution = true ;
@@ -251,6 +256,7 @@
 
     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);
 
@@ -309,7 +315,6 @@
               
             // RTIA says RTIG OK for file transfer
             requeteFED.type = NetworkMessage::GET_FED_FILE ;
-            strcpy(requeteFED.federationName, Federation);
             strcpy(requeteFED.federateName, Federate);
             requeteFED.FEDid = new char[strlen(filename)+1] ;
             strcpy(requeteFED.FEDid,filename) ;
@@ -348,11 +353,11 @@
                 file_line = NULL ;
                 // RTIA says OK to RTIG
                 requeteFED.type = NetworkMessage::GET_FED_FILE ;
-                strcpy(requeteFED.federationName, Federation);
                 strcpy(requeteFED.federateName, Federate);
                 requeteFED.number = num_line ; 
                 requeteFED.FEDid = new char[strlen(filename)+1] ;
                 strcpy(requeteFED.FEDid,filename) ; 
+
                 comm->sendMessage(&requeteFED);            
                 }
             // close working file
@@ -367,9 +372,9 @@
         // If OK, regulators number is inside the answer.
         // Then we except a NULL message from each.
         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);
@@ -943,4 +948,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: FederationManagement.cc,v 3.37 2007/12/11 16:44:19 rousse Exp $
+// $Id: FederationManagement.cc,v 3.38 2007/12/17 16:01:24 rousse Exp $

Index: RTIA/FederationManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/FederationManagement.hh,v
retrieving revision 3.20
retrieving revision 3.21
diff -u -b -r3.20 -r3.21
--- RTIA/FederationManagement.hh        11 Dec 2007 16:44:19 -0000      3.20
+++ RTIA/FederationManagement.hh        17 Dec 2007 16:01:24 -0000      3.21
@@ -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.hh,v 3.20 2007/12/11 16:44:19 rousse Exp $
+// $Id: FederationManagement.hh,v 3.21 2007/12/17 16:01:24 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIA_FEDERATION_MANAGEMENT
@@ -114,7 +114,7 @@
 
     std::list<char *> synchronizationLabels ; //!< Labels being synchronized.
 
-    char _nom_federation[MAX_FEDERATION_NAME_LENGTH] ;
+    char *_nom_federation ;
     char _nom_federe[MAX_FEDERATE_NAME_LENGTH] ;
 };
 
@@ -122,4 +122,4 @@
 
 #endif // _CERTI_RTIA_FEDERATION_MANAGEMENT
 
-// $Id: FederationManagement.hh,v 3.20 2007/12/11 16:44:19 rousse Exp $
+// $Id: FederationManagement.hh,v 3.21 2007/12/17 16:01:24 rousse Exp $

Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.56
retrieving revision 3.57
diff -u -b -r3.56 -r3.57
--- RTIA/RTIA_federate.cc       11 Dec 2007 16:44:19 -0000      3.56
+++ RTIA/RTIA_federate.cc       17 Dec 2007 16:01:24 -0000      3.57
@@ -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.56 2007/12/11 16:44:19 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.57 2007/12/17 16:01:24 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -111,6 +111,8 @@
               "type CreateFederation done.");
         // RTIA needs FEDid into the answer (rep Message) to federate
         rep.setFEDid(fm->_FEDid) ;
+        // RTIA needs federation name into the answer (rep Message) to federate
+        rep.setFederationName(req->getFederationName());
         break ;
 
       case Message::DESTROY_FEDERATION_EXECUTION:
@@ -118,6 +120,8 @@
               "Receiving Message from Federate, type DestroyFederation.");
 
         fm->destroyFederationExecution(req->getFederationName(), e);
+        // RTIA needs federation name into the answer (rep Message) to federate
+        rep.setFederationName(req->getFederationName());
         break ;
 
       case Message::JOIN_FEDERATION_EXECUTION: {
@@ -128,6 +132,8 @@
                                                       e));
           /// Set RTIA PrettyDebug federate name
           PrettyDebug::setFederateName(req->getFederateName());
+          // Set federation name for the answer message (rep)
+          rep.setFederationName(req->getFederationName());
 
           string filename = fm->_FEDid ;
           int nbcar_filename=filename.length();
@@ -1253,4 +1259,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: RTIA_federate.cc,v 3.56 2007/12/11 16:44:19 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.57 2007/12/17 16:01:24 rousse Exp $

Index: RTIG/Federation.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.cc,v
retrieving revision 3.73
retrieving revision 3.74
diff -u -b -r3.73 -r3.74
--- RTIG/Federation.cc  11 Dec 2007 17:27:42 -0000      3.73
+++ RTIG/Federation.cc  17 Dec 2007 16:01:24 -0000      3.74
@@ -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.73 2007/12/11 17:27:42 rousse Exp $
+// $Id: Federation.cc,v 3.74 2007/12/17 16:01:24 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -142,9 +142,6 @@
     if ((federation_name == 0) || (federation_handle == 0))
         throw RTIinternalError("Null init parameter in Federation creation.");
 
-    if (strlen(federation_name) > MAX_FEDERATION_NAME_LENGTH)
-        throw RTIinternalError("Federation name too long.");
-
     G.Out(pdGendoc,"enter Federation::Federation");
 
     name = strdup(federation_name);
@@ -2242,5 +2239,5 @@
 
 }} // namespace certi/rtig
 
-// $Id: Federation.cc,v 3.73 2007/12/11 17:27:42 rousse Exp $
+// $Id: Federation.cc,v 3.74 2007/12/17 16:01:24 rousse Exp $
 

Index: RTIG/RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.46
retrieving revision 3.47
diff -u -b -r3.46 -r3.47
--- RTIG/RTIG_processing.cc     11 Dec 2007 16:44:20 -0000      3.46
+++ RTIG/RTIG_processing.cc     17 Dec 2007 16:01:24 -0000      3.47
@@ -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.46 2007/12/11 16:44:20 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.47 2007/12/17 16:01:24 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -107,6 +107,7 @@
         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);
         }
 
@@ -180,6 +181,8 @@
     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.federate = num_federe ;
     rep.federation = num_federation ;
     rep.numberOfRegulators = nb_regulateurs ;
@@ -210,8 +213,8 @@
     // Send answer
     D.Out(pdTrace,"send NetworkMessage of Type %d after open \"%s\"",
           repFED.type,repFED.FEDid);
-
     G.Out(pdGendoc,"processJoinFederation====>Begin FED file transfer");
+
     repFED.write(link);
 
     if ( e ==  e_NO_EXCEPTION )  
@@ -279,8 +282,6 @@
 
     // Send answer
 
-    G.Out(pdGendoc,"processJoinFederation====>write");
-
     rep.write(link);
 
     G.Out(pdGendoc,"exit RTIG::processJoinFederation");
@@ -330,6 +331,8 @@
     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);
 
     G.Out(pdGendoc,"processDestroyFederation===>write");
 
@@ -1322,4 +1325,4 @@
 
 }} // namespace certi/rtig
 
-// $Id: RTIG_processing.cc,v 3.46 2007/12/11 16:44:20 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.47 2007/12/17 16:01:24 rousse Exp $

Index: include/certi.hh
===================================================================
RCS file: /sources/certi/certi/include/certi.hh,v
retrieving revision 3.22
retrieving revision 3.23
diff -u -b -r3.22 -r3.23
--- include/certi.hh    11 Dec 2007 16:44:20 -0000      3.22
+++ include/certi.hh    17 Dec 2007 16:01:24 -0000      3.23
@@ -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: certi.hh,v 3.22 2007/12/11 16:44:20 rousse Exp $
+// $Id: certi.hh,v 3.23 2007/12/17 16:01:24 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef CERTI_HH_INCLUDED
@@ -63,7 +63,6 @@
 // Deprecated HLA macros still in use
 #define MAX_BYTES_PER_VALUE 500
 #define MAX_FEDERATE_NAME_LENGTH 64
-#define MAX_FEDERATION_NAME_LENGTH 64
 #undef MAX_USER_TAG_LENGTH
 #define MAX_USER_TAG_LENGTH 64
 #undef MAX_ATTRIBUTES_PER_CLASS
@@ -325,4 +324,4 @@
 
 #endif // CERTI_HH_INCLUDED
 
-// $Id: certi.hh,v 3.22 2007/12/11 16:44:20 rousse Exp $
+// $Id: certi.hh,v 3.23 2007/12/17 16:01:24 rousse Exp $

Index: libCERTI/Message.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message.cc,v
retrieving revision 3.42
retrieving revision 3.43
diff -u -b -r3.42 -r3.43
--- libCERTI/Message.cc 11 Dec 2007 16:44:20 -0000      3.42
+++ libCERTI/Message.cc 17 Dec 2007 16:01:25 -0000      3.43
@@ -32,6 +32,8 @@
 
 namespace certi {
 
+static PrettyDebug G("GENDOC",__FILE__) ;
+
 #define NONE -1
 
 Message::Message()
@@ -40,7 +42,7 @@
     exception = e_NO_EXCEPTION ;
     exceptionReason[0] = '\0' ;
     federateName[0] = '\0' ;
-    federationName[0] = '\0' ;
+    federationName = NULL ;
     tag[0] = '\0' ;
     name[0] = '\0' ;
     label[0] = '\0' ;
@@ -497,9 +499,7 @@
 //! Sets the federation name.
 void Message::setFederationName(const char *NewNomFederation)
 {
-    if (strlen(NewNomFederation) > MAX_FEDERATION_NAME_LENGTH)
-        throw ValueLengthExceeded("NomFederation too long to fit in Message.");
-
+    federationName = new char [strlen(NewNomFederation)+1] ;
     strcpy(federationName, NewNomFederation);
 }
 
@@ -566,12 +566,8 @@
 void
 Message::setFEDid(const char *NewFEDid)
 {
-    //if (strlen(NewFEDid) > MAX_FEDFILE_NAME_LENGTH)
-    //    throw ValueLengthExceeded("FEDFILE name too long to fit in 
Message.");
-
     FEDid = new char [strlen(NewFEDid)+1] ;
     strcpy(FEDid, NewFEDid);
-
 }
 
 // ----------------------------------------------------------------------------
@@ -588,6 +584,8 @@
 
     strcpy(exceptionReason, msg.exceptionReason);
     strcpy(federateName, msg.federateName);
+
+    federationName = new char[strlen(msg.federationName+1)] ;
     strcpy(federationName, msg.federationName);
 
     federate = msg.federate ;
@@ -643,11 +641,14 @@
 {
     printf(" -- MESSAGE - %s -", s);
     if ( type == CREATE_FEDERATION_EXECUTION )
-      printf("CREATE_FEDERATION_EXECUTION : federation %s : filename 
%s\n",federationName,FEDid) ;
+      printf("CREATE_FEDERATION_EXECUTION : federation %s : filename %s\n",
+             
((federationName==NULL)?"empty":federationName),((FEDid==NULL)?"empty":FEDid)) ;
     if ( type == DESTROY_FEDERATION_EXECUTION )
-      printf("DESTROY_FEDERATION_EXECUTION : federation %s : 
\n",federationName) ;
+      printf("DESTROY_FEDERATION_EXECUTION : federation %s : \n",
+             ((federationName==NULL)?"empty":federationName)) ;
     else if ( type == JOIN_FEDERATION_EXECUTION )
-      printf("JOIN_FEDERATION_EXECUTION\n") ;
+      printf("JOIN_FEDERATION_EXECUTION : federate number %d federation name 
%s federate name %s\n",
+             
federate,((federationName==NULL)?"empty":federationName),federateName) ;
     else
         printf(" type=%d :", type);
     printf(" date=%f: ", fed_time.getTime());

Index: libCERTI/Message.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message.hh,v
retrieving revision 3.40
retrieving revision 3.41
diff -u -b -r3.40 -r3.41
--- libCERTI/Message.hh 13 Dec 2007 14:43:04 -0000      3.40
+++ libCERTI/Message.hh 17 Dec 2007 16:01:25 -0000      3.41
@@ -463,12 +463,13 @@
     void writeResignAction(MessageBody &);
     void writeValueArray(MessageBody &);
     void writeFEDid(MessageBody &);
+    void writeFederationName(MessageBody &);
 
     MessageHeader header ;
     char label[MAX_USER_TAG_LENGTH + 1] ;
     char name[MAX_USER_TAG_LENGTH + 1] ;
     char federateName[MAX_FEDERATE_NAME_LENGTH + 1] ;
-    char federationName[MAX_FEDERATION_NAME_LENGTH + 1] ;
+    char *federationName ;
     char tag[MAX_USER_TAG_LENGTH + 1] ;
     char *FEDid ;
     ValueLengthPair valueArray[MAX_ATTRIBUTES_PER_CLASS] ;

Index: libCERTI/Message_R.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_R.cc,v
retrieving revision 3.10
retrieving revision 3.11
diff -u -b -r3.10 -r3.11
--- libCERTI/Message_R.cc       11 Dec 2007 16:44:20 -0000      3.10
+++ libCERTI/Message_R.cc       17 Dec 2007 16:01:25 -0000      3.11
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: Message_R.cc,v 3.10 2007/12/11 16:44:20 rousse Exp $
+// $Id: Message_R.cc,v 3.11 2007/12/17 16:01:25 rousse Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -39,12 +39,12 @@
 Message::read(SocketUN *socket)
     throw (NetworkError, NetworkSignal)
 {
-    G.Out(pdGendoc,"enter Message::read");
+    // G.Out(pdGendoc,"enter Message::read");
     bool has_body = readHeader(socket);
 
     if (has_body)
       readBody(socket);
-    G.Out(pdGendoc,"exit  Message::read");
+    // G.Out(pdGendoc,"exit  Message::read");
 }
 
 // ----------------------------------------------------------------------------
@@ -52,7 +52,7 @@
 void
 Message::readBody(SocketUN *socket)
 {
-    G.Out(pdGendoc,"enter Message::readBody body size=%d,",header.bodySize);
+    G.Out(pdGendoc,"enter Message::readBody");
  
     assert(header.bodySize > 0);
 
@@ -465,7 +465,7 @@
 bool
 Message::readHeader(SocketUN *socket)
 {
-    G.Out(pdGendoc,"enter Message::readHeader header 
size=%d",sizeof(MessageHeader));
+    G.Out(pdGendoc,"enter Message::readHeader");
 
     // 1- Read Header from Socket
     socket->receive((const unsigned char *) &header, sizeof(MessageHeader));
@@ -632,7 +632,6 @@
     }
 
     // 4- Return depends on body
-    G.Out(pdGendoc,"      Message::readHeader 
header.bodySize=%d",header.bodySize);
     G.Out(pdGendoc,"exit  Message::readHeader");
 
     return header.bodySize != 0 ;
@@ -663,7 +662,15 @@
 void
 Message::readFederationName(MessageBody &body)
 {
-    body.readString(federationName, MAX_FEDERATION_NAME_LENGTH);
+    short federationNameSize ;
+
+    federationNameSize = body.readShortInt() ;
+    federationName = new char[federationNameSize+1] ;
+    if ( federationNameSize == 0 )
+        federationName[0] = '\0' ;
+    else
+        body.readString(federationName,federationNameSize);    
+
 }
 
 // ----------------------------------------------------------------------------
@@ -691,16 +698,14 @@
 void
 Message::readFEDid(MessageBody &body)
 {
-    G.Out(pdGendoc,"enter Message::readFEDid");
     short FEDidSize ;
+
     FEDidSize = body.readShortInt() ;
     FEDid = new char[FEDidSize+1] ;
     if ( FEDidSize == 0 )
         FEDid[0] = '\0' ;
     else
         body.readString(FEDid,FEDidSize);
-    G.Out(pdGendoc,"               readFEDid FEDid=%s",FEDid);
-    G.Out(pdGendoc,"exit  Message::readFEDid");
 }
 
 // ----------------------------------------------------------------------------
@@ -725,4 +730,4 @@
 
 } // namespace certi
 
-// $Id: Message_R.cc,v 3.10 2007/12/11 16:44:20 rousse Exp $
+// $Id: Message_R.cc,v 3.11 2007/12/17 16:01:25 rousse Exp $

Index: libCERTI/Message_W.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_W.cc,v
retrieving revision 3.12
retrieving revision 3.13
diff -u -b -r3.12 -r3.13
--- libCERTI/Message_W.cc       13 Dec 2007 14:43:04 -0000      3.12
+++ libCERTI/Message_W.cc       17 Dec 2007 16:01:25 -0000      3.13
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: Message_W.cc,v 3.12 2007/12/13 14:43:04 rousse Exp $
+// $Id: Message_W.cc,v 3.13 2007/12/17 16:01:25 rousse Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -39,12 +39,12 @@
 Message::write(SocketUN *socket)
     throw (NetworkError, NetworkSignal)
 {
-    G.Out(pdGendoc,"enter Message::write");
+    // G.Out(pdGendoc,"enter Message::write");
     bool result ;
     result = writeHeader(socket);
     if (result)
         writeBody(socket);
-    G.Out(pdGendoc,"exit  Message::write");
+    // G.Out(pdGendoc,"exit  Message::write");
 }
 
 // ----------------------------------------------------------------------------
@@ -56,7 +56,7 @@
 Message::writeBody(SocketUN *socket)
 {
     MessageBody body ;
-    G.Out(pdGendoc,"enter Message::writeBody body size=%d",header.bodySize);   
 
+    G.Out(pdGendoc,"enter Message::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
@@ -76,13 +76,13 @@
 
           // Body contains federationName,FEDid
           case CREATE_FEDERATION_EXECUTION:
-            body.writeString(federationName);
+            writeFederationName(body);
             writeFEDid(body);
             break ;
 
           // Body contains federationName
           case DESTROY_FEDERATION_EXECUTION:
-            body.writeString(federationName);
+            writeFederationName(body);
             break ;
 
           // Body contains label,tag,boolean and maybe
@@ -187,7 +187,7 @@
           // handleArray
           case REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE:
            body.writeLongInt(object);
-            body.writeString(federationName);
+            writeFederationName(body);
             body.writeShortInt(federate);
             body.writeShortInt(handleArraySize);
             writeHandleArray(body);
@@ -267,7 +267,7 @@
           // Note : federate relevant on RTIA answer only
           case JOIN_FEDERATION_EXECUTION:
             body.writeShortInt(federate);
-            body.writeString(federationName);
+            writeFederationName(body);
             body.writeString(federateName);
             break ;
 
@@ -463,7 +463,6 @@
 
     // 3- Write Header to socket, then write Body to socket.
     // socket->send((void *) &Header, sizeof(MessageHeader));
-    G.Out(pdGendoc,"Message::writeBody type= %d 
body.size=%d",header.type,body.size());
     socket->send(body.getBuffer(), body.size());
     G.Out(pdGendoc,"exit  Message::writeBody");
 }
@@ -484,7 +483,7 @@
 bool
 Message::writeHeader(SocketUN *socket)
 {
-    G.Out(pdGendoc,"enter Message::writeHeader header 
size=%d",sizeof(MessageHeader));
+    G.Out(pdGendoc,"enter Message::writeHeader");
     // 1- Clear Header
     memset((void *) &header, '\0', sizeof(MessageHeader));
 
@@ -686,6 +685,17 @@
     body.writeString(FEDid);
 }
 
+// ---------------------------------------------------------------
+void
+Message::writeFederationName(MessageBody &body)
+{
+    body.writeShortInt(strlen(federationName));
+    if ( strlen(federationName) != 0 )
+        {
+        body.writeString(federationName);
+        }
+}
+
 // ---------------------------------------------------------------------------
 void
 Message::writeValueArray(MessageBody &body)
@@ -701,4 +711,4 @@
 
 } // namespace certi
 
-// $Id: Message_W.cc,v 3.12 2007/12/13 14:43:04 rousse Exp $
+// $Id: Message_W.cc,v 3.13 2007/12/17 16:01:25 rousse Exp $

Index: libCERTI/NetworkMessage.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage.cc,v
retrieving revision 3.24
retrieving revision 3.25
diff -u -b -r3.24 -r3.25
--- libCERTI/NetworkMessage.cc  13 Dec 2007 14:43:04 -0000      3.24
+++ libCERTI/NetworkMessage.cc  17 Dec 2007 16:01:25 -0000      3.25
@@ -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.24 2007/12/13 14:43:04 rousse Exp $
+// $Id: NetworkMessage.cc,v 3.25 2007/12/17 16:01:25 rousse Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -66,7 +66,7 @@
     federation = 0 ;
     federate = 0 ;
 
-    federationName[0] = '\0' ;
+    federationName = NULL ;
     federateName[0] = '\0' ;
     label[0] = '\0' ;
     FEDid = NULL ;
@@ -233,12 +233,12 @@
 NetworkMessage::read(Socket *socket)
     throw (NetworkError, NetworkSignal)
 {
-    G.Out(pdGendoc,"enter NetworkMessage::read");
+    // G.Out(pdGendoc,"enter NetworkMessage::read");
     bool has_body = readHeader(socket);
 
     if (has_body)
         readBody(socket);
-    G.Out(pdGendoc,"exit  NetworkMessage::read");
+    // G.Out(pdGendoc,"exit  NetworkMessage::read");
 }
 
 // ----------------------------------------------------------------------------
@@ -292,7 +292,16 @@
 void
 NetworkMessage::readFederationName(MessageBody &body)
 {
-    body.readString(federationName, MAX_FEDERATION_NAME_LENGTH);
+    short federationNameSize ;
+
+    federationNameSize = body.readShortInt() ;
+    federationName = new char[federationNameSize+1] ;
+    if ( federationNameSize == 0 )
+        {
+        federationName[0] = '\0' ;
+        }
+    else
+        body.readString(federationName,federationNameSize);    
 }
 
 // ----------------------------------------------------------------------------
@@ -317,7 +326,6 @@
 void
 NetworkMessage::readFEDid(MessageBody &body)
 {
-    G.Out(pdGendoc,"enter NetworkMessage::readFEDid");
     short FEDidSize ;
     FEDidSize = body.readShortInt() ;
     FEDid = new char[FEDidSize+1] ;
@@ -325,8 +333,6 @@
         FEDid[0] = '\0' ;
     else
         body.readString(FEDid,FEDidSize);
-    G.Out(pdGendoc,"                      readFEDid FEDid=%s",FEDid);
-    G.Out(pdGendoc,"exit  NetworkMessage::readFEDid");
 }
 
 // ---------------------------------------------------------------
@@ -337,6 +343,15 @@
     body.writeString(FEDid);
 }
 
+// ---------------------------------------------------------------
+void
+NetworkMessage::writeFederationName(MessageBody &body)
+{ 
+    assert(federationName != NULL) ;  
+    body.writeShortInt(strlen(federationName));
+    body.writeString(federationName);
+}
+
 } // namespace certi
 
-// $Id: NetworkMessage.cc,v 3.24 2007/12/13 14:43:04 rousse Exp $
+// $Id: NetworkMessage.cc,v 3.25 2007/12/17 16:01:25 rousse Exp $

Index: libCERTI/NetworkMessage.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage.hh,v
retrieving revision 3.28
retrieving revision 3.29
diff -u -b -r3.28 -r3.29
--- libCERTI/NetworkMessage.hh  13 Dec 2007 14:43:04 -0000      3.28
+++ libCERTI/NetworkMessage.hh  17 Dec 2007 16:01:25 -0000      3.29
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: NetworkMessage.hh,v 3.28 2007/12/13 14:43:04 rousse Exp $
+// $Id: NetworkMessage.hh,v 3.29 2007/12/17 16:01:25 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef CERTI_NETWORK_MESSAGE_HH
@@ -241,7 +241,8 @@
 
     Handle federation ;
     FederateHandle federate ;
-    char federationName[MAX_FEDERATION_NAME_LENGTH + 1] ;
+    //char federationName[MAX_FEDERATION_NAME_LENGTH + 1] ;
+    char *federationName ;
     char federateName[MAX_FEDERATE_NAME_LENGTH + 1] ;
     char *FEDid ;
 
@@ -306,6 +307,7 @@
 
     // -- Others Private Write Methods --
     void writeFEDid(MessageBody &body);
+    void writeFederationName(MessageBody &body);
 
     // -- Others Private Read Methods --
     void readLabel(MessageBody &);
@@ -325,4 +327,4 @@
 
 #endif // CERTI_NETWORK_MESSAGE_HH
 
-// $Id: NetworkMessage.hh,v 3.28 2007/12/13 14:43:04 rousse Exp $
+// $Id: NetworkMessage.hh,v 3.29 2007/12/17 16:01:25 rousse Exp $

Index: libCERTI/NetworkMessage_RW.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage_RW.cc,v
retrieving revision 3.36
retrieving revision 3.37
diff -u -b -r3.36 -r3.37
--- libCERTI/NetworkMessage_RW.cc       13 Dec 2007 14:43:05 -0000      3.36
+++ libCERTI/NetworkMessage_RW.cc       17 Dec 2007 16:01:25 -0000      3.37
@@ -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.36 2007/12/13 14:43:05 rousse Exp $
+// $Id: NetworkMessage_RW.cc,v 3.37 2007/12/17 16:01:25 rousse Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -46,7 +46,7 @@
 {
     MessageBody body ;
     unsigned short i ;
-    G.Out(pdGendoc,"enter NetworkMessage::readBody body 
size=%d",Header.bodySize);
+    G.Out(pdGendoc,"enter NetworkMessage::readBody");
     if (Header.bodySize == 0)
         throw RTIinternalError("ReadBody should not have been called.");
 
@@ -66,6 +66,7 @@
     }
     else {
     switch(Header.type) {
+      // line number, FEDid, Value Array size and Value array (line contents)
       case GET_FED_FILE:
         number = body.readShortInt();
         readFEDid(body);
@@ -297,7 +298,7 @@
 bool
 NetworkMessage::readHeader(Socket *socket)
 {
-    G.Out(pdGendoc,"enter NetworkMessage::readHeader header 
size=%d",sizeof(HeaderStruct));
+    G.Out(pdGendoc,"enter NetworkMessage::readHeader");
     // 1- Read Header from Socket
     socket->receive((void *) &Header, sizeof(HeaderStruct));
     // 2- Parse Header(Static Part)
@@ -334,7 +335,6 @@
        objectClass = Header.VP.O_I.handle ;
        handleArraySize = Header.VP.O_I.size ;
        date = Header.VP.O_I.date ;
-G.Out(pdGendoc,"readHeader REFLECT_ATTRIBUTE_VALUES 
objectClass=%d",objectClass);
        break ;
 
       case SEND_INTERACTION:
@@ -551,12 +551,12 @@
        // -- No Variable Part --
 
       case CREATE_FEDERATION_EXECUTION:
-       body.writeString(federationName);
+       writeFederationName(body);
         writeFEDid(body);
        break ;
 
       case DESTROY_FEDERATION_EXECUTION:
-       body.writeString(federationName);
+       writeFederationName(body);
        break ;
 
       case REGISTER_FEDERATION_SYNCHRONIZATION_POINT:
@@ -655,7 +655,7 @@
        // -- Join Variable Part --
 
       case JOIN_FEDERATION_EXECUTION:
-       body.writeString(federationName);
+       writeFederationName(body);
        body.writeString(federateName);
        break ;
 
@@ -981,4 +981,4 @@
 
 } // namespace certi
 
-// $Id: NetworkMessage_RW.cc,v 3.36 2007/12/13 14:43:05 rousse Exp $
+// $Id: NetworkMessage_RW.cc,v 3.37 2007/12/17 16:01:25 rousse Exp $




reply via email to

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