[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi libCERTI/RootObject.hh libCERTI/ObjectSet...
From: |
certi-cvs |
Subject: |
[certi-cvs] certi libCERTI/RootObject.hh libCERTI/ObjectSet... |
Date: |
Mon, 15 Nov 2010 13:15:47 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 10/11/15 13:15:47
Modified files:
libCERTI : RootObject.hh ObjectSet.cc RootObject.cc
ObjectSet.hh
RTIA : ObjectManagement.hh RTIA_federate.cc
ObjectManagement.cc FederationManagement.cc
Log message:
Handle delete object action in RFE
merged modified patch from Michael Raab:
patch #7391 : Implement action in Resign Federation Execution
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/RootObject.hh?cvsroot=certi&r1=3.36&r2=3.37
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectSet.cc?cvsroot=certi&r1=3.33&r2=3.34
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/RootObject.cc?cvsroot=certi&r1=3.51&r2=3.52
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectSet.hh?cvsroot=certi&r1=3.18&r2=3.19
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.hh?cvsroot=certi&r1=3.37&r2=3.38
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&r1=3.111&r2=3.112
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.cc?cvsroot=certi&r1=3.73&r2=3.74
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/FederationManagement.cc?cvsroot=certi&r1=3.87&r2=3.88
Patches:
Index: libCERTI/RootObject.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/RootObject.hh,v
retrieving revision 3.36
retrieving revision 3.37
diff -u -b -r3.36 -r3.37
--- libCERTI/RootObject.hh 31 May 2010 09:33:26 -0000 3.36
+++ libCERTI/RootObject.hh 15 Nov 2010 13:15:46 -0000 3.37
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RootObject.hh,v 3.36 2010/05/31 09:33:26 erk Exp $
+// $Id: RootObject.hh,v 3.37 2010/11/15 13:15:46 erk Exp $
// ----------------------------------------------------------------------------
#ifndef LIBCERTI_ROOT_OBJECT
@@ -137,6 +137,9 @@
ObjectClassAttribute *getObjectClassAttribute(ObjectHandle,
AttributeHandle);
+ void
+ getAllObjectInstancesFromFederate(FederateHandle the_federate,
std::vector<ObjectHandle>& handles);
+
/**
* Add an object class to the ObjectRoot
* @param[in,out] currentOC the object class to be added
@@ -202,4 +205,4 @@
#endif // LIBCERTI_ROOT_OBJECT
-// $Id: RootObject.hh,v 3.36 2010/05/31 09:33:26 erk Exp $
+// $Id: RootObject.hh,v 3.37 2010/11/15 13:15:46 erk Exp $
Index: libCERTI/ObjectSet.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectSet.cc,v
retrieving revision 3.33
retrieving revision 3.34
diff -u -b -r3.33 -r3.34
--- libCERTI/ObjectSet.cc 31 May 2010 09:33:26 -0000 3.33
+++ libCERTI/ObjectSet.cc 15 Nov 2010 13:15:46 -0000 3.34
@@ -429,6 +429,22 @@
}
// ----------------------------------------------------------------------------
+void
+ObjectSet::getAllObjectInstancesFromFederate(FederateHandle the_federate,
std::vector<ObjectHandle>& ownedObjectInstances)
+{
+
+ ownedObjectInstances.clear();
+ std::map<ObjectHandle, Object *>::const_iterator i ;
+ for (i = begin(); i != end(); ++i) {
+ if (i->second != 0 &&
+ i->second->getOwner() == the_federate)
+ {
+ ownedObjectInstances.push_back(i->first);
+ }
+ }
+}
+
+// ----------------------------------------------------------------------------
//! sendToFederate.
void
ObjectSet::sendToFederate(NetworkMessage *msg,
@@ -475,4 +491,4 @@
}
} // namespace certi
-// $Id: ObjectSet.cc,v 3.33 2010/05/31 09:33:26 erk Exp $
+// $Id: ObjectSet.cc,v 3.34 2010/11/15 13:15:46 erk Exp $
Index: libCERTI/RootObject.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/RootObject.cc,v
retrieving revision 3.51
retrieving revision 3.52
diff -u -b -r3.51 -r3.52
--- libCERTI/RootObject.cc 31 May 2010 09:33:26 -0000 3.51
+++ libCERTI/RootObject.cc 15 Nov 2010 13:15:46 -0000 3.52
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RootObject.cc,v 3.51 2010/05/31 09:33:26 erk Exp $
+// $Id: RootObject.cc,v 3.52 2010/11/15 13:15:46 erk Exp $
// ----------------------------------------------------------------------------
#include "Object.hh"
@@ -407,9 +407,16 @@
G.Out(pdGendoc,"into RootObject::requestObjectOwner");
return(objects->requestObjectOwner(theFederateHandle, theObject));
-
}
+// ----------------------------------------------------------------------------
+// getAllObjectInstancesFromFederate
+void
+RootObject::getAllObjectInstancesFromFederate(FederateHandle the_federate,
std::vector<ObjectHandle>& handles)
+{
+ objects->getAllObjectInstancesFromFederate(the_federate,handles);
+} /* end of getAllObjectInstancesFromFederate */
+
void
RootObject::addObjectClass(ObjectClass* currentOC,ObjectClass* parentOC) {
ObjectClasses->addClass(currentOC,parentOC);
@@ -621,4 +628,4 @@
} // namespace certi
-// $Id: RootObject.cc,v 3.51 2010/05/31 09:33:26 erk Exp $
+// $Id: RootObject.cc,v 3.52 2010/11/15 13:15:46 erk Exp $
Index: libCERTI/ObjectSet.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectSet.hh,v
retrieving revision 3.18
retrieving revision 3.19
diff -u -b -r3.18 -r3.19
--- libCERTI/ObjectSet.hh 31 May 2010 09:33:26 -0000 3.18
+++ libCERTI/ObjectSet.hh 15 Nov 2010 13:15:46 -0000 3.19
@@ -164,6 +164,9 @@
Object *getObjectByName(const std::string &the_object_name) const;
+ void
+ getAllObjectInstancesFromFederate(FederateHandle
the_federate,std::vector<ObjectHandle>& handles);
+
protected:
void sendToFederate(NetworkMessage *msg,
FederateHandle the_federate) const ;
Index: RTIA/ObjectManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.hh,v
retrieving revision 3.37
retrieving revision 3.38
diff -u -b -r3.37 -r3.38
--- RTIA/ObjectManagement.hh 9 Nov 2010 22:24:44 -0000 3.37
+++ RTIA/ObjectManagement.hh 15 Nov 2010 13:15:46 -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: ObjectManagement.hh,v 3.37 2010/11/09 22:24:44 erk Exp $
+// $Id: ObjectManagement.hh,v 3.38 2010/11/15 13:15:46 erk Exp $
// ----------------------------------------------------------------------------
#ifndef _CERTI_RTIA_OM
@@ -131,6 +131,11 @@
const std::string& theTag,
TypeException &e);
+ /**
+ * Delete all objects [instance] owned by this federate.
+ */
+ void deleteAllObjects(TypeException &e);
+
void removeObject(ObjectHandle theObjectHandle,
FederateHandle theFederateHandle,
FederationTime theTime,
@@ -308,4 +313,4 @@
#endif // _CERTI_RTIA_OM
-// $Id: ObjectManagement.hh,v 3.37 2010/11/09 22:24:44 erk Exp $
+// $Id: ObjectManagement.hh,v 3.38 2010/11/15 13:15:46 erk Exp $
Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.111
retrieving revision 3.112
diff -u -b -r3.111 -r3.112
--- RTIA/RTIA_federate.cc 2 Oct 2010 13:20:42 -0000 3.111
+++ RTIA/RTIA_federate.cc 15 Nov 2010 13:15:46 -0000 3.112
@@ -202,6 +202,23 @@
D.Out(pdTrace,
"Receiving Message from Federate, type
ResignFederation.");
+ switch( RFEq->getResignAction() )
+ {
+ case RELEASE_ATTRIBUTES:
+ // TODO: Add attribute handling here
+ break;
+ case DELETE_OBJECTS:
+ om->deleteAllObjects(e);
+ break;
+ case DELETE_OBJECTS_AND_RELEASE_ATTRIBUTES:
+ // TODO: Add attribute handling here
+ om->deleteAllObjects(e);
+ break;
+ case NO_ACTION:
+ // NOTHING to DO
+ break;
+ }
+
fm->resignFederationExecution(RFEq->getResignAction(), e);
}
break ;
Index: RTIA/ObjectManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.cc,v
retrieving revision 3.73
retrieving revision 3.74
diff -u -b -r3.73 -r3.74
--- RTIA/ObjectManagement.cc 9 Nov 2010 22:24:44 -0000 3.73
+++ RTIA/ObjectManagement.cc 15 Nov 2010 13:15:47 -0000 3.74
@@ -498,6 +498,23 @@
} /* end of deleteObject */
// ----------------------------------------------------------------------------
+
+void
+ObjectManagement::deleteAllObjects(TypeException &e)
+{
+ std::vector<ObjectHandle> ownedObjectInstances;
+
+ rootObject->getAllObjectInstancesFromFederate(fm->federate,
ownedObjectInstances);
+
+ for(std::vector<ObjectHandle>::iterator it =
ownedObjectInstances.begin();
+ it != ownedObjectInstances.end();
+ ++it)
+ {
+ this->deleteObject((*it), "", e);
+ }
+} /* end of deleteAllObjects */
+
+// ----------------------------------------------------------------------------
//! removeObject with time
void
ObjectManagement::removeObject(ObjectHandle the_object,
Index: RTIA/FederationManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/FederationManagement.cc,v
retrieving revision 3.87
retrieving revision 3.88
diff -u -b -r3.87 -r3.88
--- RTIA/FederationManagement.cc 11 Aug 2010 16:45:14 -0000 3.87
+++ RTIA/FederationManagement.cc 15 Nov 2010 13:15:47 -0000 3.88
@@ -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.87 2010/08/11 16:45:14 erk Exp $
+// $Id: FederationManagement.cc,v 3.88 2010/11/15 13:15:47 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi libCERTI/RootObject.hh libCERTI/ObjectSet...,
certi-cvs <=