certi-cvs
[Top][All Lists]
Advanced

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



reply via email to

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