[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
certi RTIA/ObjectManagement.cc RTIA/ObjectManag...
From: |
certi-cvs |
Subject: |
certi RTIA/ObjectManagement.cc RTIA/ObjectManag... |
Date: |
Wed, 05 Dec 2007 12:29:41 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Christian Stenzel <approx> 07/12/05 12:29:41
Modified files:
RTIA : ObjectManagement.cc ObjectManagement.hh
RTIA_federate.cc RTIA_network.cc
TimeManagement.cc
RTIG : Federation.cc Federation.hh FederationsList.cc
FederationsList.hh RTIG_processing.cc
libCERTI : Message_R.cc Message_W.cc NetworkMessage_RW.cc
ObjectClass.cc ObjectClass.hh ObjectClassSet.cc
ObjectClassSet.hh RootObject.cc RootObject.hh
libRTI : RTIambPrivateRefs.cc RTIambassador.cc
Log message:
deleteObjectInstance with and without additional time argument
correct calling of federate service removeObjectInstance
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.cc?cvsroot=certi&r1=3.30&r2=3.31
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.hh?cvsroot=certi&r1=3.16&r2=3.17
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&r1=3.54&r2=3.55
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_network.cc?cvsroot=certi&r1=3.15&r2=3.16
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.cc?cvsroot=certi&r1=3.23&r2=3.24
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.cc?cvsroot=certi&r1=3.70&r2=3.71
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.hh?cvsroot=certi&r1=3.43&r2=3.44
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.cc?cvsroot=certi&r1=3.45&r2=3.46
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.hh?cvsroot=certi&r1=3.35&r2=3.36
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&r1=3.44&r2=3.45
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_R.cc?cvsroot=certi&r1=3.8&r2=3.9
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_W.cc?cvsroot=certi&r1=3.9&r2=3.10
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/NetworkMessage_RW.cc?cvsroot=certi&r1=3.33&r2=3.34
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClass.cc?cvsroot=certi&r1=3.40&r2=3.41
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClass.hh?cvsroot=certi&r1=3.30&r2=3.31
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClassSet.cc?cvsroot=certi&r1=3.30&r2=3.31
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClassSet.hh?cvsroot=certi&r1=3.25&r2=3.26
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/RootObject.cc?cvsroot=certi&r1=3.30&r2=3.31
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/RootObject.hh?cvsroot=certi&r1=3.25&r2=3.26
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambPrivateRefs.cc?cvsroot=certi&r1=3.7&r2=3.8
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambassador.cc?cvsroot=certi&r1=3.59&r2=3.60
Patches:
Index: RTIA/ObjectManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.cc,v
retrieving revision 3.30
retrieving revision 3.31
diff -u -b -r3.30 -r3.31
--- RTIA/ObjectManagement.cc 16 Nov 2007 15:45:01 -0000 3.30
+++ RTIA/ObjectManagement.cc 5 Dec 2007 12:29:39 -0000 3.31
@@ -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: ObjectManagement.cc,v 3.30 2007/11/16 15:45:01 erk Exp $
+// $Id: ObjectManagement.cc,v 3.31 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -397,9 +397,10 @@
}
// ----------------------------------------------------------------------------
-//! deleteObject
+//! deleteObject with time
EventRetractionHandle
ObjectManagement::deleteObject(ObjectHandle theObjectHandle,
+ FederationTime theTime,
const char *theTag,
TypeException &e)
{
@@ -407,6 +408,8 @@
req.type = NetworkMessage::DELETE_OBJECT ;
req.object = theObjectHandle ;
+ req.setBoolean(true);
+ req.date = theTime;
req.federation = fm->_numero_federation ;
req.federate = fm->federate ;
@@ -416,17 +419,45 @@
e = rep.exception ;
- if (e == e_NO_EXCEPTION)
+ if (e == e_NO_EXCEPTION) {
rootObject->deleteObjectInstance(fm->federate, theObjectHandle,
theTag);
+ }
return rep.eventRetraction ;
}
// ----------------------------------------------------------------------------
-//! removeObject
+//! deleteObject without time
+void
+ObjectManagement::deleteObject(ObjectHandle theObjectHandle,
+ const char *theTag,
+ TypeException &e)
+{
+ NetworkMessage req, rep ;
+
+ req.type = NetworkMessage::DELETE_OBJECT ;
+ req.object = theObjectHandle ;
+ req.setBoolean(false);
+ req.federation = fm->_numero_federation ;
+ req.federate = fm->federate ;
+
+ strcpy(req.label, theTag);
+ comm->sendMessage(&req);
+ comm->waitMessage(&rep, NetworkMessage::DELETE_OBJECT, req.federate);
+
+ e = rep.exception ;
+
+ if (e == e_NO_EXCEPTION) {
+ rootObject->deleteObjectInstance(fm->federate, theObjectHandle,
theTag);
+ }
+}
+
+// ----------------------------------------------------------------------------
+//! removeObject with time
void
ObjectManagement::removeObject(ObjectHandle the_object,
FederateHandle the_federate,
+ FederationTime theTime,
const char *the_tag,
EventRetractionHandle the_event,
TypeException &)
@@ -437,22 +468,33 @@
req.setObject(the_object);
req.setEventRetraction(the_event);
req.setTag(the_tag);
+ req.setBoolean(true);
// BUG: On fait quoi de la reponse ?
comm->requestFederateService(&req, &rep);
- rootObject->deleteObjectInstance(the_federate, the_object, the_tag);
+ rootObject->deleteObjectInstance(the_federate, the_object, theTime,
the_tag);
}
// ----------------------------------------------------------------------------
-//! removeObject
+//! removeObject without time
void
-ObjectManagement::removeObject(ObjectHandle,
- ObjectRemovalReason,
+ObjectManagement::removeObject(ObjectHandle the_object,
+ FederateHandle the_federate,
+ const char *the_tag,
TypeException &)
{
- printf("ObjectManagement.cc: RemoveObject(2) not implemented.\n");
- throw RTIinternalError("");
+ Message req, rep ;
+
+ req.type = Message::REMOVE_OBJECT_INSTANCE ;
+ req.setObject(the_object);
+ req.setTag(the_tag);
+ req.setBoolean(false);
+
+ // BUG: On fait quoi de la reponse ?
+ comm->requestFederateService(&req, &rep);
+
+ rootObject->deleteObjectInstance(the_federate, the_object, the_tag);
}
// ----------------------------------------------------------------------------
@@ -728,4 +770,4 @@
}} // namespace certi/rtia
-// $Id: ObjectManagement.cc,v 3.30 2007/11/16 15:45:01 erk Exp $
+// $Id: ObjectManagement.cc,v 3.31 2007/12/05 12:29:39 approx Exp $
Index: RTIA/ObjectManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.hh,v
retrieving revision 3.16
retrieving revision 3.17
diff -u -b -r3.16 -r3.17
--- RTIA/ObjectManagement.hh 6 Nov 2007 10:05:06 -0000 3.16
+++ RTIA/ObjectManagement.hh 5 Dec 2007 12:29:39 -0000 3.17
@@ -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: ObjectManagement.hh,v 3.16 2007/11/06 10:05:06 rousse Exp $
+// $Id: ObjectManagement.hh,v 3.17 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#ifndef _CERTI_RTIA_OM
@@ -125,15 +125,26 @@
TypeException &e);
EventRetractionHandle deleteObject(ObjectHandle theObjectHandle,
+ FederationTime theTime,
+ const char *theTag,
+ TypeException &e);
+
+ void deleteObject(ObjectHandle theObjectHandle,
const char *theTag,
TypeException &e);
void removeObject(ObjectHandle theObjectHandle,
FederateHandle theFederateHandle,
+ FederationTime theTime,
const char *theTag,
EventRetractionHandle theHandle,
TypeException &e);
+ void removeObject(ObjectHandle theObjectHandle,
+ FederateHandle theFederateHandle,
+ const char *theTag,
+ TypeException &e);
+
void removeObject(ObjectHandle theObject,
ObjectRemovalReason theReason,
TypeException &e);
@@ -213,4 +224,4 @@
#endif // _CERTI_RTIA_OM
-// $Id: ObjectManagement.hh,v 3.16 2007/11/06 10:05:06 rousse Exp $
+// $Id: ObjectManagement.hh,v 3.17 2007/12/05 12:29:39 approx Exp $
Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.54
retrieving revision 3.55
diff -u -b -r3.54 -r3.55
--- RTIA/RTIA_federate.cc 29 Nov 2007 16:51:15 -0000 3.54
+++ RTIA/RTIA_federate.cc 5 Dec 2007 12:29:39 -0000 3.55
@@ -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.54 2007/11/29 16:51:15 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.55 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -408,10 +408,35 @@
}
break ;
- case Message::DELETE_OBJECT_INSTANCE:
- D.Out(pdTrace, "Receiving Message from Federate, type DeleteObject.");
- rep.setEventRetraction(om->deleteObject(req->getObject(),
req->getTag(),
+ case Message::DELETE_OBJECT_INSTANCE: {
+
+ G.Out(pdGendoc,"D_O_I into RTIA::chooseFederateProcessing") ;
+
+ try {
+ if ( req->getBoolean() ) {
+ D.Out(pdTrace,
+ "Receiving Message from Federate, type DeleteObjectInstance with \
+ TIMESTAMP.");
+ rep.setEventRetraction(
+ om->deleteObject(
+ req->getObject(),
+ req->getFederationTime(),
+ req->getTag(),
e));
+ }
+ else {
+ D.Out(pdTrace,
+ "Receiving Message from Federate, type DeleteObjectInstance without \
+ TIMESTAMP.");
+ om->deleteObject(
+ req->getObject(),
+ req->getTag(),
+ e);
+ }
+ } catch (Exception *e) {
+ throw e;
+ }
+ }
break ;
case Message::CHANGE_ATTRIBUTE_TRANSPORTATION_TYPE:
@@ -1225,4 +1250,4 @@
}} // namespace certi/rtia
-// $Id: RTIA_federate.cc,v 3.54 2007/11/29 16:51:15 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.55 2007/12/05 12:29:39 approx Exp $
Index: RTIA/RTIA_network.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_network.cc,v
retrieving revision 3.15
retrieving revision 3.16
diff -u -b -r3.15 -r3.16
--- RTIA/RTIA_network.cc 29 Nov 2007 16:51:15 -0000 3.15
+++ RTIA/RTIA_network.cc 5 Dec 2007 12:29:39 -0000 3.16
@@ -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.15 2007/11/29 16:51:15 rousse Exp $
+// $Id: RTIA_network.cc,v 3.16 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -190,15 +190,18 @@
case NetworkMessage::REMOVE_OBJECT:
{
- D.Out(pdTrace, "Receving Message from RTIG, type
NetworkMessage::REMOVE_OBJECT.");
+ D.Out(pdTrace, "Receving Message from RTIG, \
+ type NetworkMessage::REMOVE_OBJECT.");
- if (tm->requestContraintState()) {
+ if (tm->requestContraintState() && msg->getBoolean()) {
// Verify that received TSO timestamp is >= current
// time + lookahead
queues->insertTsoMessage(msg);
}
- else
+ else {
+ msg->setBoolean(false);
queues->insertFifoMessage(msg);
+ }
break ;
}
@@ -323,4 +326,4 @@
}} // namespace certi/rtia
-// $Id: RTIA_network.cc,v 3.15 2007/11/29 16:51:15 rousse Exp $
+// $Id: RTIA_network.cc,v 3.16 2007/12/05 12:29:39 approx Exp $
Index: RTIA/TimeManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.cc,v
retrieving revision 3.23
retrieving revision 3.24
diff -u -b -r3.23 -r3.24
--- RTIA/TimeManagement.cc 27 Nov 2007 14:39:49 -0000 3.23
+++ RTIA/TimeManagement.cc 5 Dec 2007 12:29:39 -0000 3.24
@@ -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.23 2007/11/27 14:39:49 siron Exp $
+// $Id: TimeManagement.cc,v 3.24 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -222,11 +222,20 @@
}
case NetworkMessage::REMOVE_OBJECT:
+ if (msg.getBoolean()) {
om->removeObject(msg.object,
msg.federate,
+ msg.date,
msg.label,
msg.eventRetraction,
msg.exception);
+ }
+ else {
+ om->removeObject(msg.object,
+ msg.federate,
+ msg.label,
+ msg.exception);
+ }
break ;
case NetworkMessage::INFORM_ATTRIBUTE_OWNERSHIP:
@@ -747,4 +756,4 @@
}} // namespaces
-// $Id: TimeManagement.cc,v 3.23 2007/11/27 14:39:49 siron Exp $
+// $Id: TimeManagement.cc,v 3.24 2007/12/05 12:29:39 approx Exp $
Index: RTIG/Federation.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.cc,v
retrieving revision 3.70
retrieving revision 3.71
diff -u -b -r3.70 -r3.71
--- RTIG/Federation.cc 29 Nov 2007 16:51:15 -0000 3.70
+++ RTIG/Federation.cc 5 Dec 2007 12:29:39 -0000 3.71
@@ -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.70 2007/11/29 16:51:15 rousse Exp $
+// $Id: Federation.cc,v 3.71 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -727,6 +727,35 @@
/** Removes an object instance from federation.
@param federate Federate requesting removal
@param id Object handle
+ @param theTime Federation Time
+ @param tag Label for this operation
+ */
+void
+Federation::deleteObject(FederateHandle federate,
+ ObjectHandle id,
+ FederationTime theTime,
+ const char *tag)
+ throw (FederateNotExecutionMember,
+ DeletePrivilegeNotHeld,
+ ObjectNotKnown,
+ SaveInProgress,
+ RestoreInProgress,
+ InvalidFederationTime,
+ RTIinternalError)
+{
+ // It may throw FederateNotExecutionMember.
+ this->check(federate);
+
+ D.Out(pdRegister, "Federation %d: Federate %d destroys object %d.",
+ this->handle, federate, id);
+
+ root->deleteObjectInstance(federate, id, theTime, tag);
+ objectHandles.free(id);
+}
+// ----------------------------------------------------------------------------
+/** Removes an object instance from federation.
+ @param federate Federate requesting removal
+ @param id Object handle
@param tag Label for this operation
*/
void
@@ -2210,5 +2239,5 @@
}} // namespace certi/rtig
-// $Id: Federation.cc,v 3.70 2007/11/29 16:51:15 rousse Exp $
+// $Id: Federation.cc,v 3.71 2007/12/05 12:29:39 approx Exp $
Index: RTIG/Federation.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.hh,v
retrieving revision 3.43
retrieving revision 3.44
diff -u -b -r3.43 -r3.44
--- RTIG/Federation.hh 16 Nov 2007 15:04:22 -0000 3.43
+++ RTIG/Federation.hh 5 Dec 2007 12:29:39 -0000 3.44
@@ -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.hh,v 3.43 2007/11/16 15:04:22 rousse Exp $
+// $Id: Federation.hh,v 3.44 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#ifndef _CERTI_RTIG_FEDERATION_HH
@@ -222,6 +222,18 @@
void deleteObject(FederateHandle theFederateHandle,
ObjectHandle theObjectHandle,
+ FederationTime theTime,
+ const char *theUserTag)
+ throw (FederateNotExecutionMember,
+ DeletePrivilegeNotHeld,
+ ObjectNotKnown,
+ SaveInProgress,
+ RestoreInProgress,
+ InvalidFederationTime,
+ RTIinternalError);
+
+ void deleteObject(FederateHandle theFederateHandle,
+ ObjectHandle theObjectHandle,
const char *theUserTag)
throw (FederateNotExecutionMember,
DeletePrivilegeNotHeld,
@@ -576,4 +588,4 @@
#endif // _CERTI_RTIG_FEDERATION_HH
-// $Id: Federation.hh,v 3.43 2007/11/16 15:04:22 rousse Exp $
+// $Id: Federation.hh,v 3.44 2007/12/05 12:29:39 approx Exp $
Index: RTIG/FederationsList.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.cc,v
retrieving revision 3.45
retrieving revision 3.46
diff -u -b -r3.45 -r3.46
--- RTIG/FederationsList.cc 16 Nov 2007 15:04:22 -0000 3.45
+++ RTIG/FederationsList.cc 5 Dec 2007 12:29:39 -0000 3.46
@@ -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: FederationsList.cc,v 3.45 2007/11/16 15:04:22 rousse Exp $
+// $Id: FederationsList.cc,v 3.46 2007/12/05 12:29:39 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -241,7 +241,37 @@
}
// ----------------------------------------------------------------------------
-// destroyObject
+// destroyObject with time
+void
+FederationsList::destroyObject(Handle handle,
+ FederateHandle federate,
+ ObjectHandle id,
+ FederationTime theTime,
+ const char *tag)
+ throw (FederateNotExecutionMember,
+ FederationExecutionDoesNotExist,
+ DeletePrivilegeNotHeld,
+ ObjectNotKnown,
+ SaveInProgress,
+ RestoreInProgress,
+ InvalidFederationTime,
+ RTIinternalError)
+{
+ Federation *federation = NULL ;
+
+ // It may throw RTIinternalError.
+ checkHandle(handle);
+ checkHandle(federate);
+
+ // It may throw FederationExecutionDoesNotExist.
+ searchFederation(handle, federation);
+
+ federation->deleteObject(federate, id, theTime, tag);
+
+}
+
+// ----------------------------------------------------------------------------
+// destroyObject without time
void
FederationsList::destroyObject(Handle handle,
FederateHandle federate,
@@ -1480,5 +1510,5 @@
}} // certi::rtig
-// EOF $Id: FederationsList.cc,v 3.45 2007/11/16 15:04:22 rousse Exp $
+// EOF $Id: FederationsList.cc,v 3.46 2007/12/05 12:29:39 approx Exp $
Index: RTIG/FederationsList.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.hh,v
retrieving revision 3.35
retrieving revision 3.36
diff -u -b -r3.35 -r3.36
--- RTIG/FederationsList.hh 16 Nov 2007 15:04:22 -0000 3.35
+++ RTIG/FederationsList.hh 5 Dec 2007 12:29:40 -0000 3.36
@@ -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: FederationsList.hh,v 3.35 2007/11/16 15:04:22 rousse Exp $
+// $Id: FederationsList.hh,v 3.36 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#ifndef _CERTI_RTIG_FEDERATIONS_LIST_HH
@@ -263,6 +263,20 @@
void destroyObject(Handle theHandle,
FederateHandle theFederateHandle,
ObjectHandle theObjectHandle,
+ FederationTime theTime,
+ const char *theUserTag)
+ throw (FederateNotExecutionMember,
+ FederationExecutionDoesNotExist,
+ DeletePrivilegeNotHeld,
+ ObjectNotKnown,
+ SaveInProgress,
+ RestoreInProgress,
+ InvalidFederationTime,
+ RTIinternalError);
+
+ void destroyObject(Handle theHandle,
+ FederateHandle theFederateHandle,
+ ObjectHandle theObjectHandle,
const char *theUserTag)
throw (FederateNotExecutionMember,
FederationExecutionDoesNotExist,
@@ -562,4 +576,4 @@
#endif // _CERTI_RTIG_FEDERATIONS_LIST_HH
-// $Id: FederationsList.hh,v 3.35 2007/11/16 15:04:22 rousse Exp $
+// $Id: FederationsList.hh,v 3.36 2007/12/05 12:29:40 approx Exp $
Index: RTIG/RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.44
retrieving revision 3.45
diff -u -b -r3.44 -r3.45
--- RTIG/RTIG_processing.cc 16 Nov 2007 15:04:22 -0000 3.44
+++ RTIG/RTIG_processing.cc 5 Dec 2007 12:29:40 -0000 3.45
@@ -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.44 2007/11/16 15:04:22 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.45 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -789,16 +789,27 @@
}
// ----------------------------------------------------------------------------
-// processdeleteObject
+// processDeleteObject
void
RTIG::processDeleteObject(Socket *link, NetworkMessage *req)
{
+ G.Out(pdGendoc,"BEGIN ** DELETE OBJECT INSTANCE service **");
+ G.Out(pdGendoc,"enter RTIG::processDeleteObject");
auditServer << "ObjID = %u" << req->object ;
+ if ( req->getBoolean() ) {
federations.destroyObject(req->federation,
req->federate,
req->object,
+ req->date,
req->label);
+ }
+ else {
+ federations.destroyObject(req->federation,
+ req->federate,
+ req->object,
+ req->label);
+ }
D.Out(pdRegister, "Object # %u of Federation %u has been deleted.",
req->object, req->federation);
@@ -810,6 +821,9 @@
rep.object = req->object ;
rep.write(link); // send answer to RTIA
+
+ G.Out(pdGendoc,"exit RTIG::processDeleteObject");
+ G.Out(pdGendoc,"END ** DELETE OBJECT INSTANCE **");
}
// ----------------------------------------------------------------------------
@@ -1304,4 +1318,4 @@
}} // namespace certi/rtig
-// $Id: RTIG_processing.cc,v 3.44 2007/11/16 15:04:22 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.45 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/Message_R.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_R.cc,v
retrieving revision 3.8
retrieving revision 3.9
diff -u -b -r3.8 -r3.9
--- libCERTI/Message_R.cc 13 Nov 2007 13:25:40 -0000 3.8
+++ libCERTI/Message_R.cc 5 Dec 2007 12:29:40 -0000 3.9
@@ -17,7 +17,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: Message_R.cc,v 3.8 2007/11/13 13:25:40 rousse Exp $
+// $Id: Message_R.cc,v 3.9 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
@@ -318,6 +318,7 @@
readName(body);
readLabel(body);
readResignAction(body);
+ boolean = body.readLongInt();
break ;
// Body contains object
@@ -703,4 +704,4 @@
} // namespace certi
-// $Id: Message_R.cc,v 3.8 2007/11/13 13:25:40 rousse Exp $
+// $Id: Message_R.cc,v 3.9 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/Message_W.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_W.cc,v
retrieving revision 3.9
retrieving revision 3.10
diff -u -b -r3.9 -r3.10
--- libCERTI/Message_W.cc 13 Nov 2007 13:25:40 -0000 3.9
+++ libCERTI/Message_W.cc 5 Dec 2007 12:29:40 -0000 3.10
@@ -17,7 +17,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: Message_W.cc,v 3.9 2007/11/13 13:25:40 rousse Exp $
+// $Id: Message_W.cc,v 3.10 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
@@ -326,6 +326,7 @@
body.writeString(name);
body.writeString(label);
writeResignAction(body);
+ body.writeLongInt(boolean);
break ;
// Body contains object
@@ -688,4 +689,4 @@
} // namespace certi
-// $Id: Message_W.cc,v 3.9 2007/11/13 13:25:40 rousse Exp $
+// $Id: Message_W.cc,v 3.10 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/NetworkMessage_RW.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/NetworkMessage_RW.cc,v
retrieving revision 3.33
retrieving revision 3.34
diff -u -b -r3.33 -r3.34
--- libCERTI/NetworkMessage_RW.cc 29 Nov 2007 16:51:15 -0000 3.33
+++ libCERTI/NetworkMessage_RW.cc 5 Dec 2007 12:29:40 -0000 3.34
@@ -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.33 2007/11/29 16:51:15 rousse Exp $
+// $Id: NetworkMessage_RW.cc,v 3.34 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
@@ -169,6 +169,7 @@
case DELETE_OBJECT:
case REMOVE_OBJECT:
object = body.readLongInt();
+ boolean = body.readLongInt(); // true means with time
readLabel(body);
break ;
@@ -358,6 +359,8 @@
case ANNOUNCE_SYNCHRONIZATION_POINT:
case DELETE_OBJECT:
case REMOVE_OBJECT:
+ date = Header.VP.O_I.date;
+ break;
case CLOSE_CONNEXION:
case RESIGN_FEDERATION_EXECUTION:
case IS_ATTRIBUTE_OWNED_BY_FEDERATE:
@@ -601,6 +604,7 @@
case DELETE_OBJECT:
case REMOVE_OBJECT:
body.writeLongInt(object);
+ body.writeLongInt(boolean); // true means with time (stored in
header)
body.writeString(label);
break ;
@@ -868,9 +872,14 @@
break ;
case DELETE_OBJECT:
+ Header.bodySize = 1;
+ Header.VP.O_I.date = date;
+ break;
case REMOVE_OBJECT:
// body Contains ObjectHandle, and label
Header.bodySize = 1 ;
+ if ( boolean)
+ Header.VP.O_I.date = date ;
break ;
// -- time Variable Part(No body)[Continued] --
@@ -971,4 +980,4 @@
} // namespace certi
-// $Id: NetworkMessage_RW.cc,v 3.33 2007/11/29 16:51:15 rousse Exp $
+// $Id: NetworkMessage_RW.cc,v 3.34 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/ObjectClass.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClass.cc,v
retrieving revision 3.40
retrieving revision 3.41
diff -u -b -r3.40 -r3.41
--- libCERTI/ObjectClass.cc 29 Nov 2007 16:51:15 -0000 3.40
+++ libCERTI/ObjectClass.cc 5 Dec 2007 12:29:40 -0000 3.41
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: ObjectClass.cc,v 3.40 2007/11/29 16:51:15 rousse Exp $
+// $Id: ObjectClass.cc,v 3.41 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#include "Object.hh"
@@ -313,7 +313,8 @@
}
// ----------------------------------------------------------------------------
-/*! Delete the object instance 'theObjectHandle', and starts to
+/* Delete Instance with time.
+ Delete the object instance 'theObjectHandle', and starts to
broadcast the RemoveObject message. Return a BroadcastList of
Federates, in order to allow our ObjectClassSet to go on with
the message broadcasting, by giving the list to our parent
@@ -322,11 +323,13 @@
ObjectClassBroadcastList *
ObjectClass::deleteInstance(FederateHandle the_federate,
ObjectHandle the_object,
+ FederationTime theTime,
const char *the_tag)
throw (DeletePrivilegeNotHeld,
ObjectNotKnown,
RTIinternalError)
{
+
// 1. Pre-conditions checking(may throw ObjectNotKnown)
Object *object = getInstanceWithID(the_object);
@@ -360,6 +363,81 @@
answer->exception = e_NO_EXCEPTION ;
answer->objectClass = handle ; // Class Handle
answer->object = the_object ;
+
+ // with time
+ answer->date = theTime ;
+ answer->boolean = true ;
+
+ strcpy(answer->label, the_tag);
+
+ ocbList = new ObjectClassBroadcastList(answer, 0);
+ broadcastClassMessage(ocbList);
+ }
+ else {
+ D.Out(pdRegister,
+ "Object %u deleted in class %u, no broadcast to do.",
+ the_object, handle);
+ }
+
+ // Return the BroadcastList in case it had to be passed to the parent
+ // class.
+ return ocbList ;
+}
+
+// ----------------------------------------------------------------------------
+/* Delete Instance without time.
+ Delete the object instance 'theObjectHandle', and starts to
+ broadcast the RemoveObject message. Return a BroadcastList of
+ Federates, in order to allow our ObjectClassSet to go on with
+ the message broadcasting, by giving the list to our parent
+ class.
+*/
+ObjectClassBroadcastList *
+ObjectClass::deleteInstance(FederateHandle the_federate,
+ ObjectHandle the_object,
+ const char *the_tag)
+ throw (DeletePrivilegeNotHeld,
+ ObjectNotKnown,
+ RTIinternalError)
+{
+ // 1. Pre-conditions checking(may throw ObjectNotKnown)
+ Object *object = getInstanceWithID(the_object);
+
+ // Is the Federate really the Object Owner?(Checked only on RTIG)
+ if ((server != 0) && (object->getOwner() != the_federate)) {
+ D.Out(pdExcept, "Delete Object %d: Federate %d not owner.",
+ the_object, the_federate);
+ throw DeletePrivilegeNotHeld("");
+ }
+
+ // 2. Remove Instance from list.
+ list<Object *>::iterator o ;
+ for (o = objectSet.begin(); o != objectSet.end(); o++) {
+ if ((*o)->getHandle() == the_object) {
+ objectSet.erase(o); // i is dereferenced.
+ break ;
+ }
+ }
+
+ // 3. Prepare and broadcast message.
+ ObjectClassBroadcastList *ocbList = NULL ;
+ if (server != NULL) {
+ D.Out(pdRegister,
+ "Object %u deleted in class %u, now broadcasting...",
+ the_object, handle);
+
+ NetworkMessage *answer = new NetworkMessage ;
+ answer->type = NetworkMessage::REMOVE_OBJECT ;
+ answer->federation = server->federation();
+ answer->federate = the_federate ;
+ answer->exception = e_NO_EXCEPTION ;
+ answer->objectClass = handle ; // Class Handle
+ answer->object = the_object ;
+
+ // without time
+ answer->date = 0 ;
+ answer->boolean = false ;
+
strcpy(answer->label, the_tag);
ocbList = new ObjectClassBroadcastList(answer, 0);
@@ -1751,4 +1829,4 @@
} // namespace certi
-// $Id: ObjectClass.cc,v 3.40 2007/11/29 16:51:15 rousse Exp $
+// $Id: ObjectClass.cc,v 3.41 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/ObjectClass.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClass.hh,v
retrieving revision 3.30
retrieving revision 3.31
diff -u -b -r3.30 -r3.31
--- libCERTI/ObjectClass.hh 31 Oct 2007 10:30:22 -0000 3.30
+++ libCERTI/ObjectClass.hh 5 Dec 2007 12:29:40 -0000 3.31
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: ObjectClass.hh,v 3.30 2007/10/31 10:30:22 erk Exp $
+// $Id: ObjectClass.hh,v 3.31 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#ifndef _CERTI_OBJECT_CLASS_HH
@@ -176,6 +176,14 @@
// Instance Management
ObjectClassBroadcastList *deleteInstance(FederateHandle theFederateHandle,
ObjectHandle theObjectHandle,
+ FederationTime theTime,
+ const char *theUserTag)
+ throw (DeletePrivilegeNotHeld,
+ ObjectNotKnown,
+ RTIinternalError);
+
+ ObjectClassBroadcastList *deleteInstance(FederateHandle theFederateHandle,
+ ObjectHandle theObjectHandle,
const char *theUserTag)
throw (DeletePrivilegeNotHeld,
ObjectNotKnown,
@@ -252,4 +260,4 @@
#endif // _CERTI_OBJECT_CLASS_HH
-// $Id: ObjectClass.hh,v 3.30 2007/10/31 10:30:22 erk Exp $
+// $Id: ObjectClass.hh,v 3.31 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/ObjectClassSet.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClassSet.cc,v
retrieving revision 3.30
retrieving revision 3.31
diff -u -b -r3.30 -r3.31
--- libCERTI/ObjectClassSet.cc 29 Nov 2007 16:51:16 -0000 3.30
+++ libCERTI/ObjectClassSet.cc 5 Dec 2007 12:29:40 -0000 3.31
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: ObjectClassSet.cc,v 3.30 2007/11/29 16:51:16 rousse Exp $
+// $Id: ObjectClassSet.cc,v 3.31 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
// Project
@@ -132,7 +132,50 @@
}
// ----------------------------------------------------------------------------
-//! deleteObject.
+//! deleteObject with time.
+void
+ObjectClassSet::deleteObject(FederateHandle federate,
+ ObjectHandle object,
+ FederationTime theTime,
+ const char *tag)
+ throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError)
+{
+ // It may throw ObjectNotKnown
+ ObjectClass *oclass = getInstanceClass(object);
+
+ D.Out(pdRegister,
+ "Federate %d attempts to delete instance %d in class %d.",
+ federate, object, oclass->getHandle());
+
+ // It may throw a bunch of exceptions.
+ ObjectClassBroadcastList *ocbList = oclass->deleteInstance(federate,
+ object,
+ theTime,
+ tag);
+
+ // Broadcast RemoveObject message recursively
+ ObjectClassHandle current_class = 0 ;
+ if (ocbList != 0) {
+
+ current_class = oclass->getSuperclass();
+
+ while (current_class) {
+ D.Out(pdRegister,
+ "Broadcasting Remove msg to parent class %d for instance
%d.",
+ current_class, object);
+
+ // It may throw ObjectClassNotDefined
+ oclass = getWithHandle(current_class);
+ oclass->broadcastClassMessage(ocbList);
+
+ current_class = oclass->getSuperclass();
+ }
+
+ delete ocbList ;
+ }
+}
+// ----------------------------------------------------------------------------
+//! deleteObject without time.
void
ObjectClassSet::deleteObject(FederateHandle federate,
ObjectHandle object,
@@ -782,4 +825,4 @@
} // namespace certi
-// $Id: ObjectClassSet.cc,v 3.30 2007/11/29 16:51:16 rousse Exp $
+// $Id: ObjectClassSet.cc,v 3.31 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/ObjectClassSet.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClassSet.hh,v
retrieving revision 3.25
retrieving revision 3.26
diff -u -b -r3.25 -r3.26
--- libCERTI/ObjectClassSet.hh 19 Nov 2007 09:29:03 -0000 3.25
+++ libCERTI/ObjectClassSet.hh 5 Dec 2007 12:29:40 -0000 3.26
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: ObjectClassSet.hh,v 3.25 2007/11/19 09:29:03 erk Exp $
+// $Id: ObjectClassSet.hh,v 3.26 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#ifndef _CERTI_OBJECT_CLASS_SET_HH
@@ -92,6 +92,12 @@
// Object Instance Management
void deleteObject(FederateHandle theFederateHandle,
ObjectHandle theObjectHandle,
+ FederationTime theTime,
+ const char *theTag)
+ throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError);
+
+ void deleteObject(FederateHandle theFederateHandle,
+ ObjectHandle theObjectHandle,
const char *theTag)
throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError);
@@ -204,4 +210,4 @@
#endif // _CERTI_OBJECT_CLASS_SET_HH
-// $Id: ObjectClassSet.hh,v 3.25 2007/11/19 09:29:03 erk Exp $
+// $Id: ObjectClassSet.hh,v 3.26 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/RootObject.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/RootObject.cc,v
retrieving revision 3.30
retrieving revision 3.31
diff -u -b -r3.30 -r3.31
--- libCERTI/RootObject.cc 4 Dec 2007 11:00:58 -0000 3.30
+++ libCERTI/RootObject.cc 5 Dec 2007 12:29:40 -0000 3.31
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RootObject.cc,v 3.30 2007/12/04 11:00:58 erk Exp $
+// $Id: RootObject.cc,v 3.31 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#include "Object.hh"
@@ -258,6 +258,18 @@
void
RootObject::deleteObjectInstance(FederateHandle the_federate,
ObjectHandle the_object,
+ FederationTime theTime,
+ const char *the_tag)
+ throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError)
+{
+ ObjectClasses->deleteObject(the_federate, the_object, theTime, the_tag);
+ objects->deleteObjectInstance(the_federate, the_object, the_tag);
+}
+
+// ----------------------------------------------------------------------------
+void
+RootObject::deleteObjectInstance(FederateHandle the_federate,
+ ObjectHandle the_object,
const char *the_tag)
throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError)
{
@@ -320,4 +332,4 @@
} // namespace certi
-// $Id: RootObject.cc,v 3.30 2007/12/04 11:00:58 erk Exp $
+// $Id: RootObject.cc,v 3.31 2007/12/05 12:29:40 approx Exp $
Index: libCERTI/RootObject.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/RootObject.hh,v
retrieving revision 3.25
retrieving revision 3.26
diff -u -b -r3.25 -r3.26
--- libCERTI/RootObject.hh 19 Nov 2007 14:07:04 -0000 3.25
+++ libCERTI/RootObject.hh 5 Dec 2007 12:29:40 -0000 3.26
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RootObject.hh,v 3.25 2007/11/19 14:07:04 erk Exp $
+// $Id: RootObject.hh,v 3.26 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#ifndef LIBCERTI_ROOT_OBJECT
@@ -88,6 +88,10 @@
ObjectAlreadyRegistered,
RTIinternalError);
+ void deleteObjectInstance(FederateHandle, ObjectHandle,
+ FederationTime theTime, const char *)
+ throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError);
+
void deleteObjectInstance(FederateHandle, ObjectHandle, const char *)
throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError);
@@ -119,4 +123,4 @@
#endif // LIBCERTI_ROOT_OBJECT
-// $Id: RootObject.hh,v 3.25 2007/11/19 14:07:04 erk Exp $
+// $Id: RootObject.hh,v 3.26 2007/12/05 12:29:40 approx Exp $
Index: libRTI/RTIambPrivateRefs.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambPrivateRefs.cc,v
retrieving revision 3.7
retrieving revision 3.8
diff -u -b -r3.7 -r3.8
--- libRTI/RTIambPrivateRefs.cc 27 Nov 2007 08:55:54 -0000 3.7
+++ libRTI/RTIambPrivateRefs.cc 5 Dec 2007 12:29:40 -0000 3.8
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RTIambPrivateRefs.cc,v 3.7 2007/11/27 08:55:54 erk Exp $
+// $Id: RTIambPrivateRefs.cc,v 3.8 2007/12/05 12:29:40 approx Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -544,4 +544,4 @@
}
}
-// $Id: RTIambPrivateRefs.cc,v 3.7 2007/11/27 08:55:54 erk Exp $
+// $Id: RTIambPrivateRefs.cc,v 3.8 2007/12/05 12:29:40 approx Exp $
Index: libRTI/RTIambassador.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambassador.cc,v
retrieving revision 3.59
retrieving revision 3.60
diff -u -b -r3.59 -r3.60
--- libRTI/RTIambassador.cc 27 Nov 2007 08:55:54 -0000 3.59
+++ libRTI/RTIambassador.cc 5 Dec 2007 12:29:41 -0000 3.60
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RTIambassador.cc,v 3.59 2007/11/27 08:55:54 erk Exp $
+// $Id: RTIambassador.cc,v 3.60 2007/12/05 12:29:41 approx Exp $
// ----------------------------------------------------------------------------
@@ -389,10 +389,18 @@
} break ;
case Message::REMOVE_OBJECT_INSTANCE: {
-
privateRefs->fed_amb->removeObjectInstance(vers_Fed.getObject(),
+ if (vers_Fed.getBoolean()) {
+ privateRefs->fed_amb->removeObjectInstance(
+ vers_Fed.getObject(),
vers_Fed.getFedTime(),
vers_Fed.getTag(),
vers_Fed.getEventRetraction());
+ }
+ else {
+ privateRefs->fed_amb->removeObjectInstance(
+ vers_Fed.getObject(),
+ vers_Fed.getTag());
+ }
} break ;
case Message::PROVIDE_ATTRIBUTE_VALUE_UPDATE: {
@@ -1227,7 +1235,13 @@
}
// ----------------------------------------------------------------------------
-// Delete Object
+/** Delete Object with time
+ This service (HLA 1.3) deletes an object instance.
+ As the federation time argument is supplied, an event retraction
designator is returned.
+ @param theObject Object designator
+ @param theTime Federation time
+ @param theTag user supplied tag
+*/
EventRetractionHandle
RTI::RTIambassador::deleteObjectInstance(ObjectHandle theObject,
const FedTime& theTime,
@@ -1248,11 +1262,18 @@
req.setFedTime(theTime);
req.setTag(theTag);
+ req.setBoolean(true);
+
privateRefs->executeService(&req, &rep);
return rep.getEventRetraction();
}
// ----------------------------------------------------------------------------
+/** Delete Object without time
+ This service (HLA 1.3) deletes an object instance.
+ @param theObject Object designator
+ @param theTag user supplied tag
+*/
void
RTI::RTIambassador::deleteObjectInstance(ObjectHandle theObject,
const char *theTag)
@@ -1260,13 +1281,14 @@
RTI::ConcurrentAccessAttempted, RTI::FederateNotExecutionMember,
RTI::DeletePrivilegeNotHeld, RTI::ObjectNotKnown)
{
- throw UnimplementedService("");
Message req, rep ;
req.type = Message::DELETE_OBJECT_INSTANCE ;
req.setObject(theObject);
req.setTag(theTag);
+ req.setBoolean(false);
+
privateRefs->executeService(&req, &rep);
}
@@ -2879,4 +2901,4 @@
privateRefs->executeService(&req, &rep);
}
-// $Id: RTIambassador.cc,v 3.59 2007/11/27 08:55:54 erk Exp $
+// $Id: RTIambassador.cc,v 3.60 2007/12/05 12:29:41 approx Exp $
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- certi RTIA/ObjectManagement.cc RTIA/ObjectManag...,
certi-cvs <=