certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-cvs] certi/RTIG FederationsList.hh FederationsList.c...


From: certi-cvs
Subject: [certi-cvs] certi/RTIG FederationsList.hh FederationsList.c...
Date: Fri, 20 Nov 2009 19:43:40 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      09/11/20 19:43:40

Modified files:
        RTIG           : FederationsList.hh FederationsList.cc 
                         RTIG_processing.cc 

Log message:
        Check-in clean-up patch from Mathias
        patch #6988: Use std::map for looking up federations in rtig

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.hh?cvsroot=certi&r1=3.50&r2=3.51
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.cc?cvsroot=certi&r1=3.66&r2=3.67
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&r1=3.91&r2=3.92

Patches:
Index: FederationsList.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.hh,v
retrieving revision 3.50
retrieving revision 3.51
diff -u -b -r3.50 -r3.51
--- FederationsList.hh  19 Nov 2009 18:15:29 -0000      3.50
+++ FederationsList.hh  20 Nov 2009 19:43:40 -0000      3.51
@@ -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.50 2009/11/19 18:15:29 erk Exp $
+// $Id: FederationsList.hh,v 3.51 2009/11/20 19:43:40 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIG_FEDERATIONS_LIST_HH
@@ -30,14 +30,15 @@
 #include "AuditFile.hh"
 #include "PrettyDebug.hh"
 
-#include <list>
+#include <map>
+#include <string>
 
 namespace certi {
 namespace rtig {
 
 /*! FederationsList keep track on federation operations.
  */
-class FederationsList : private std::list<Federation *>
+class FederationsList
 {
 private:
     SocketServer &socketServer ;
@@ -65,8 +66,8 @@
                SecurityError,
                RTIinternalError);
 
-  void exists(const std::string& name, Handle &handle)
-        throw (FederationExecutionDoesNotExist, RTIinternalError);
+    Handle getFederationHandle(const std::string& name)
+        throw (FederationExecutionDoesNotExist);
 
     void destroyFederation(Handle)
         throw (FederatesCurrentlyJoined, FederationExecutionDoesNotExist,
@@ -640,14 +641,17 @@
 private:
     // Private methods
     void checkHandle(Handle theHandle) throw (RTIinternalError);
-    int searchFederation(Handle the_handle, Federation* &federation)
-        throw (FederationExecutionDoesNotExist, RTIinternalError);
+    Federation* searchFederation(Handle handle)
+        throw (FederationExecutionDoesNotExist);
 
     int verboseLevel;
+
+    typedef std::map<Handle, Federation*> HandleFederationMap;
+    HandleFederationMap _handleFederationMap;
 };
 
 }} // namespace certi/rtig
 
 #endif // _CERTI_RTIG_FEDERATIONS_LIST_HH
 
-// $Id: FederationsList.hh,v 3.50 2009/11/19 18:15:29 erk Exp $
+// $Id: FederationsList.hh,v 3.51 2009/11/20 19:43:40 erk Exp $

Index: FederationsList.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.cc,v
retrieving revision 3.66
retrieving revision 3.67
diff -u -b -r3.66 -r3.67
--- FederationsList.cc  19 Nov 2009 18:15:29 -0000      3.66
+++ FederationsList.cc  20 Nov 2009 19:43:40 -0000      3.67
@@ -18,13 +18,12 @@
 // 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.66 2009/11/19 18:15:29 erk Exp $
+// $Id: FederationsList.cc,v 3.67 2009/11/20 19:43:40 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
 #include "FederationsList.hh"
 
-using std::list ;
 using std::endl ;
 
 namespace certi {
@@ -36,8 +35,7 @@
 // ----------------------------------------------------------------------------
 // Constructor
 FederationsList::FederationsList(SocketServer &server, AuditFile &audit)
-    : list<Federation *>(),
-      socketServer(server),
+    : socketServer(server),
       auditFile(audit),
       verboseLevel(0)
 {
@@ -47,19 +45,18 @@
 // Destructor
 FederationsList::~FederationsList()
 {
-    if (!empty())
+    if (!_handleFederationMap.empty())
         D.Out(pdError, "ListeFederation not empty at destruction time.");
 
-    for (list<Federation *>::iterator i = begin(); i != end(); i++) {
-        delete(*i);
+    for (HandleFederationMap::const_iterator i = _handleFederationMap.begin(); 
i != _handleFederationMap.end(); ++i) {
+        delete i->second;
     }
-    clear();
 }
 
 // ----------------------------------------------------------------------------
 //! Sets Class Relevance Advisory Switch
 void
-FederationsList::setClassRelevanceAdvisorySwitch(Handle handle,
+FederationsList::setClassRelevanceAdvisorySwitch(Handle federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -67,14 +64,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->setClassRelevanceAdvisorySwitch(federate);
@@ -83,7 +77,7 @@
 // ----------------------------------------------------------------------------
 //! Clears Class Relevance Advisory Switch
 void
-FederationsList::unsetClassRelevanceAdvisorySwitch(Handle handle,
+FederationsList::unsetClassRelevanceAdvisorySwitch(Handle federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -91,14 +85,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->unsetClassRelevanceAdvisorySwitch(federate);
@@ -107,7 +98,7 @@
 // ----------------------------------------------------------------------------
 //! Sets Interaction Relevance Advisory Switch
 void
-FederationsList::setInteractionRelevanceAdvisorySwitch(Handle handle,
+FederationsList::setInteractionRelevanceAdvisorySwitch(Handle federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -115,14 +106,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->setInteractionRelevanceAdvisorySwitch(federate);
@@ -131,7 +119,7 @@
 // ----------------------------------------------------------------------------
 //! Clears Interaction Relevance Advisory Switch
 void
-FederationsList::unsetInteractionRelevanceAdvisorySwitch(Handle handle,
+FederationsList::unsetInteractionRelevanceAdvisorySwitch(Handle 
federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -139,14 +127,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->unsetInteractionRelevanceAdvisorySwitch(federate);
@@ -155,7 +140,7 @@
 // ----------------------------------------------------------------------------
 //! Sets Attribute Relevance Advisory Switch
 void
-FederationsList::setAttributeRelevanceAdvisorySwitch(Handle handle,
+FederationsList::setAttributeRelevanceAdvisorySwitch(Handle federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -163,14 +148,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->setAttributeRelevanceAdvisorySwitch(federate);
@@ -179,7 +161,7 @@
 // ----------------------------------------------------------------------------
 //! Clears Attribute Relevance Advisory Switch
 void
-FederationsList::unsetAttributeRelevanceAdvisorySwitch(Handle handle,
+FederationsList::unsetAttributeRelevanceAdvisorySwitch(Handle federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -187,14 +169,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->unsetAttributeRelevanceAdvisorySwitch(federate);
@@ -203,7 +182,7 @@
 // ----------------------------------------------------------------------------
 //! Sets Attribute Scope Advisory Switch
 void
-FederationsList::setAttributeScopeAdvisorySwitch(Handle handle,
+FederationsList::setAttributeScopeAdvisorySwitch(Handle federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -211,14 +190,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->setAttributeScopeAdvisorySwitch(federate);
@@ -227,7 +203,7 @@
 // ----------------------------------------------------------------------------
 //! Clears Attribute Scope Advisory Switch
 void
-FederationsList::unsetAttributeScopeAdvisorySwitch(Handle handle,
+FederationsList::unsetAttributeScopeAdvisorySwitch(Handle federationHandle,
                                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -235,14 +211,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->unsetAttributeScopeAdvisorySwitch(federate);
@@ -251,7 +224,7 @@
 // ----------------------------------------------------------------------------
 //! Adds a constrained federate to federation.
 void
-FederationsList::addConstrained(Handle handle,
+FederationsList::addConstrained(Handle federationHandle,
                                 FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -259,14 +232,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->addConstrained(federate);
@@ -279,7 +249,7 @@
   Federation is already paused.
 */
 FederateHandle
-FederationsList::addFederate(Handle handle,
+FederationsList::addFederate(Handle federationHandle,
                              const std::string& name,
                              SocketTCP *tcp_link,
                              NM_Join_Federation_Execution& objectModelData)
@@ -288,17 +258,11 @@
            MemoryExhausted,
            RTIinternalError)
 {
-
     G.Out(pdGendoc,"enter FederationsList::addFederate");
 
-    // It may throw RTIinternalError
-    // Verify integrity of the handle of the federation
-    checkHandle(handle);
-
     // It may throw FederationExecutionDoesNotExist
     // Return  federation address giving its handle
-    Federation *federation = NULL ;
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may raise a bunch of exceptions
     // adding the federate and return its handle
@@ -313,24 +277,15 @@
 
 // ----------------------------------------------------------------------------
 // searchFederation
-int
-FederationsList::searchFederation(Handle handle,
-                                  Federation* &federation)
-    throw (FederationExecutionDoesNotExist, RTIinternalError)
-{
-    federation = NULL ;
+Federation*
+FederationsList::searchFederation(Handle federationHandle)
+    throw (FederationExecutionDoesNotExist)
+{
+    HandleFederationMap::const_iterator i = 
_handleFederationMap.find(federationHandle);
+    if (i != _handleFederationMap.end())
+            return i->second;
 
-    // It may raise RTIinternalError
-    checkHandle(handle);
-
-    list<Federation *>::const_iterator i = begin();
-    for (int j = 1 ; i != end(); i++, j++) {
-        if ((*i)->getHandle() == handle) {
-            federation = (*i);
-            return j ;
-        }
-    }
-    D.Out(pdExcept, "Unknown Federation Handle %d.", handle);
+    D.Out(pdExcept, "Unknown Federation Handle %d.", federationHandle);
     throw FederationExecutionDoesNotExist("Bad Federation Handle.");
 }
 
@@ -343,7 +298,7 @@
     @param mc_link
 */
 void FederationsList::createFederation(const std::string& name,
-                                       Handle handle,
+                                       Handle federationHandle,
                                        SocketMC *mc_link)
 #else
 /** createFederation (with FEDERATION_USES_MULTICAST not defined)
@@ -352,7 +307,7 @@
     @param FEDid execution id. of the federation (i.e. file name)
 */
     void FederationsList::createFederation(const std::string& name,
-                                           Handle handle,
+                                           Handle federationHandle,
                                            const std::string& FEDid)
 #endif
     throw (FederationExecutionAlreadyExists,
@@ -362,18 +317,15 @@
            SecurityError,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-    Handle unused ;
-
     G.Out(pdGendoc,"enter FederationsList::createFederation");
     // It may throw RTIinternalError
-    checkHandle(handle);
-    auditFile << ", Handle : " << (long) handle ;
+    checkHandle(federationHandle);
+    auditFile << ", Handle : " << federationHandle ;
     if (name.empty()) throw RTIinternalError("Invalid Federation Name.");
 
     // It should throw FederationExecutionDoesNotExist.
     try {
-        exists(name, unused);
+        getFederationHandle(name);
         D.Out(pdExcept, "Federation %s already present.", name.c_str());
         G.Out(pdGendoc,"exit  FederationsList::createFederation on exception");
         throw FederationExecutionAlreadyExists(name);
@@ -383,11 +335,12 @@
               "CreerFederation catches FederationExecutionDoesNotExist.");
     }
 
+    Federation *federation = NULL ;
 #ifdef FEDERATION_USES_MULTICAST
-    federation = new Federation(name, handle, socketServer, auditFile, 
mc_link, verboseLevel);
+    federation = new Federation(name, federationHandle, socketServer, 
auditFile, mc_link, verboseLevel);
 #else
     try {
-        federation = new Federation(name, handle, socketServer, auditFile, 
FEDid,verboseLevel);
+        federation = new Federation(name, federationHandle, socketServer, 
auditFile, FEDid,verboseLevel);
         D.Out(pdDebug,"new Federation created.");
         }
     catch (CouldNotOpenFED& e) {
@@ -406,8 +359,8 @@
     if (federation == NULL)
         throw MemoryExhausted("No memory left for new Federation.");
 
-    push_front(federation);
-    D.Out(pdInit, "New Federation created with Handle %d.", handle);
+    _handleFederationMap[federationHandle] = federation;
+    D.Out(pdInit, "New Federation created with Handle %d.", federationHandle);
 
     G.Out(pdGendoc,"exit FederationsList::createFederation");
 }
@@ -415,7 +368,7 @@
 // ----------------------------------------------------------------------------
 // createRegulator
 void
-FederationsList::createRegulator(Handle handle,
+FederationsList::createRegulator(Handle federationHandle,
                                  FederateHandle federate,
                                  FederationTime time)
     throw (FederationExecutionDoesNotExist,
@@ -424,14 +377,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->addRegulator(federate, time);
@@ -440,7 +390,7 @@
 // ----------------------------------------------------------------------------
 // destroyObject with time
 void
-FederationsList::destroyObject(Handle handle,
+FederationsList::destroyObject(Handle federationHandle,
                               FederateHandle federate,
                               ObjectHandle id,
                               FederationTime theTime,
@@ -454,23 +404,19 @@
           InvalidFederationTime,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->deleteObject(federate, id, theTime, tag);
-
 }
 
 // ----------------------------------------------------------------------------
 // destroyObject without time
 void
-FederationsList::destroyObject(Handle handle,
+FederationsList::destroyObject(Handle federationHandle,
                                FederateHandle federate,
                                ObjectHandle id,
                                const std::string& tag)
@@ -482,14 +428,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->deleteObject(federate, id, tag);
 }
@@ -498,56 +441,48 @@
 /*! Return the Handle of the Federation named "name" if it is found in the
   FederationList, else throw FederationExecutionDoesNotExist.
 */
-void
-FederationsList::exists(const std::string& name,
-                        Handle &handle)
-    throw (FederationExecutionDoesNotExist, RTIinternalError)
-{
-    G.Out(pdGendoc,"enter FederationsList::exists");
-
-    for (list<Federation *>::iterator i = begin(); i != end(); i++) {
-        if ((*i)->getName() == name) {
-            handle = (*i)->getHandle();
-            G.Out(pdGendoc,"exit  FederationsList::exists");
-            return ;
+Handle
+FederationsList::getFederationHandle(const std::string& name)
+    throw (FederationExecutionDoesNotExist)
+{
+    G.Out(pdGendoc,"enter FederationsList::getFederationHandle");
+
+    for (HandleFederationMap::const_iterator i = _handleFederationMap.begin(); 
i != _handleFederationMap.end(); ++i) {
+        if (i->second->getName() == name) {
+            G.Out(pdGendoc,"exit  FederationsList::getFederationHandle");
+            return i->second->getHandle();
         }
     }
-    G.Out(pdGendoc,"exit  FederationsList::exists on exception");
+    G.Out(pdGendoc,"exit  FederationsList::getFederationHandle on exception");
 
-    D.Out(pdDebug, "exists throws FederationExecutionDoesNotExist.");
+    D.Out(pdDebug, "getFederationHandle throws 
FederationExecutionDoesNotExist.");
     throw FederationExecutionDoesNotExist(name);
 }
 
 // ----------------------------------------------------------------------------
 // info
 #ifdef FEDERATION_USES_MULTICAST
-void FederationsList::info(Handle handle,
+void FederationsList::info(Handle federationHandle,
                            int &nb_federates,
                            int &nb_regulators,
                            bool &is_syncing,
                            SocketMC* &comm_mc)
 #else
-    void FederationsList::info(Handle handle,
+    void FederationsList::info(Handle federationHandle,
                                int &nb_federates,
                                int &nb_regulators,
                                bool &is_syncing)
 #endif
     throw (FederationExecutionDoesNotExist, RTIinternalError)
 {
-    std::string FED_Filename;
-    Federation *federation = NULL;
     G.Out(pdGendoc,"enter FederationsList::info");
-    // It may raise RTIinternalError
-    checkHandle(handle);
 
     // It may throw FederationExecutionNotFound
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     nb_federates  = federation->getNbFederates();
     nb_regulators = federation->getNbRegulators();
     is_syncing    = federation->isSynchronizing();
-    // We need federation FEDid
-    FED_Filename = std::string(federation->getFEDid());
 #ifdef FEDERATION_USES_MULTICAST
     comm_mc = federation->MCLink ;
 #endif
@@ -557,7 +492,7 @@
 // ----------------------------------------------------------------------------
 // registerObject
 ObjectHandle
-FederationsList::registerObject(Handle handle,
+FederationsList::registerObject(Handle federationHandle,
                                 FederateHandle federate,
                                 ObjectClassHandle object_class,
                                 ObjectName_t name)
@@ -570,15 +505,12 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
-    D.Out(pdTrace, "handle = %d, federate = %d.", handle, federate);
+    D.Out(pdTrace, "federationHandle = %d, federate = %d.", federationHandle, 
federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     D.Out(pdTrace, "theObjectClass = %d, name = %s.", object_class, 
name.c_str());
     return(federation->registerObject(federate, object_class, name));
@@ -602,21 +534,18 @@
 // ----------------------------------------------------------------------------
 // updateRegulator
 void
-FederationsList::updateRegulator(Handle handle,
+FederationsList::updateRegulator(Handle federationHandle,
                                  FederateHandle federate,
                                  FederationTime time)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->updateRegulator(federate, time);
 }
@@ -624,7 +553,7 @@
 // ----------------------------------------------------------------------------
 // updateAttribute with time
 void
-FederationsList::updateAttribute(Handle handle,
+FederationsList::updateAttribute(Handle federationHandle,
                                  FederateHandle federate,
                                  ObjectHandle id,
                                  std::vector <AttributeHandle> &attributes,
@@ -641,14 +570,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->updateAttributeValues(federate, id, attributes, values,
                                       list_size, time, tag);
@@ -657,7 +583,7 @@
 // ----------------------------------------------------------------------------
 // updateAttribute without time
 void
-FederationsList::updateAttribute(Handle handle,
+FederationsList::updateAttribute(Handle federationHandle,
                                  FederateHandle federate,
                                  ObjectHandle id,
                                  std::vector <AttributeHandle> &attributes,
@@ -673,14 +599,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->updateAttributeValues(federate, id, attributes, values,
                                       list_size, tag);
@@ -688,7 +611,7 @@
 // ----------------------------------------------------------------------------
 // updateParameter with time
 void
-FederationsList::updateParameter(Handle handle,
+FederationsList::updateParameter(Handle federationHandle,
                                  FederateHandle federate,
                                  InteractionClassHandle interaction,
                                  std::vector <ParameterHandle> &parameters,
@@ -706,16 +629,13 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     G.Out(pdGendoc,"enter FederationsList::updateParameter with time");
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->broadcastInteraction(federate, interaction, parameters, values,
                                      list_size, time, region, tag);
@@ -727,7 +647,7 @@
 // ----------------------------------------------------------------------------
 // updateParameter without time
 void
-FederationsList::updateParameter(Handle handle,
+FederationsList::updateParameter(Handle federationHandle,
                                  FederateHandle federate,
                                  InteractionClassHandle interaction,
                                  std::vector <ParameterHandle> &parameters,
@@ -744,16 +664,13 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     G.Out(pdGendoc,"enter FederationsList::updateParameter without time");
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->broadcastInteraction(federate, interaction, parameters, values,
                                      list_size, region, tag);
@@ -765,7 +682,7 @@
   processSynchronizationAchieved.
 */
 void
-FederationsList::manageSynchronization(Handle handle,
+FederationsList::manageSynchronization(Handle federationHandle,
                                        FederateHandle federate,
                                        bool state,
                                        const std::string& label,
@@ -780,11 +697,8 @@
 
     G.Out(pdGendoc,"enter FederationsList::manageSynchronization for all 
federates");
 
-    checkHandle(handle); // It may throw RTIinternalError
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = NULL ;
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     if (state)
@@ -798,7 +712,7 @@
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::manageSynchronization(Handle handle,
+FederationsList::manageSynchronization(Handle federationHandle,
                                        FederateHandle federate,
                                        bool state,
                                        const std::string& label,
@@ -812,14 +726,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-
     G.Out(pdGendoc,"enter FederationsList::manageSynchronization with 
federates set");
 
-    checkHandle(handle); // It may throw RTIinternalError
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = NULL ;
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // state true means register else unregister
     // It may throw a bunch of exceptions.
@@ -830,39 +740,33 @@
         federation->unregisterSynchronization(federate, label);
 
     G.Out(pdGendoc,"exit  FederationsList::manageSynchronization with 
federates set");
-
 }
 
 // ----------------------------------------------------------------------------
 //! Called by processRegisterSynchronization.
 void
-FederationsList::broadcastSynchronization(Handle handle,
+FederationsList::broadcastSynchronization(Handle federationHandle,
                                           FederateHandle federate,
                                           const std::string& label,
                                           const std::string& tag)
     throw (FederationExecutionDoesNotExist,
            RTIinternalError)
 {
-
     G.Out(pdGendoc,"enter FederationsList::broadcastSynchronization");
 
-    checkHandle(handle); // It may throw RTIinternalError
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = NULL ;
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->broadcastSynchronization(federate, label, tag);
 
     G.Out(pdGendoc,"exit  FederationsList::broadcastSynchronization");
-
 }
 
 // ----------------------------------------------------------------------------
 //! Called by processRegisterSynchronization.
 // Broadcast only on the federates into a set
 void
-FederationsList::broadcastSynchronization(Handle handle,
+FederationsList::broadcastSynchronization(Handle federationHandle,
                                           FederateHandle federate,
                                           const std::string& label,
                                           const std::string& tag,
@@ -871,26 +775,21 @@
     throw (FederationExecutionDoesNotExist,
            RTIinternalError)
 {
-
     G.Out(pdGendoc,"enter FederationsList::broadcastSynchronization onto a 
federate set");
 
-    checkHandle(handle); // It may throw RTIinternalError
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = NULL ;
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->broadcastSynchronization(federate, label, tag, 
federate_setSize, federate_set);
 
     G.Out(pdGendoc,"exit  FederationsList::broadcastSynchronization onto a 
federate set");
-
 }
 
 
 // ----------------------------------------------------------------------------
 // publishInteraction
 void
-FederationsList::publishInteraction(Handle handle,
+FederationsList::publishInteraction(Handle federationHandle,
                                     FederateHandle federate,
                                     InteractionClassHandle interaction,
                                     bool pub)
@@ -902,14 +801,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->publishInteraction(federate, interaction, pub);
 }
@@ -917,7 +813,7 @@
 // ----------------------------------------------------------------------------
 // publishObject
 void
-FederationsList::publishObject(Handle handle,
+FederationsList::publishObject(Handle federationHandle,
                                FederateHandle federate,
                                ObjectClassHandle object_class,
                                std::vector <AttributeHandle> &attributes,
@@ -933,14 +829,11 @@
            RTIinternalError)
 
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->publishObject(federate, object_class, attributes, list_size,
                               pub);
@@ -949,7 +842,7 @@
 // ----------------------------------------------------------------------------
 // subscribeInteraction
 void
-FederationsList::subscribeInteraction(Handle handle,
+FederationsList::subscribeInteraction(Handle federationHandle,
                                       FederateHandle federate,
                                       InteractionClassHandle interaction,
                                       bool sub)
@@ -961,14 +854,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->subscribeInteraction(federate, interaction, sub);
 }
@@ -976,7 +866,7 @@
 // ----------------------------------------------------------------------------
 // subscribeObject
 void
-FederationsList::subscribeObject(Handle handle,
+FederationsList::subscribeObject(Handle federationHandle,
                                  FederateHandle federate,
                                  ObjectClassHandle object_class,
                                  std::vector <AttributeHandle> &attributes,
@@ -990,14 +880,11 @@
            SecurityError,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->subscribeObject(federate, object_class, attributes, list_size);
 }
@@ -1005,7 +892,7 @@
 // ----------------------------------------------------------------------------
 // removeConstrained
 void
-FederationsList::removeConstrained(Handle handle,
+FederationsList::removeConstrained(Handle federationHandle,
                                    FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -1013,14 +900,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw a bunch of exceptions.
     federation->removeConstrained(federate);
@@ -1029,30 +913,20 @@
 // ----------------------------------------------------------------------------
 // destroyFederation
 void
-FederationsList::destroyFederation(Handle handle)
+FederationsList::destroyFederation(Handle federationHandle)
     throw (FederatesCurrentlyJoined,
            FederationExecutionDoesNotExist,
            RTIinternalError)
 {
-    Federation *federation ;
-    list<Federation *>::iterator i ;
-
     G.Out(pdGendoc,"enter FederationsList::destroyFederation");
 
     // It may throw :
-    // RTIinternalError during checkHandle
     // FederationExecutionDoesNotExist during search federation
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw FederatesCurrentlyJoined if federation not empty (in empty)
     if (federation->empty()) {
-        for (i = begin() ; i != end() ; i++) {
-            if ((*i)->getHandle() == handle ) {
-                               // FIXME EN:comment utiliser erase(iterator) 
dans une boucle.
-                i=erase(i);
-                break;
-            }
-        }
+        
_handleFederationMap.erase(_handleFederationMap.find(federationHandle));
         delete federation ;
     }
     G.Out(pdGendoc,"exit FederationsList::destroyFederation");
@@ -1061,21 +935,16 @@
 // ----------------------------------------------------------------------------
 // remove
 void
-FederationsList::remove(Handle handle, FederateHandle federate)
+FederationsList::remove(Handle federationHandle, FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateOwnsAttributes,
            FederateNotExecutionMember,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     G.Out(pdGendoc,"enter FederationsList::remove");
 
-    // It may throw RTIinternalError.
-    checkHandle(handle);
-
     // It may throw FederationExecutionDoesNotExist
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw FederateOwnsAttributes or FederateNotExecutionMember
     federation->remove(federate);
@@ -1086,7 +955,7 @@
 // ----------------------------------------------------------------------------
 // removeRegulator
 void
-FederationsList::removeRegulator(Handle handle,
+FederationsList::removeRegulator(Handle federationHandle,
                                  FederateHandle federate)
     throw (FederationExecutionDoesNotExist,
            FederateNotExecutionMember,
@@ -1094,14 +963,11 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->removeRegulator(federate);
 }
@@ -1111,18 +977,15 @@
   Federation. To be used when a Federate is supposed to have crashed.
 */
 void
-FederationsList::killFederate(Handle handle, FederateHandle federate)
+FederationsList::killFederate(Handle federationHandle, FederateHandle federate)
     throw ()
 {
-    Federation *federation = NULL ;
-
     try {
         // It may throw RTIinternalError.
-        checkHandle(handle);
         checkHandle(federate);
 
         // It may throw FederationExecutionDoesNotExist.
-        searchFederation(handle, federation);
+        Federation *federation = searchFederation(federationHandle);
         federation->kill(federate);
     }
     catch (Exception &e) {
@@ -1133,7 +996,7 @@
 // ----------------------------------------------------------------------------
 // isOwner
 bool
-FederationsList::isOwner(Handle handle,
+FederationsList::isOwner(Handle federationHandle,
                          FederateHandle federate,
                          ObjectHandle id,
                          AttributeHandle attribute)
@@ -1144,24 +1007,21 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *f = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, f);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     D.Out(pdDebug, "Owner of Attribute %u of Object %u .", attribute, id);
 
-    return(f->isOwner(federate, id, attribute));
+    return federation->isOwner(federate, id, attribute);
 }
 
 // ----------------------------------------------------------------------------
 // searchOwner
 void
-FederationsList::searchOwner(Handle handle,
+FederationsList::searchOwner(Handle federationHandle,
                              FederateHandle federate,
                              ObjectHandle id,
                              AttributeHandle attribute)
@@ -1172,14 +1032,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
-
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     D.Out(pdDebug, "Owner of Attribute %u of Object %u .", attribute, id);
@@ -1190,7 +1046,7 @@
 // ----------------------------------------------------------------------------
 // negotiateDivestiture
 void
-FederationsList::negotiateDivestiture(Handle handle,
+FederationsList::negotiateDivestiture(Handle federationHandle,
                                       FederateHandle federate,
                                       ObjectHandle id,
                                       std::vector <AttributeHandle> 
&attributes,
@@ -1205,13 +1061,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     D.Out(pdDebug, "NegotiatedAttributeOwnershipDivestiture of Object %u.", 
id);
@@ -1222,7 +1075,7 @@
 // ----------------------------------------------------------------------------
 // acquireIfAvailable
 void
-FederationsList::acquireIfAvailable(Handle handle,
+FederationsList::acquireIfAvailable(Handle federationHandle,
                                     FederateHandle federate,
                                     ObjectHandle id,
                                     std::vector <AttributeHandle> &attributes,
@@ -1238,13 +1091,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     federation->acquireIfAvailable(federate, id, attributes, list_size);
@@ -1253,7 +1103,7 @@
 // ----------------------------------------------------------------------------
 // divest
 void
-FederationsList::divest(Handle handle,
+FederationsList::divest(Handle federationHandle,
                         FederateHandle federate,
                         ObjectHandle id,
                         std::vector <AttributeHandle> &attributes,
@@ -1266,13 +1116,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     federation->divest(federate, id, attributes, list_size);
@@ -1281,7 +1128,7 @@
 // ----------------------------------------------------------------------------
 // acquire
 void
-FederationsList::acquire(Handle handle,
+FederationsList::acquire(Handle federationHandle,
                          FederateHandle federate,
                          ObjectHandle id,
                          std::vector <AttributeHandle> &attributes,
@@ -1297,13 +1144,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     D.Out(pdDebug, "attributeOwnershipAcquisition of Object %u .", id);
@@ -1314,7 +1158,7 @@
 // ----------------------------------------------------------------------------
 // cancelNegotiatedAttributeOwnershipDivestiture
 void
-FederationsList::cancelDivestiture(Handle handle,
+FederationsList::cancelDivestiture(Handle federationHandle,
                                    FederateHandle federate,
                                    ObjectHandle id,
                                    std::vector <AttributeHandle> &attributes,
@@ -1323,13 +1167,10 @@
            AttributeDivestitureWasNotRequested, FederateNotExecutionMember,
            SaveInProgress, RestoreInProgress, RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     D.Out(pdDebug,
@@ -1341,7 +1182,7 @@
 // ----------------------------------------------------------------------------
 // respondRelease
 AttributeHandleSet*
-FederationsList::respondRelease(Handle handle,
+FederationsList::respondRelease(Handle federationHandle,
                                 FederateHandle federate,
                                 ObjectHandle id,
                                 std::vector <AttributeHandle> &attributes,
@@ -1355,13 +1196,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     D.Out(pdDebug, "AttributeOwnershipRealeaseResponse of Object %u .", id);
@@ -1372,7 +1210,7 @@
 // ----------------------------------------------------------------------------
 // cancelAcquisition
 void
-FederationsList::cancelAcquisition(Handle handle,
+FederationsList::cancelAcquisition(Handle federationHandle,
                                    FederateHandle federate,
                                    ObjectHandle id,
                                    std::vector <AttributeHandle> &attributes,
@@ -1386,13 +1224,10 @@
            RestoreInProgress,
            RTIinternalError)
 {
-    Federation *federation = NULL ;
-
     // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
     D.Out(pdDebug, "cancelAttributeOwnershipAcquisition of Object %u .", id);
@@ -1402,65 +1237,56 @@
 
 // ----------------------------------------------------------------------------
 long
-FederationsList::createRegion(Handle federation,
+FederationsList::createRegion(Handle federationHandle,
                               FederateHandle federate,
                               SpaceHandle space,
                               long nb_extents)
     throw (SpaceNotDefined, InvalidExtents, FederateNotExecutionMember,
            SaveInProgress, RestoreInProgress, RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << "Create " << nb_extents << "-extent Region "
                << "in space " << space << endl ;
 
-    return f->createRegion(federate, space, nb_extents);
+    return federation->createRegion(federate, space, nb_extents);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::modifyRegion(Handle federation,
+FederationsList::modifyRegion(Handle federationHandle,
                              FederateHandle federate,
                              RegionHandle region,
                              const std::vector<Extent> &extents)
     throw (InvalidExtents, SaveInProgress, RestoreInProgress, RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << "Modify region #" << region << endl ;
-    f->modifyRegion(federate, region, extents);
+    federation->modifyRegion(federate, region, extents);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::deleteRegion(Handle federation,
+FederationsList::deleteRegion(Handle federationHandle,
                               FederateHandle federate,
                               long region)
     throw (RegionNotKnown, RegionInUse, FederateNotExecutionMember,
            SaveInProgress, RestoreInProgress, RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << "Delete region " << region << endl ;
 
-    f->deleteRegion(federate, region);
+    federation->deleteRegion(federate, region);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::associateRegion(Handle federation,
+FederationsList::associateRegion(Handle federationHandle,
                                 FederateHandle federate,
                                 ObjectHandle object,
                                 RegionHandle region,
@@ -1470,41 +1296,33 @@
               RestoreInProgress, RTIinternalError)
 {
     Debug(D, pdDebug) << "Associate region " << region << " for updates." << 
endl ;
-    Debug(D, pdDebug) << "F�:" << federation << ", F:" << federate << endl ;
-
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
 
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
-    f->associateRegion(federate, object, region, nb_attributes, attributes);
+    federation->associateRegion(federate, object, region, nb_attributes, 
attributes);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::unassociateRegion(Handle federation,
+FederationsList::unassociateRegion(Handle federationHandle,
                                   FederateHandle federate,
                                   ObjectHandle object,
                                   RegionHandle region)
        throw (RegionInUse, FederateNotExecutionMember, SaveInProgress,
               RestoreInProgress, RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << "Unassociate region for updates " << region << endl ;
 
-    f->unassociateRegion(federate, object, region);
+    federation->unassociateRegion(federate, object, region);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::subscribeAttributesWR(Handle federation,
+FederationsList::subscribeAttributesWR(Handle federationHandle,
                                       FederateHandle federate,
                                       ObjectClassHandle object_class,
                                       RegionHandle region,
@@ -1513,80 +1331,68 @@
     throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress,
           RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << " Subscribe attributes with region " << region << 
endl ;
 
-    f->subscribeAttributesWR(federate, object_class, region, nb, attributes);
+    federation->subscribeAttributesWR(federate, object_class, region, nb, 
attributes);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::unsubscribeAttributesWR(Handle federation,
+FederationsList::unsubscribeAttributesWR(Handle federationHandle,
                                         FederateHandle federate,
                                         ObjectClassHandle object_class,
                                         RegionHandle region)
     throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress,
           RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << "Unsubscribe attributes with region " << region << 
endl ;
 
-    f->unsubscribeAttributesWR(federate, object_class, region);
+    federation->unsubscribeAttributesWR(federate, object_class, region);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::subscribeInteractionWR(Handle federation,
+FederationsList::subscribeInteractionWR(Handle federationHandle,
                                        FederateHandle federate,
                                        InteractionClassHandle ic,
                                        RegionHandle region)
     throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress,
           RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << "Subscribe interaction with region " << region << 
endl ;
 
-    f->subscribeInteractionWR(federate, ic, region);
+    federation->subscribeInteractionWR(federate, ic, region);
 }
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::unsubscribeInteractionWR(Handle federation,
+FederationsList::unsubscribeInteractionWR(Handle federationHandle,
                                          FederateHandle federate,
                                          InteractionClassHandle ic,
                                          RegionHandle region)
     throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress,
           RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
     Debug(D, pdDebug) << "Unsubscribe interaction with region " << region << 
endl ;
 
-    f->unsubscribeInteractionWR(federate, ic, region);
+    federation->unsubscribeInteractionWR(federate, ic, region);
 }
 
 // ----------------------------------------------------------------------------
 // registerObjectWithRegion
-ObjectHandle FederationsList::registerObjectWithRegion(Handle federation,
+ObjectHandle FederationsList::registerObjectWithRegion(Handle federationHandle,
                                                       FederateHandle federate,
                                                       ObjectClassHandle handle,
                                                       ObjectName_t tag,
@@ -1599,30 +1405,24 @@
               FederateNotExecutionMember, SaveInProgress, RestoreInProgress,
               RTIinternalError)
 {
-    Federation *f = 0 ;
-
-    searchFederation(federation, f);
-    checkHandle(federation);
+    Federation *federation = searchFederation(federationHandle);
     checkHandle(federate);
 
-    return f->registerObjectWithRegion(federate, handle, tag, region, nb, 
attrs);
+    return federation->registerObjectWithRegion(federate, handle, tag, region, 
nb, attrs);
 }
 
 // ----------------------------------------------------------------------------
 // requestFederationSave with time
 void
-FederationsList::requestFederationSave(Handle the_federation,
+FederationsList::requestFederationSave(Handle federationHandle,
                                        FederateHandle the_federate,
                                        const std::string& the_label,
                                        FederationTime the_time)
 {
     G.Out(pdGendoc,"enter FederationsList::requestFederationSave with time");
 
-    checkHandle(the_federation);
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = 0 ;
-    searchFederation(the_federation, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->requestFederationSave(the_federate, the_label, the_time);
 
@@ -1632,17 +1432,14 @@
 // ----------------------------------------------------------------------------
 // requestFederationSave without time
 void
-FederationsList::requestFederationSave(Handle the_federation,
+FederationsList::requestFederationSave(Handle federationHandle,
                                        FederateHandle the_federate,
                                        const std::string& the_label)
 {
     G.Out(pdGendoc,"enter FederationsList::requestFederationSave without 
time");
 
-    checkHandle(the_federation);
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = 0 ;
-    searchFederation(the_federation, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->requestFederationSave(the_federate, the_label);
 
@@ -1650,16 +1447,13 @@
 }
 // ----------------------------------------------------------------------------
 void
-FederationsList::federateSaveBegun(Handle the_federation,
+FederationsList::federateSaveBegun(Handle federationHandle,
                                    FederateHandle the_federate)
 {
     G.Out(pdGendoc,"enter FederationsList::federateSaveBegun");
 
-    checkHandle(the_federation);
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = 0 ;
-    searchFederation(the_federation, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->federateSaveBegun(the_federate);
 
@@ -1668,17 +1462,14 @@
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::federateSaveStatus(Handle the_federation,
+FederationsList::federateSaveStatus(Handle federationHandle,
                                     FederateHandle the_federate,
                                     bool the_status)
 {
     G.Out(pdGendoc,"enter FederationsList::federateSaveStatus");
 
-    checkHandle(the_federation);
-
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = 0 ;
-    searchFederation(the_federation, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->federateSaveStatus(the_federate, the_status);
 
@@ -1687,16 +1478,14 @@
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::requestFederationRestore(Handle the_federation,
+FederationsList::requestFederationRestore(Handle federationHandle,
                                           FederateHandle the_federate,
                                           const std::string& the_label)
 {
     G.Out(pdGendoc,"enter FederationsList::requestFederationRestore");
-    checkHandle(the_federation);
 
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = NULL ;
-    searchFederation(the_federation, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->requestFederationRestore(the_federate, the_label);
     G.Out(pdGendoc,"exit  FederationsList::requestFederationRestore");
@@ -1704,16 +1493,14 @@
 
 // ----------------------------------------------------------------------------
 void
-FederationsList::federateRestoreStatus(Handle the_federation,
+FederationsList::federateRestoreStatus(Handle federationHandle,
                                        FederateHandle the_federate,
                                        bool the_status)
 {
     G.Out(pdGendoc,"enter FederationsList::federateRestoreStatus");
-    checkHandle(the_federation);
 
     // It may throw FederationExecutionDoesNotExist
-    Federation *federation = NULL ;
-    searchFederation(the_federation, federation);
+    Federation *federation = searchFederation(federationHandle);
 
     federation->federateRestoreStatus(the_federate, the_status);
     G.Out(pdGendoc,"exit  FederationsList::federateRestoreStatus");
@@ -1722,7 +1509,7 @@
 // ----------------------------------------------------------------------------
 // requestAttribute
 FederateHandle
-FederationsList::requestObjectOwner(Handle handle,
+FederationsList::requestObjectOwner(Handle federationHandle,
                                  FederateHandle federate,
                                  ObjectHandle id,
                                  std::vector <AttributeHandle> &attributes,
@@ -1733,20 +1520,16 @@
 {
     G.Out(pdGendoc,"into FederationsList::requestObjectOwner");
 
-    Federation *federation = NULL ;
+    Federation *federation = searchFederation(federationHandle);
 
     // It may throw RTIinternalError.
-    checkHandle(handle);
     checkHandle(federate);
 
-    // It may throw FederationExecutionDoesNotExist.
-    searchFederation(handle, federation);
-
     // It may throw ObjectNotKnown
-    return(federation->requestObjectOwner(federate, id, attributes, 
list_size));
+    return federation->requestObjectOwner(federate, id, attributes, list_size);
 }
 
 }} // certi::rtig
 
-// EOF $Id: FederationsList.cc,v 3.66 2009/11/19 18:15:29 erk Exp $
+// EOF $Id: FederationsList.cc,v 3.67 2009/11/20 19:43:40 erk Exp $
 

Index: RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.91
retrieving revision 3.92
diff -u -b -r3.91 -r3.92
--- RTIG_processing.cc  19 Nov 2009 18:15:29 -0000      3.91
+++ RTIG_processing.cc  20 Nov 2009 19:43:40 -0000      3.92
@@ -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.91 2009/11/19 18:15:29 erk Exp $
+// $Id: RTIG_processing.cc,v 3.92 2009/11/20 19:43:40 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -135,7 +135,6 @@
     unsigned int peer     = req->bestEffortPeer ;
     unsigned long address = req->bestEffortAddress ;
 
-    Handle num_federation ;
     FederateHandle num_federe ;
 
     int nb_regulateurs ;
@@ -151,7 +150,7 @@
     auditServer << "Federate \"" << federate << "\" joins Federation \""
                << federation << "\"" ;
 
-    federations.exists(federation, num_federation);
+    Handle num_federation = federations.getFederationHandle(federation);
 
     // Need to dump the fom into that
     NM_Join_Federation_Execution rep ;
@@ -255,7 +254,6 @@
 RTIG::processDestroyFederation(Socket *link, NM_Destroy_Federation_Execution 
*req)
 {
     NM_Destroy_Federation_Execution rep ;
-    Handle num_federation ;
 
     std::string federation = req->getFederationName();
 
@@ -264,7 +262,7 @@
 
     if (federation.length() == 0) throw RTIinternalError("Invalid Federation 
Name.");
 
-    federations.exists(federation, num_federation);
+    Handle num_federation = federations.getFederationHandle(federation);
     // May throw RTIinternalError
     //           FederatesCurrentlyJoined
     //           FederationExecutionDoesNotExist
@@ -1470,4 +1468,4 @@
 
 }} // namespace certi/rtig
 
-// $Id: RTIG_processing.cc,v 3.91 2009/11/19 18:15:29 erk Exp $
+// $Id: RTIG_processing.cc,v 3.92 2009/11/20 19:43:40 erk Exp $




reply via email to

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