[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi/RTIA ObjectManagement.cc RTIA_network.cc
From: |
certi-cvs |
Subject: |
[certi-cvs] certi/RTIA ObjectManagement.cc RTIA_network.cc |
Date: |
Mon, 08 Nov 2010 15:31:34 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 10/11/08 15:31:34
Modified files:
RTIA : ObjectManagement.cc RTIA_network.cc
Log message:
Try a fix for
bug #31551 : Error during multi-federate startup
which seems the same as issue reported by Michael Raab.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.cc?cvsroot=certi&r1=3.71&r2=3.72
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_network.cc?cvsroot=certi&r1=3.39&r2=3.40
Patches:
Index: ObjectManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.cc,v
retrieving revision 3.71
retrieving revision 3.72
diff -u -b -r3.71 -r3.72
--- ObjectManagement.cc 2 Oct 2010 13:20:42 -0000 3.71
+++ ObjectManagement.cc 8 Nov 2010 15:31:34 -0000 3.72
@@ -227,23 +227,10 @@
comm->requestFederateService(&req);
- /* FIXME
- *
- * discoverObject tries to auto-registrate a discovered object instance,
- * if the object is already discovered through a previous invocation of
- * discoverObject the exceptiobn ObjectAlreadyRegistered is raised.
- *
- * This behaviour needs further investigation.
- * Is it useful to call registerObjectInstance within a federate
service?
+ /* The registration of the discovered object in RootObject
+ * MUST have been done just before putting DO message in FIFO.
+ * see RTIA_network.cc
*/
-
- try {
- // Adding discovered object in federate internal object list.
- rootObject->registerObjectInstance(fm->federate, the_class,
the_object,
- req.getObjectName());
- }
- catch (ObjectAlreadyRegistered) {
- }
}
// ----------------------------------------------------------------------------
Index: RTIA_network.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_network.cc,v
retrieving revision 3.39
retrieving revision 3.40
diff -u -b -r3.39 -r3.40
--- RTIA_network.cc 10 Aug 2010 16:34:10 -0000 3.39
+++ RTIA_network.cc 8 Nov 2010 15:31:34 -0000 3.40
@@ -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.39 2010/08/10 16:34:10 erk Exp $
+// $Id: RTIA_network.cc,v 3.40 2010/11/08 15:31:34 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -95,9 +95,27 @@
case NetworkMessage::DISCOVER_OBJECT:
{
- D.Out(pdTrace, "Receving Message from RTIG, "
- "type NetworkMessage::DISCOVER_OBJECT.");
+ NM_Discover_Object* DO = static_cast<NM_Discover_Object*>(msg);
+ D.Out(pdTrace, "Receving Message from RTIG, type
NetworkMessage::DISCOVER_OBJECT.");
queues->insertFifoMessage(msg);
+ /* FIXME
+ *
+ * discoverObject tries to auto-registrate a discovered object
instance,
+ * if the object is already discovered through a previous
invocation of
+ * discoverObject the exception ObjectAlreadyRegistered is
raised.
+ *
+ * This behavior needs further investigation.
+ * Is it useful to call registerObjectInstance within a
federate service?
+ */
+
+ try {
+ // Adding discovered object in federate internal object
list.
+ // We MUST update RootObject here
+ rootObject->registerObjectInstance(fm->federate,
DO->getObjectClass(), DO->getObject(),DO->getLabel());
+ }
+ catch (ObjectAlreadyRegistered) {
+ }
+
}
break;
@@ -131,6 +149,8 @@
{
// Retrieve order type
updateOrder = TIMESTAMP;
+ // FIXME we may inspect rootObject for an unknown object which has
+ // (not yet) been discovered...because DiscoverObject is a RO
message
ObjectClassHandle och =
rootObject->objects->getObjectClass(RAV->getObject());
//std::cerr << "FOUND och = " <<och << " for object " <<
RAV->getObject() <<std::endl;
for (uint32_t i=0; i< RAV->getAttributesSize(); ++i)
@@ -381,4 +401,4 @@
}} // namespace certi/rtia
-// $Id: RTIA_network.cc,v 3.39 2010/08/10 16:34:10 erk Exp $
+// $Id: RTIA_network.cc,v 3.40 2010/11/08 15:31:34 erk Exp $
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi/RTIA ObjectManagement.cc RTIA_network.cc,
certi-cvs <=