certi-cvs
[Top][All Lists]
Advanced

[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 $



reply via email to

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