certi-cvs
[Top][All Lists]
Advanced

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

certi RTIG/Federation.cc RTIG/Federation.hh RTI...


From: certi-cvs
Subject: certi RTIG/Federation.cc RTIG/Federation.hh RTI...
Date: Thu, 28 Feb 2008 14:47:59 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     ROUSSELOT <rousse>      08/02/28 14:47:59

Modified files:
        RTIG           : Federation.cc Federation.hh FederationsList.cc 
                         FederationsList.hh RTIG_processing.cc 
        libCERTI       : ObjectSet.cc ObjectSet.hh RootObject.cc 
                         RootObject.hh 

Log message:
        Request Object Attribute Value Update continued and to be continued....

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.cc?cvsroot=certi&r1=3.78&r2=3.79
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.hh?cvsroot=certi&r1=3.44&r2=3.45
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.cc?cvsroot=certi&r1=3.52&r2=3.53
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.hh?cvsroot=certi&r1=3.39&r2=3.40
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&r1=3.54&r2=3.55
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectSet.cc?cvsroot=certi&r1=3.16&r2=3.17
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectSet.hh?cvsroot=certi&r1=3.9&r2=3.10
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/RootObject.cc?cvsroot=certi&r1=3.31&r2=3.32
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/RootObject.hh?cvsroot=certi&r1=3.26&r2=3.27

Patches:
Index: RTIG/Federation.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.cc,v
retrieving revision 3.78
retrieving revision 3.79
diff -u -b -r3.78 -r3.79
--- RTIG/Federation.cc  12 Feb 2008 14:26:42 -0000      3.78
+++ RTIG/Federation.cc  28 Feb 2008 14:47:58 -0000      3.79
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: Federation.cc,v 3.78 2008/02/12 14:26:42 rousse Exp $
+// $Id: Federation.cc,v 3.79 2008/02/28 14:47:58 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -2266,8 +2266,23 @@
     return true ;
 #endif // HAVE_XML
 }
+// ----------------------------------------------------------------------------
+FederateHandle
+Federation::requestObjectOwner(FederateHandle theFederateHandle,
+                             ObjectHandle theObject,
+                             AttributeHandle *theAttributeList,
+                             UShort theListSize)
+        throw (ObjectNotKnown)
+{
+
+    G.Out(pdGendoc,"into Federation::requestObjectOwner");
+
+    // Request Object.
+    return(root->requestObjectOwner(theFederateHandle,theObject));
+
+}
 
 }} // namespace certi/rtig
 
-// $Id: Federation.cc,v 3.78 2008/02/12 14:26:42 rousse Exp $
+// $Id: Federation.cc,v 3.79 2008/02/28 14:47:58 rousse Exp $
 

Index: RTIG/Federation.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.hh,v
retrieving revision 3.44
retrieving revision 3.45
diff -u -b -r3.44 -r3.45
--- RTIG/Federation.hh  5 Dec 2007 12:29:39 -0000       3.44
+++ RTIG/Federation.hh  28 Feb 2008 14:47:58 -0000      3.45
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: Federation.hh,v 3.44 2007/12/05 12:29:39 approx Exp $
+// $Id: Federation.hh,v 3.45 2008/02/28 14:47:58 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIG_FEDERATION_HH
@@ -267,6 +267,12 @@
                RestoreInProgress,
                RTIinternalError);
 
+    FederateHandle requestObjectOwner(FederateHandle theFederateHandle,
+                                ObjectHandle theObject,
+                                AttributeHandle *theAttributeList,
+                                UShort theListSize)
+        throw (ObjectNotKnown);
+
     void subscribeObject(FederateHandle theFederateHandle,
                          ObjectClassHandle theObjectHandle,
                          AttributeHandle *theAttributeList,
@@ -588,4 +594,4 @@
 
 #endif // _CERTI_RTIG_FEDERATION_HH
 
-// $Id: Federation.hh,v 3.44 2007/12/05 12:29:39 approx Exp $
+// $Id: Federation.hh,v 3.45 2008/02/28 14:47:58 rousse Exp $

Index: RTIG/FederationsList.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.cc,v
retrieving revision 3.52
retrieving revision 3.53
diff -u -b -r3.52 -r3.53
--- RTIG/FederationsList.cc     27 Feb 2008 16:38:27 -0000      3.52
+++ RTIG/FederationsList.cc     28 Feb 2008 14:47:58 -0000      3.53
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: FederationsList.cc,v 3.52 2008/02/27 16:38:27 rousse Exp $
+// $Id: FederationsList.cc,v 3.53 2008/02/28 14:47:58 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -1530,22 +1530,17 @@
 
 // ----------------------------------------------------------------------------
 // requestAttribute
-void
-FederationsList::requestAttribute(Handle handle,
+FederateHandle
+FederationsList::requestObjectOwner(Handle handle,
                                  FederateHandle federate,
                                  ObjectHandle id,
                                  AttributeHandle *attributes,
                                  UShort list_size)
-        throw (FederateNotExecutionMember,
-               FederateNotPublishing,
-               ObjectAlreadyRegistered,
-               ObjectClassNotDefined,
-               ObjectClassNotPublished,
-               SaveInProgress,
-               RestoreInProgress,
+        throw (ObjectNotKnown,
+               FederationExecutionDoesNotExist,
                RTIinternalError)
 {
-    G.Out(pdGendoc,"enter FederationsList::requestAttribute");
+    G.Out(pdGendoc,"into FederationsList::requestObjectOwner");
 
     Federation *federation = NULL ;
 
@@ -1556,11 +1551,11 @@
     // It may throw FederationExecutionDoesNotExist.
     searchFederation(handle, federation);
 
-    //federation->requestAttribute(federate, id, list_size));
-    G.Out(pdGendoc,"exit FederationsList::requestAttribute");
+    // It may throw ObjectNotKnown
+    return(federation->requestObjectOwner(federate, id, attributes, 
list_size));
 }
 
 }} // certi::rtig
 
-// EOF $Id: FederationsList.cc,v 3.52 2008/02/27 16:38:27 rousse Exp $
+// EOF $Id: FederationsList.cc,v 3.53 2008/02/28 14:47:58 rousse Exp $
 

Index: RTIG/FederationsList.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.hh,v
retrieving revision 3.39
retrieving revision 3.40
diff -u -b -r3.39 -r3.40
--- RTIG/FederationsList.hh     27 Feb 2008 16:38:27 -0000      3.39
+++ RTIG/FederationsList.hh     28 Feb 2008 14:47:59 -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: FederationsList.hh,v 3.39 2008/02/27 16:38:27 rousse Exp $
+// $Id: FederationsList.hh,v 3.40 2008/02/28 14:47:59 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIG_FEDERATIONS_LIST_HH
@@ -259,18 +259,13 @@
                RestoreInProgress,
                RTIinternalError);
  
-    void requestAttribute(Handle handle,
+    FederateHandle requestObjectOwner(Handle handle,
                                 FederateHandle federate,
                                 ObjectHandle id,
                                 AttributeHandle *attributes,
                                  UShort list_size)
-        throw (FederateNotExecutionMember,
-               FederateNotPublishing,
-               ObjectAlreadyRegistered,
-               ObjectClassNotDefined,
-               ObjectClassNotPublished,
-               SaveInProgress,
-               RestoreInProgress,
+        throw (ObjectNotKnown,
+               FederationExecutionDoesNotExist,
                RTIinternalError);
    
     void destroyObject(Handle theHandle,
@@ -590,4 +585,4 @@
 
 #endif // _CERTI_RTIG_FEDERATIONS_LIST_HH
 
-// $Id: FederationsList.hh,v 3.39 2008/02/27 16:38:27 rousse Exp $
+// $Id: FederationsList.hh,v 3.40 2008/02/28 14:47:59 rousse Exp $

Index: RTIG/RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.54
retrieving revision 3.55
diff -u -b -r3.54 -r3.55
--- RTIG/RTIG_processing.cc     27 Feb 2008 16:38:27 -0000      3.54
+++ RTIG/RTIG_processing.cc     28 Feb 2008 14:47:59 -0000      3.55
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: RTIG_processing.cc,v 3.54 2008/02/27 16:38:27 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.55 2008/02/28 14:47:59 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -1360,23 +1360,42 @@
 RTIG::processRequestObjectAttributeValueUpdate(Socket *link, NetworkMessage 
*request)
 {
     NetworkMessage answer ;
-
+    Handle federateOwner ;  // federate owner of the object
     G.Out(pdGendoc,"enter RTIG::processRequestObjectAttributeValueUpdate");
     G.Out(pdGendoc,"BEGIN ** REQUEST OBJECT ATTRIBUTE VALUE UPDATE **");
 
     auditServer << "ObjID = " << request->object ;
 
     // We have to do verifications about this object
-    federations.requestAttribute(request->federation,
+    answer.exception = e_NO_EXCEPTION ;
+    try 
+      {
+      federateOwner = federations.requestObjectOwner(request->federation,
                                  request->federate,
                                  request->object,
                                  request->handleArray,
                                  request->handleArraySize);
-
+      std::cout<<"processRequestObjectAttributeValueUpdate : Owner of object "
+               <<request->object<<" is federate "<<federateOwner<<std::endl;
+      }
+     catch (ObjectNotKnown e)
+        {
+        answer.exception = e_ObjectNotKnown ;
+        strcpy(answer.exceptionReason,e._reason) ;
+        }
+     catch (FederationExecutionDoesNotExist e)
+        {
+        answer.exception = e_FederationExecutionDoesNotExist ;
+        strcpy(answer.exceptionReason,e._reason) ;
+        }
+     catch (RTIinternalError e)
+        {
+        answer.exception = e_RTIinternalError ;
+        strcpy(answer.exceptionReason,e._reason) ;
+        }
 
     answer.type = NetworkMessage::REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE;
     answer.type = request->type ;
-    answer.exception = e_NO_EXCEPTION ;
     answer.federate = request->federate ;
     answer.object = request->object ;
 
@@ -1387,4 +1406,4 @@
 
 }} // namespace certi/rtig
 
-// $Id: RTIG_processing.cc,v 3.54 2008/02/27 16:38:27 rousse Exp $
+// $Id: RTIG_processing.cc,v 3.55 2008/02/28 14:47:59 rousse Exp $

Index: libCERTI/ObjectSet.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectSet.cc,v
retrieving revision 3.16
retrieving revision 3.17
diff -u -b -r3.16 -r3.17
--- libCERTI/ObjectSet.cc       31 Oct 2007 10:30:21 -0000      3.16
+++ libCERTI/ObjectSet.cc       28 Feb 2008 14:47:59 -0000      3.17
@@ -135,10 +135,11 @@
     throw (ObjectAlreadyRegistered, ConcurrentAccessAttempted,
            SaveInProgress, RestoreInProgress, RTIinternalError)
 {
-    std::map<ObjectHandle, Object *>::const_iterator i ;
-    i = std::map<ObjectHandle, Object *>::find(the_object);
+    const_iterator i ;
+
+    i = find(the_object);
 
-    if (i != std::map<ObjectHandle, Object *>::end()) {
+    if (i != end()) {
         throw ObjectAlreadyRegistered("Object already in ObjectSet map.");
     }
 
@@ -163,7 +164,7 @@
     }
 
     pair<ObjectHandle, Object *> tmp(the_object, object);
-    std::map<ObjectHandle, Object *>::insert(tmp);
+    insert(tmp);
 
     return object ;
 }
@@ -430,7 +431,24 @@
     }
     // BUG: If except = 0, could use Multicast.
 }
+// ----------------------------------------------------------------------------
+FederateHandle
+ObjectSet::requestObjectOwner(FederateHandle the_federate,
+                                  ObjectHandle the_object)
+    throw (ObjectNotKnown)
+{
+    const_iterator i ;
+    i = find(the_object);
 
+    if (i == end())
+       {
+       // Object not found !
+       throw ObjectNotKnown("Object not found in ObjectSet map.");
+       }
+
+    // Object found, return the owner
+    return ( i->second->getOwner()) ;
+}
 } // namespace certi
 
-// $Id: ObjectSet.cc,v 3.16 2007/10/31 10:30:21 erk Exp $
+// $Id: ObjectSet.cc,v 3.17 2008/02/28 14:47:59 rousse Exp $

Index: libCERTI/ObjectSet.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectSet.hh,v
retrieving revision 3.9
retrieving revision 3.10
diff -u -b -r3.9 -r3.10
--- libCERTI/ObjectSet.hh       31 Oct 2007 10:30:21 -0000      3.9
+++ libCERTI/ObjectSet.hh       28 Feb 2008 14:47:59 -0000      3.10
@@ -79,6 +79,10 @@
                FederateNotExecutionMember, ConcurrentAccessAttempted,
                SaveInProgress, RestoreInProgress, RTIinternalError);
 
+     FederateHandle requestObjectOwner(FederateHandle the_federate,
+                                  ObjectHandle the_object)
+    throw (ObjectNotKnown);
+
     void killFederate(FederateHandle) throw (RTIinternalError);
 
     // Ownership Management.

Index: libCERTI/RootObject.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/RootObject.cc,v
retrieving revision 3.31
retrieving revision 3.32
diff -u -b -r3.31 -r3.32
--- libCERTI/RootObject.cc      5 Dec 2007 12:29:40 -0000       3.31
+++ libCERTI/RootObject.cc      28 Feb 2008 14:47:59 -0000      3.32
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: RootObject.cc,v 3.31 2007/12/05 12:29:40 approx Exp $
+// $Id: RootObject.cc,v 3.32 2008/02/28 14:47:59 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #include "Object.hh"
@@ -50,6 +50,7 @@
 namespace certi {
 
 static pdCDebug D("ROOTOBJECT", "(RootObject) ");
+static PrettyDebug G("GENDOC",__FILE__);
 
 // ----------------------------------------------------------------------------
 //! The SocketServer can be NULL on the RTIA.
@@ -329,7 +330,18 @@
 {
     return Interactions->getByHandle(the_class);
 }
+// ----------------------------------------------------------------------------
+// requestObjectInstance
+FederateHandle
+RootObject::requestObjectOwner(FederateHandle theFederateHandle, ObjectHandle 
theObject)
+        throw (ObjectNotKnown)
+{
+    G.Out(pdGendoc,"into RootObject::requestObjectOwner");
+
+    return(objects->requestObjectOwner(theFederateHandle, theObject));
+
+}
 
 } // namespace certi
 
-// $Id: RootObject.cc,v 3.31 2007/12/05 12:29:40 approx Exp $
+// $Id: RootObject.cc,v 3.32 2008/02/28 14:47:59 rousse Exp $

Index: libCERTI/RootObject.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/RootObject.hh,v
retrieving revision 3.26
retrieving revision 3.27
diff -u -b -r3.26 -r3.27
--- libCERTI/RootObject.hh      5 Dec 2007 12:29:40 -0000       3.26
+++ libCERTI/RootObject.hh      28 Feb 2008 14:47:59 -0000      3.27
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: RootObject.hh,v 3.26 2007/12/05 12:29:40 approx Exp $
+// $Id: RootObject.hh,v 3.27 2008/02/28 14:47:59 rousse Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef LIBCERTI_ROOT_OBJECT
@@ -88,6 +88,9 @@
                ObjectAlreadyRegistered,
                RTIinternalError);
     
+    FederateHandle requestObjectOwner(FederateHandle theFederateHandle, 
ObjectHandle theObject)
+        throw (ObjectNotKnown);
+  
     void deleteObjectInstance(FederateHandle, ObjectHandle, 
                              FederationTime theTime, const char *)
         throw (DeletePrivilegeNotHeld, ObjectNotKnown, RTIinternalError);
@@ -123,4 +126,4 @@
 
 #endif // LIBCERTI_ROOT_OBJECT
 
-// $Id: RootObject.hh,v 3.26 2007/12/05 12:29:40 approx Exp $
+// $Id: RootObject.hh,v 3.27 2008/02/28 14:47:59 rousse Exp $




reply via email to

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