certi-cvs
[Top][All Lists]
Advanced

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

[certi-cvs] certi RTIA/ObjectManagement.cc RTIA/RTIA.hh RTI...


From: certi-cvs
Subject: [certi-cvs] certi RTIA/ObjectManagement.cc RTIA/RTIA.hh RTI...
Date: Wed, 07 May 2008 09:55:02 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     ROUSSELOT <rousse>      08/05/07 09:55:02

Modified files:
        RTIA           : ObjectManagement.cc RTIA.hh RTIA_federate.cc 
        libCERTI       : ObjectClassSet.cc 

Log message:
        Improvement of return exception NameNotFound during getObjectClassHandle

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.cc?cvsroot=certi&r1=3.39&r2=3.40
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA.hh?cvsroot=certi&r1=3.12&r2=3.13
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&r1=3.75&r2=3.76
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClassSet.cc?cvsroot=certi&r1=3.32&r2=3.33

Patches:
Index: RTIA/ObjectManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.cc,v
retrieving revision 3.39
retrieving revision 3.40
diff -u -b -r3.39 -r3.40
--- RTIA/ObjectManagement.cc    2 May 2008 10:48:32 -0000       3.39
+++ RTIA/ObjectManagement.cc    7 May 2008 09:55:01 -0000       3.40
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: ObjectManagement.cc,v 3.39 2008/05/02 10:48:32 erk Exp $
+// $Id: ObjectManagement.cc,v 3.40 2008/05/07 09:55:01 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -705,7 +705,19 @@
 ObjectClassHandle
 ObjectManagement::getObjectClassHandle(const char *theName)
 {
-    return rootObject->ObjectClasses->getObjectClassHandle(theName);
+    ObjectClassHandle handle ;
+    G.Out(pdGendoc,"enter ObjectManagement::getObjectClassHandle");
+    try {
+         handle = rootObject->ObjectClasses->getObjectClassHandle(theName);
+         G.Out(pdGendoc,"exit  ObjectManagement::getObjectClassHandle");
+         return handle;
+         }
+    catch (NameNotFound &e) {
+         G.Out(pdGendoc,"exit  ObjectManagement::getObjectClassHandle on 
NameNotFound");
+         throw NameNotFound(theName);
+         }
+    
+    //return rootObject->ObjectClasses->getObjectClassHandle(theName);
 }
 
 
@@ -801,4 +813,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: ObjectManagement.cc,v 3.39 2008/05/02 10:48:32 erk Exp $
+// $Id: ObjectManagement.cc,v 3.40 2008/05/07 09:55:01 rousse Exp $

Index: RTIA/RTIA.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA.hh,v
retrieving revision 3.12
retrieving revision 3.13
diff -u -b -r3.12 -r3.13
--- RTIA/RTIA.hh        23 Apr 2008 07:36:01 -0000      3.12
+++ RTIA/RTIA.hh        7 May 2008 09:55:01 -0000       3.13
@@ -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.hh,v 3.12 2008/04/23 07:36:01 siron Exp $
+// $Id: RTIA.hh,v 3.13 2008/05/07 09:55:01 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIA_HH
@@ -66,7 +66,7 @@
     void processFederateRequest(Message *);
     void chooseFederateProcessing(Message *, Message &, TypeException &)
        throw (CouldNotOpenFED,FederationExecutionAlreadyExists,ErrorReadingFED,
-              FederateAlreadyExecutionMember);
+              FederateAlreadyExecutionMember,SaveInProgress,RestoreInProgress);
     void processOngoingTick();
 };
 
@@ -74,4 +74,4 @@
 
 #endif // _CERTI_RTIA_HH
 
-// $Id: RTIA.hh,v 3.12 2008/04/23 07:36:01 siron Exp $
+// $Id: RTIA.hh,v 3.13 2008/05/07 09:55:01 rousse Exp $

Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.75
retrieving revision 3.76
diff -u -b -r3.75 -r3.76
--- RTIA/RTIA_federate.cc       5 May 2008 09:47:20 -0000       3.75
+++ RTIA/RTIA_federate.cc       7 May 2008 09:55:01 -0000       3.76
@@ -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.75 2008/05/05 09:47:20 erk Exp $
+// $Id: RTIA_federate.cc,v 3.76 2008/05/07 09:55:01 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -114,11 +114,12 @@
 void
 RTIA::chooseFederateProcessing(Message *req, Message &rep, TypeException &e)
        throw (CouldNotOpenFED,FederationExecutionAlreadyExists,ErrorReadingFED,
-              FederateAlreadyExecutionMember)
+              FederateAlreadyExecutionMember,SaveInProgress,RestoreInProgress)
 {
     G.Out(pdGendoc,"enter RTIA::chooseFederateProcessing for type = 
%d",req->type);
 
     // Verify not in saving or restoring state.
+    // May throw SaveInProgress or RestoreInProgress
     saveAndRestoreStatus(req->type);
 
     e = e_NO_EXCEPTION ;
@@ -756,11 +757,18 @@
         e = e_UnimplementedService ;
         break ;
 
+      // May throw NameNotFound
+      // Exception catched and stored in rep Message for answer
       case Message::GET_OBJECT_CLASS_HANDLE:
         D.Out(pdTrace,
               "Receiving Message from Federate, type GetObjectClassHandle.");
-
+        try {
         rep.setObjectClass(om->getObjectClassHandle(req->getName()));
+            }
+        catch (RTI::Exception &egoch)
+            {
+            
rep.setException(static_cast<TypeException>(egoch.getType()),egoch._reason);  
+            }
         break ;
 
       case Message::GET_OBJECT_CLASS_NAME:
@@ -1076,7 +1084,7 @@
     try {
         TypeException exc ;
         chooseFederateProcessing(req, rep, exc);
-        if ( exc != e_RTIinternalError )
+        if ( exc != e_RTIinternalError && exc != e_NO_EXCEPTION)
             rep.setException(exc);
     }
     catch (ArrayIndexOutOfBounds &e) {
@@ -1416,9 +1424,9 @@
        comm->sendUN(&rep);
        D.Out(pdDebug, "Reply send to Unix socket.");
     }
-
+    G.Out(pdGendoc,"exit  RTIA::processFederateRequest");
 }
 
 }} // namespace certi/rtia
 
-// $Id: RTIA_federate.cc,v 3.75 2008/05/05 09:47:20 erk Exp $
+// $Id: RTIA_federate.cc,v 3.76 2008/05/07 09:55:01 rousse Exp $

Index: libCERTI/ObjectClassSet.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClassSet.cc,v
retrieving revision 3.32
retrieving revision 3.33
diff -u -b -r3.32 -r3.33
--- libCERTI/ObjectClassSet.cc  26 Apr 2008 14:59:41 -0000      3.32
+++ libCERTI/ObjectClassSet.cc  7 May 2008 09:55:02 -0000       3.33
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: ObjectClassSet.cc,v 3.32 2008/04/26 14:59:41 erk Exp $
+// $Id: ObjectClassSet.cc,v 3.33 2008/05/07 09:55:02 rousse Exp $
 // ----------------------------------------------------------------------------
 
 // Project
@@ -44,7 +44,7 @@
 namespace certi {
 
 static PrettyDebug D("OBJECTCLASSSET", __FILE__);
-
+static PrettyDebug G("GENDOC",__FILE__) ;
 // ----------------------------------------------------------------------------
 //! The class is not allocated, only the pointer is memorized.
 void
@@ -318,6 +318,8 @@
 ObjectClassSet::getObjectClassHandle(std::string class_name) const
     throw (NameNotFound)
 {    
+    G.Out(pdGendoc,"enter ObjectClassSet::getObjectClassHandle");
+   
     std::string currentName;
     std::string remainingName;
     ObjectClassHandle currentHandle;
@@ -360,8 +362,10 @@
     iter = currentClassSet->OCFromName.find(remainingName);
 
        if (iter != currentClassSet->OCFromName.end()) {
+                G.Out(pdGendoc,"exit ObjectClassSet::getObjectClassHandle");
                return iter->second->getHandle();
        } else {
+                G.Out(pdGendoc,"exit ObjectClassSet::getObjectClassHandle on 
NameNotFound");
                throw NameNotFound(class_name.c_str());
        }
 }  
@@ -825,4 +829,4 @@
 
 } // namespace certi
 
-// $Id: ObjectClassSet.cc,v 3.32 2008/04/26 14:59:41 erk Exp $
+// $Id: ObjectClassSet.cc,v 3.33 2008/05/07 09:55:02 rousse Exp $




reply via email to

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