[Top][All Lists]
[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 $