[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi libCERTI/NetworkMessage.hh libCERTI/NM_Cl...
From: |
certi-cvs |
Subject: |
[certi-cvs] certi libCERTI/NetworkMessage.hh libCERTI/NM_Cl... |
Date: |
Mon, 09 Aug 2010 14:51:46 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 10/08/09 14:51:45
Modified files:
libCERTI : NetworkMessage.hh NM_Classes.cc NM_Classes.hh
M_Classes.hh M_Classes.cc
RTIG : RTIG_processing.cc
scripts : CERTI_NetworkMessage.msg
RTIA : RTIA_network.cc Statistics.cc TimeManagement.cc
Log message:
Fix bug #30349: RTIA (RTIA_network.cc) does not handle some message
(NM_Register_Federation_Synchronization_Point) sent by RTIG.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage.hh?cvsroot=certi&r1=3.64&r2=3.65
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NM_Classes.cc?cvsroot=certi&r1=3.27&r2=3.28
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NM_Classes.hh?cvsroot=certi&r1=3.21&r2=3.22
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/M_Classes.hh?cvsroot=certi&r1=3.12&r2=3.13
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/M_Classes.cc?cvsroot=certi&r1=3.12&r2=3.13
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&r1=3.103&r2=3.104
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/CERTI_NetworkMessage.msg?cvsroot=certi&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_network.cc?cvsroot=certi&r1=3.37&r2=3.38
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/Statistics.cc?cvsroot=certi&r1=3.23&r2=3.24
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.cc?cvsroot=certi&r1=3.59&r2=3.60
Patches:
Index: libCERTI/NetworkMessage.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage.hh,v
retrieving revision 3.64
retrieving revision 3.65
diff -u -b -r3.64 -r3.65
--- libCERTI/NetworkMessage.hh 10 Jun 2010 08:31:51 -0000 3.64
+++ libCERTI/NetworkMessage.hh 9 Aug 2010 14:51:45 -0000 3.65
@@ -17,7 +17,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: NetworkMessage.hh,v 3.64 2010/06/10 08:31:51 erk Exp $
+// $Id: NetworkMessage.hh,v 3.65 2010/08/09 14:51:45 erk Exp $
// ----------------------------------------------------------------------------
#ifndef CERTI_NETWORK_MESSAGE_HH
@@ -66,7 +66,7 @@
TIME_REGULATION_ENABLED, // RTIG to RTIA
TIME_CONSTRAINED_ENABLED, // RTIG to RTIA
REGISTER_FEDERATION_SYNCHRONIZATION_POINT,
- SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED,
// RTIG to RTIA
+ CONFIRM_SYNCHRONIZATION_POINT_REGISTRATION, //
RTIG to RTIA
ANNOUNCE_SYNCHRONIZATION_POINT, // RTIG to RTIA
SYNCHRONIZATION_POINT_ACHIEVED,
FEDERATION_SYNCHRONIZED, // RTIG to RTIA
@@ -260,4 +260,4 @@
#endif // CERTI_NETWORK_MESSAGE_HH
-// $Id: NetworkMessage.hh,v 3.64 2010/06/10 08:31:51 erk Exp $
+// $Id: NetworkMessage.hh,v 3.65 2010/08/09 14:51:45 erk Exp $
Index: libCERTI/NM_Classes.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NM_Classes.cc,v
retrieving revision 3.27
retrieving revision 3.28
diff -u -b -r3.27 -r3.28
--- libCERTI/NM_Classes.cc 10 Jun 2010 08:31:52 -0000 3.27
+++ libCERTI/NM_Classes.cc 9 Aug 2010 14:51:45 -0000 3.28
@@ -1,4 +1,4 @@
-// Generated on 2010 June Thu, 10 at 10:24:31 by the CERTI message generator
+// Generated on 2010 August Mon, 09 at 16:30:14 by the CERTI message generator
#include <vector>
#include <string>
#include "NM_Classes.hh"
@@ -723,12 +723,47 @@
return out;
}
-
NM_Synchronization_Point_Registration_Succeeded::NM_Synchronization_Point_Registration_Succeeded()
{
- this->messageName = "NM_Synchronization_Point_Registration_Succeeded";
- this->type =
NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED;
+
NM_Confirm_Synchronization_Point_Registration::NM_Confirm_Synchronization_Point_Registration()
{
+ this->messageName = "NM_Confirm_Synchronization_Point_Registration";
+ this->type = NetworkMessage::CONFIRM_SYNCHRONIZATION_POINT_REGISTRATION;
+ //successIndicator= <no default value in message spec using builtin>
+ _hasFailureReason=false;
+ //failureReason= <no default value in message spec using builtin>
}
-
NM_Synchronization_Point_Registration_Succeeded::~NM_Synchronization_Point_Registration_Succeeded()
{
+
NM_Confirm_Synchronization_Point_Registration::~NM_Confirm_Synchronization_Point_Registration()
{
+ }
+
+ void
NM_Confirm_Synchronization_Point_Registration::serialize(libhla::MessageBuffer&
msgBuffer) {
+ //Call mother class
+ Super::serialize(msgBuffer);
+ //Specific serialization code
+ msgBuffer.write_bool(successIndicator);
+ msgBuffer.write_bool(_hasFailureReason);
+ if (_hasFailureReason) {
+ msgBuffer.write_string(failureReason);
+ }
+ }
+
+ void
NM_Confirm_Synchronization_Point_Registration::deserialize(libhla::MessageBuffer&
msgBuffer) {
+ //Call mother class
+ Super::deserialize(msgBuffer);
+ //Specific deserialization code
+ successIndicator = msgBuffer.read_bool();
+ _hasFailureReason = msgBuffer.read_bool();
+ if (_hasFailureReason) {
+ msgBuffer.read_string(failureReason);
+ }
+ }
+
+ std::ostream&
NM_Confirm_Synchronization_Point_Registration::show(std::ostream& out) {
+ out << "[NM_Confirm_Synchronization_Point_Registration -Begin]" <<
std::endl; //Call mother class
+ Super::show(out);
+ //Specific show code
+ out << " successIndicator = " << successIndicator << " " <<
std::endl;
+ out << "(opt) failureReason =" << failureReason << " " <<
std::endl;
+ out << "[NM_Confirm_Synchronization_Point_Registration -End]" <<
std::endl;
+ return out;
}
NM_Announce_Synchronization_Point::NM_Announce_Synchronization_Point() {
@@ -2829,8 +2864,8 @@
case NetworkMessage::REGISTER_FEDERATION_SYNCHRONIZATION_POINT:
msg = new NM_Register_Federation_Synchronization_Point();
break;
- case NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED:
- msg = new NM_Synchronization_Point_Registration_Succeeded();
+ case NetworkMessage::CONFIRM_SYNCHRONIZATION_POINT_REGISTRATION:
+ msg = new NM_Confirm_Synchronization_Point_Registration();
break;
case NetworkMessage::ANNOUNCE_SYNCHRONIZATION_POINT:
msg = new NM_Announce_Synchronization_Point();
Index: libCERTI/NM_Classes.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/NM_Classes.hh,v
retrieving revision 3.21
retrieving revision 3.22
diff -u -b -r3.21 -r3.22
--- libCERTI/NM_Classes.hh 10 Jun 2010 08:31:51 -0000 3.21
+++ libCERTI/NM_Classes.hh 9 Aug 2010 14:51:45 -0000 3.22
@@ -1,4 +1,4 @@
-// Generated on 2010 June Thu, 10 at 10:24:31 by the CERTI message generator
+// Generated on 2010 August Mon, 09 at 16:30:13 by the CERTI message generator
#ifndef NM_CLASSES_HH
#define NM_CLASSES_HH
// ****-**** Global System includes ****-****
@@ -48,6 +48,7 @@
namespace CERTI_NetworkMessage {
static const uint32_t versionMajor = 1;
static const uint32_t versionMinor = 0;
+
}
// The EventRetraction is not inheriting from base "Message"
// this is a plain message which may be used as field
@@ -491,13 +492,30 @@
std::vector<FederateHandle> federates;// the federate set
private:
};
-
- class CERTI_EXPORT NM_Synchronization_Point_Registration_Succeeded : public
NetworkMessage {
+ // HLA 1.3 - §4.7
+ // IEEE-1516 - §4.7
+ class CERTI_EXPORT NM_Confirm_Synchronization_Point_Registration : public
NetworkMessage {
public:
typedef NetworkMessage Super;
- NM_Synchronization_Point_Registration_Succeeded();
- virtual ~NM_Synchronization_Point_Registration_Succeeded();
+ NM_Confirm_Synchronization_Point_Registration();
+ virtual ~NM_Confirm_Synchronization_Point_Registration();
+ virtual void serialize(libhla::MessageBuffer& msgBuffer);
+ virtual void deserialize(libhla::MessageBuffer& msgBuffer);
+ // specific Getter(s)/Setter(s)
+ const bool& getSuccessIndicator() const {return successIndicator;}
+ void setSuccessIndicator(const bool& newSuccessIndicator)
{successIndicator=newSuccessIndicator;}
+ const std::string& getFailureReason() const {return failureReason;}
+ void setFailureReason(const std::string& newFailureReason) {
+ _hasFailureReason=true;
+ failureReason=newFailureReason;
+ }
+ bool hasFailureReason() {return _hasFailureReason;}
+ // the show method
+ virtual std::ostream& show(std::ostream& out);
protected:
+ bool successIndicator;// the success indicator true=successful
+ std::string failureReason;// [IEEE-1516] the failure reason.
+ bool _hasFailureReason;
private:
};
Index: libCERTI/M_Classes.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/M_Classes.hh,v
retrieving revision 3.12
retrieving revision 3.13
diff -u -b -r3.12 -r3.13
--- libCERTI/M_Classes.hh 10 Jun 2010 08:31:52 -0000 3.12
+++ libCERTI/M_Classes.hh 9 Aug 2010 14:51:45 -0000 3.13
@@ -1,4 +1,4 @@
-// Generated on 2010 June Thu, 10 at 10:24:31 by the CERTI message generator
+// Generated on 2010 August Mon, 09 at 16:30:14 by the CERTI message generator
#ifndef M_CLASSES_HH
#define M_CLASSES_HH
// ****-**** Global System includes ****-****
@@ -51,6 +51,7 @@
namespace CERTI_Message {
static const uint32_t versionMajor = 1;
static const uint32_t versionMinor = 0;
+
}
// The EventRetraction is not inheriting from base "Message"
// this is a plain message which may be used as field
Index: libCERTI/M_Classes.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/M_Classes.cc,v
retrieving revision 3.12
retrieving revision 3.13
diff -u -b -r3.12 -r3.13
--- libCERTI/M_Classes.cc 10 Jun 2010 08:31:52 -0000 3.12
+++ libCERTI/M_Classes.cc 9 Aug 2010 14:51:45 -0000 3.13
@@ -1,4 +1,4 @@
-// Generated on 2010 June Thu, 10 at 10:24:31 by the CERTI message generator
+// Generated on 2010 August Mon, 09 at 16:30:14 by the CERTI message generator
#include <vector>
#include <string>
#include "M_Classes.hh"
Index: RTIG/RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.103
retrieving revision 3.104
diff -u -b -r3.103 -r3.104
--- RTIG/RTIG_processing.cc 31 May 2010 09:33:26 -0000 3.103
+++ RTIG/RTIG_processing.cc 9 Aug 2010 14:51:45 -0000 3.104
@@ -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.103 2010/05/31 09:33:26 erk Exp $
+// $Id: RTIG_processing.cc,v 3.104 2010/08/09 14:51:45 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -526,6 +526,13 @@
auditServer << "Label \"" << req->getLabel() << "\" registered. Tag is
\""
<< req->getTag() << "\"" ;
+ /* prepare answer to be sent to RTIA */
+ NM_Confirm_Synchronization_Point_Registration rep;
+ rep.setFederate(req->getFederate());
+ rep.setFederation(req->getFederation());
+ rep.setLabel(req->getLabel());
+
+ try {
// boolean true means a federates set exists
if ( req->getExists() ) {
federations.manageSynchronization(req->getFederation(),
@@ -543,32 +550,35 @@
req->getLabel(),
req->getTag());
}
- D.Out(pdTerm, "Federation %u is now synchronizing.",
req->getFederation());
-
// send synchronizationPointRegistrationSucceeded() to federate.
- NM_Synchronization_Point_Registration_Succeeded rep ;
- rep.setFederate(req->getFederate());
- rep.setFederation(req->getFederation());
- rep.setLabel(req->getLabel());
+ rep.setSuccessIndicator(true);
+ } catch (RTIinternalError &e) {
+ /* the registration did fail */
+ rep.setSuccessIndicator(false);
+ }
+ D.Out(pdTerm, "Federation %u is now synchronizing.", req->getFederation());
G.Out(pdGendoc," processRegisterSynchronization====> write SPRS to
RTIA");
-
rep.send(link,NM_msgBufSend);
+ // proceed with the broadcast iff registration was successful
+ if (rep.getSuccessIndicator()) {
// boolean true means a federates set exists
- if ( req->getExists() )
+ if ( req->getExists() ) {
federations.broadcastSynchronization(req->getFederation(),
req->getFederate(),
req->getLabel(),
req->getTag(),
req->getFederatesSize(),
req->getFederates());
- else
+ }
+ else {
federations.broadcastSynchronization(req->getFederation(),
req->getFederate(),
req->getLabel(),
req->getTag());
-
+ }
+ }
G.Out(pdGendoc,"exit RTIG::processRegisterSynchronization");
G.Out(pdGendoc,"END ** REGISTER FEDERATION SYNCHRONIZATION POINT
Service **");
@@ -1496,4 +1506,4 @@
}} // namespace certi/rtig
-// $Id: RTIG_processing.cc,v 3.103 2010/05/31 09:33:26 erk Exp $
+// $Id: RTIG_processing.cc,v 3.104 2010/08/09 14:51:45 erk Exp $
Index: scripts/CERTI_NetworkMessage.msg
===================================================================
RCS file: /sources/certi/certi/scripts/CERTI_NetworkMessage.msg,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- scripts/CERTI_NetworkMessage.msg 28 Apr 2010 18:48:31 -0000 1.20
+++ scripts/CERTI_NetworkMessage.msg 9 Aug 2010 14:51:45 -0000 1.21
@@ -226,7 +226,12 @@
repeated FederateHandle federates // the federate set
}
-message NM_Synchronization_Point_Registration_Succeeded : merge NetworkMessage
{}
+// HLA 1.3 - §4.7
+// IEEE-1516 - §4.7
+message NM_Confirm_Synchronization_Point_Registration : merge NetworkMessage {
+ required bool successIndicator // the success indicator true=successful
+ optional string failureReason // [IEEE-1516] the failure reason.
+}
message NM_Announce_Synchronization_Point : merge NetworkMessage {}
Index: RTIA/RTIA_network.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_network.cc,v
retrieving revision 3.37
retrieving revision 3.38
diff -u -b -r3.37 -r3.38
--- RTIA/RTIA_network.cc 23 Mar 2010 13:13:27 -0000 3.37
+++ RTIA/RTIA_network.cc 9 Aug 2010 14:51:45 -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: RTIA_network.cc,v 3.37 2010/03/23 13:13:27 erk Exp $
+// $Id: RTIA_network.cc,v 3.38 2010/08/09 14:51:45 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -74,9 +74,9 @@
break ;
}
- case NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED:
- D.Out(pdTrace, "Receiving Message from RTIG, type
NetworkMessage::SYNCHRONIZATION_"
- "POINT_REGISTRATION_SUCCEEDED.");
+ case NetworkMessage::CONFIRM_SYNCHRONIZATION_POINT_REGISTRATION:
+ D.Out(pdTrace, "Receiving Message from RTIG, type
NetworkMessage::CONFIRM_"
+ "SYNCHRONIZATION_POINT_REGISTRATION.");
queues->insertLastCommand(msg);
break ;
@@ -380,4 +380,4 @@
}} // namespace certi/rtia
-// $Id: RTIA_network.cc,v 3.37 2010/03/23 13:13:27 erk Exp $
+// $Id: RTIA_network.cc,v 3.38 2010/08/09 14:51:45 erk Exp $
Index: RTIA/Statistics.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/Statistics.cc,v
retrieving revision 3.23
retrieving revision 3.24
diff -u -b -r3.23 -r3.24
--- RTIA/Statistics.cc 31 May 2010 09:33:26 -0000 3.23
+++ RTIA/Statistics.cc 9 Aug 2010 14:51:45 -0000 3.24
@@ -231,7 +231,7 @@
RTI_MSG_NAME(NetworkMessage::TIME_REGULATION_ENABLED);
RTI_MSG_NAME(NetworkMessage::TIME_CONSTRAINED_ENABLED);
RTI_MSG_NAME(NetworkMessage::REGISTER_FEDERATION_SYNCHRONIZATION_POINT);
-
RTI_MSG_NAME(NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED);
+
RTI_MSG_NAME(NetworkMessage::CONFIRM_SYNCHRONIZATION_POINT_REGISTRATION);
RTI_MSG_NAME(NetworkMessage::ANNOUNCE_SYNCHRONIZATION_POINT);
RTI_MSG_NAME(NetworkMessage::SYNCHRONIZATION_POINT_ACHIEVED);
RTI_MSG_NAME(NetworkMessage::FEDERATION_SYNCHRONIZED);
@@ -382,4 +382,4 @@
#undef FED_MSG_NAME
#undef RTI_MSG_NAME
-// $Id: Statistics.cc,v 3.23 2010/05/31 09:33:26 erk Exp $
+// $Id: Statistics.cc,v 3.24 2010/08/09 14:51:45 erk Exp $
Index: RTIA/TimeManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.cc,v
retrieving revision 3.59
retrieving revision 3.60
diff -u -b -r3.59 -r3.60
--- RTIA/TimeManagement.cc 31 May 2010 09:33:26 -0000 3.59
+++ RTIA/TimeManagement.cc 9 Aug 2010 14:51:45 -0000 3.60
@@ -18,7 +18,7 @@
// along with this program ; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// $Id: TimeManagement.cc,v 3.59 2010/05/31 09:33:26 erk Exp $
+// $Id: TimeManagement.cc,v 3.60 2010/08/09 14:51:45 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -142,9 +142,14 @@
}
break ;
- case NetworkMessage::SYNCHRONIZATION_POINT_REGISTRATION_SUCCEEDED:
+ case NetworkMessage::CONFIRM_SYNCHRONIZATION_POINT_REGISTRATION:
try {
- fm->synchronizationPointRegistrationSucceeded(msg.getLabel());
+ NM_Confirm_Synchronization_Point_Registration&
CSPR=static_cast<NM_Confirm_Synchronization_Point_Registration&>(msg);
+ if (CSPR.getSuccessIndicator()) {
+ fm->synchronizationPointRegistrationSucceeded(CSPR.getLabel());
+ } else {
+ fm->synchronizationPointRegistrationFailed(CSPR.getLabel());
+ }
}
catch (RTIinternalError &e) {
cout << "RTIA:RTIinternalError in synchronizationPointRegistration"
@@ -1023,4 +1028,4 @@
}} // namespaces
-// $Id: TimeManagement.cc,v 3.59 2010/05/31 09:33:26 erk Exp $
+// $Id: TimeManagement.cc,v 3.60 2010/08/09 14:51:45 erk Exp $
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi libCERTI/NetworkMessage.hh libCERTI/NM_Cl...,
certi-cvs <=