certi-cvs
[Top][All Lists]
Advanced

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

[certi-cvs] certi RTIG/RTIG.hh RTIG/RTIG.cc RTIG/RTIG_proce...


From: certi-cvs
Subject: [certi-cvs] certi RTIG/RTIG.hh RTIG/RTIG.cc RTIG/RTIG_proce...
Date: Sat, 02 Oct 2010 13:20:42 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      10/10/02 13:20:42

Modified files:
        RTIG           : RTIG.hh RTIG.cc RTIG_processing.cc 
                         FederationsList.cc Federation.hh 
                         FederationsList.hh Federation.cc 
        libCERTI       : ObjectClass.hh 
        RTIA           : ObjectManagement.cc ObjectManagement.hh 
                         RTIA_federate.cc 

Log message:
        Merge patch from Michael RAAB.
        This is the implementation of:
        task #8387, requestClassAttributeValueUpdate

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG.hh?cvsroot=certi&r1=3.36&r2=3.37
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG.cc?cvsroot=certi&r1=3.66&r2=3.67
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/RTIG_processing.cc?cvsroot=certi&r1=3.108&r2=3.109
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.cc?cvsroot=certi&r1=3.72&r2=3.73
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.hh?cvsroot=certi&r1=3.68&r2=3.69
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/FederationsList.hh?cvsroot=certi&r1=3.56&r2=3.57
http://cvs.savannah.gnu.org/viewcvs/certi/RTIG/Federation.cc?cvsroot=certi&r1=3.135&r2=3.136
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClass.hh?cvsroot=certi&r1=3.54&r2=3.55
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.cc?cvsroot=certi&r1=3.70&r2=3.71
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.hh?cvsroot=certi&r1=3.35&r2=3.36
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&r1=3.110&r2=3.111

Patches:
Index: RTIG/RTIG.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG.hh,v
retrieving revision 3.36
retrieving revision 3.37
diff -u -b -r3.36 -r3.37
--- RTIG/RTIG.hh        10 Aug 2010 16:34:09 -0000      3.36
+++ RTIG/RTIG.hh        2 Oct 2010 13:20:37 -0000       3.37
@@ -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.hh,v 3.36 2010/08/10 16:34:09 erk Exp $
+// $Id: RTIG.hh,v 3.37 2010/10/02 13:20:37 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef CERTI_RTIG_HH
@@ -123,6 +123,7 @@
     void processUnsubscribeInteractionWR(Socket*, 
NM_DDM_Unsubscribe_Interaction*);
     void processRegisterObjectWithRegion(Socket*, NM_DDM_Register_Object*);
     void processRequestObjectAttributeValueUpdate(Socket*, 
NM_Request_Object_Attribute_Value_Update*);
+       void processRequestClassAttributeValueUpdate(Socket*, 
NM_Request_Class_Attribute_Value_Update*);
 
 private:
     int tcpPort ;
@@ -144,4 +145,4 @@
 
 #endif // CERTI_RTIG_HH
 
-// $Id: RTIG.hh,v 3.36 2010/08/10 16:34:09 erk Exp $
+// $Id: RTIG.hh,v 3.37 2010/10/02 13:20:37 erk Exp $

Index: RTIG/RTIG.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG.cc,v
retrieving revision 3.66
retrieving revision 3.67
diff -u -b -r3.66 -r3.67
--- RTIG/RTIG.cc        10 Aug 2010 16:34:09 -0000      3.66
+++ RTIG/RTIG.cc        2 Oct 2010 13:20:39 -0000       3.67
@@ -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.cc,v 3.66 2010/08/10 16:34:09 erk Exp $
+// $Id: RTIG.cc,v 3.67 2010/10/02 13:20:39 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -201,11 +201,17 @@
         break ;
 
       case NetworkMessage::REQUEST_OBJECT_ATTRIBUTE_VALUE_UPDATE:
-       Debug(D, pdTrace) << "requestAttributeValueUpdate" << endl ;
+               D.Out(pdTrace, "RequestAttributeValueUpdate.)");
         auditServer.setLevel(6);
         processRequestObjectAttributeValueUpdate(link, 
static_cast<NM_Request_Object_Attribute_Value_Update*>(msg));
         break ;
 
+         case NetworkMessage::REQUEST_CLASS_ATTRIBUTE_VALUE_UPDATE:
+               D.Out(pdTrace, "RequestClassAttributeValueUpdate.)");
+               auditServer.setLevel(6);
+        processRequestClassAttributeValueUpdate(link, 
static_cast<NM_Request_Class_Attribute_Value_Update*>(msg));
+        break ;
+
       case NetworkMessage::SET_TIME_REGULATING:
         D.Out(pdTrace, "SetTimeRegulating du federe %u(date=%f).",
               msg->getFederate(), msg->getDate().getTime());
@@ -1042,4 +1048,4 @@
 
 }} // namespace certi/rtig
 
-// $Id: RTIG.cc,v 3.66 2010/08/10 16:34:09 erk Exp $
+// $Id: RTIG.cc,v 3.67 2010/10/02 13:20:39 erk Exp $

Index: RTIG/RTIG_processing.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/RTIG_processing.cc,v
retrieving revision 3.108
retrieving revision 3.109
diff -u -b -r3.108 -r3.109
--- RTIG/RTIG_processing.cc     11 Aug 2010 16:45:14 -0000      3.108
+++ RTIG/RTIG_processing.cc     2 Oct 2010 13:20:41 -0000       3.109
@@ -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.108 2010/08/11 16:45:14 erk Exp $
+// $Id: RTIG_processing.cc,v 3.109 2010/10/02 13:20:41 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -1524,6 +1524,47 @@
        G.Out(pdGendoc,"END   ** REQUEST OBJECT ATTRIBUTE VALUE UPDATE **");
 }
 
+// ----------------------------------------------------------------------------
+// processRequestClassAttributeValueUpdate
+void
+RTIG::processRequestClassAttributeValueUpdate(Socket *link, 
NM_Request_Class_Attribute_Value_Update *request)
+{
+       NM_Request_Class_Attribute_Value_Update answer;
+
+       G.Out(pdGendoc,"enter RTIG::processRequestClassAttributeValueUpdate");
+       G.Out(pdGendoc,"BEGIN ** REQUEST CLASS ATTRIBUTE VALUE UPDATE **");
+
+       answer.setException(e_NO_EXCEPTION);
+       try
+       {
+               
federations.requestClassAttributeValueUpdate(request->getFederation(),
+                               request->getFederate(),
+                               request->getObjectClass(),
+                               request->getAttributes(),
+                               request->getAttributesSize());
+       }
+       catch (ObjectClassNotDefined e)
+       {
+               answer.setException(e_ObjectClassNotDefined,e._reason);
+       }
+       catch (FederationExecutionDoesNotExist e)
+       {
+               
answer.setException(e_FederationExecutionDoesNotExist,e._reason);
+       }
+       catch (RTIinternalError e)
+       {
+               answer.setException(e_RTIinternalError,e._reason);
+       }
+       
+       answer.setFederate(request->getFederate());
+       answer.setObjectClass(request->getObjectClass());
+
+       answer.send(link,NM_msgBufSend); // Send answer to RTIA
+
+       G.Out(pdGendoc,"exit  RTIG::processRequestClassAttributeValueUpdate");
+       G.Out(pdGendoc,"END   ** REQUEST CLASS  ATTRIBUTE VALUE UPDATE **");
+}
+
 }} // namespace certi/rtig
 
-// $Id: RTIG_processing.cc,v 3.108 2010/08/11 16:45:14 erk Exp $
+// $Id: RTIG_processing.cc,v 3.109 2010/10/02 13:20:41 erk Exp $

Index: RTIG/FederationsList.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.cc,v
retrieving revision 3.72
retrieving revision 3.73
diff -u -b -r3.72 -r3.73
--- RTIG/FederationsList.cc     10 Aug 2010 16:34:09 -0000      3.72
+++ RTIG/FederationsList.cc     2 Oct 2010 13:20:41 -0000       3.73
@@ -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.72 2010/08/10 16:34:09 erk Exp $
+// $Id: FederationsList.cc,v 3.73 2010/10/02 13:20:41 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -1393,6 +1393,25 @@
     return federation->requestObjectOwner(federate, id, attributes, list_size);
 }
 
+// ----------------------------------------------------------------------------
+// requestClassAttribute
+void 
+FederationsList::requestClassAttributeValueUpdate(Handle federationHandle,
+                                                           FederateHandle 
federate,
+                                                               
ObjectClassHandle classHandle,
+                                                               const 
std::vector <AttributeHandle> &attributes,
+                                                               uint32_t 
list_size)
+               throw (ObjectClassNotDefined,
+                          FederationExecutionDoesNotExist,
+               RTIinternalError)
+{
+       G.Out(pdGendoc,"into 
FederationsList::requestClassAttributeValueUpdate");
+
+       Federation *federation = searchFederation(federationHandle);
+
+       return federation->requestClassAttributeValueUpdate(federate, 
classHandle, attributes, list_size);
+}
+
 void
 FederationsList::reserveObjectInstanceName(Handle federationHandle,
                                                                           
FederateHandle the_federate,
@@ -1431,5 +1450,5 @@
 
 }} // certi::rtig
 
-// EOF $Id: FederationsList.cc,v 3.72 2010/08/10 16:34:09 erk Exp $
+// EOF $Id: FederationsList.cc,v 3.73 2010/10/02 13:20:41 erk Exp $
 

Index: RTIG/Federation.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.hh,v
retrieving revision 3.68
retrieving revision 3.69
diff -u -b -r3.68 -r3.69
--- RTIG/Federation.hh  18 Aug 2010 15:33:18 -0000      3.68
+++ RTIG/Federation.hh  2 Oct 2010 13:20:42 -0000       3.69
@@ -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.68 2010/08/18 15:33:18 erk Exp $
+// $Id: Federation.hh,v 3.69 2010/10/02 13:20:42 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIG_FEDERATION_HH
@@ -305,6 +305,13 @@
                                 uint16_t theListSize)
         throw (ObjectNotKnown);
 
+       void requestClassAttributeValueUpdate(FederateHandle theFederateHandle,
+                                                               
ObjectClassHandle theClassHandle,
+                                                               const 
std::vector <AttributeHandle> &theAttributeList,
+                                                               uint32_t 
theListSize)
+               throw ( ObjectClassNotDefined, 
+                               RTIinternalError);
+
     /**
      * Subscribes attributes to an object class. After subscription, attribute 
      * publishers are notified by the federate service 
@@ -716,4 +723,4 @@
 
 #endif // _CERTI_RTIG_FEDERATION_HH
 
-// $Id: Federation.hh,v 3.68 2010/08/18 15:33:18 erk Exp $
+// $Id: Federation.hh,v 3.69 2010/10/02 13:20:42 erk Exp $

Index: RTIG/FederationsList.hh
===================================================================
RCS file: /sources/certi/certi/RTIG/FederationsList.hh,v
retrieving revision 3.56
retrieving revision 3.57
diff -u -b -r3.56 -r3.57
--- RTIG/FederationsList.hh     10 Aug 2010 16:34:09 -0000      3.56
+++ RTIG/FederationsList.hh     2 Oct 2010 13:20:42 -0000       3.57
@@ -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.56 2010/08/10 16:34:09 erk Exp $
+// $Id: FederationsList.hh,v 3.57 2010/10/02 13:20:42 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIG_FEDERATIONS_LIST_HH
@@ -350,6 +350,15 @@
                FederationExecutionDoesNotExist,
                RTIinternalError);
 
+       void requestClassAttributeValueUpdate(Handle theHandle,
+                                                               FederateHandle 
federate,
+                                                               
ObjectClassHandle classHandle,
+                                                               const 
std::vector <AttributeHandle> &attributes,
+                                                               uint32_t 
list_size)
+               throw (ObjectClassNotDefined,
+                          FederationExecutionDoesNotExist,
+               RTIinternalError);
+
     void destroyObject(Handle theHandle,
                       FederateHandle theFederateHandle,
                       ObjectHandle theObjectHandle,
@@ -690,4 +699,4 @@
 
 #endif // _CERTI_RTIG_FEDERATIONS_LIST_HH
 
-// $Id: FederationsList.hh,v 3.56 2010/08/10 16:34:09 erk Exp $
+// $Id: FederationsList.hh,v 3.57 2010/10/02 13:20:42 erk Exp $

Index: RTIG/Federation.cc
===================================================================
RCS file: /sources/certi/certi/RTIG/Federation.cc,v
retrieving revision 3.135
retrieving revision 3.136
diff -u -b -r3.135 -r3.136
--- RTIG/Federation.cc  19 Aug 2010 10:50:22 -0000      3.135
+++ RTIG/Federation.cc  2 Oct 2010 13:20:42 -0000       3.136
@@ -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.135 2010/08/19 10:50:22 erk Exp $
+// $Id: Federation.cc,v 3.136 2010/10/02 13:20:42 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -2687,7 +2687,57 @@
 
 }
 
+void 
+Federation::requestClassAttributeValueUpdate(FederateHandle theFederateHandle,
+                                                               
ObjectClassHandle theClassHandle,
+                                                               const 
std::vector <AttributeHandle> &theAttributeList,
+                                                               uint32_t 
theListSize)
+               throw ( ObjectClassNotDefined, 
+                               RTIinternalError)
+{
+       G.Out(pdGendoc,"enter Federation::requestClassAttributeValueUpdate");
+
+       // get object class 
+       ObjectClass* oClass = root->getObjectClass(theClassHandle);
+       if(!oClass) {
+               throw ObjectClassNotDefined(certi::stringize() << 
"ObjectClassHandle <"<<theClassHandle<<"> is unknown.");
+       }
+
+       // send PAVU for all objects of this class
+       ObjectClass::HandleObjectMap instances = oClass->getClassInstances();
+       for( ObjectClass::HandleObjectMap::const_iterator it =
+                instances.begin(); it != instances.end(); ++it )
+       {
+               FederateHandle theOwnerHandle = it->second->getOwner();
+
+               NM_Provide_Attribute_Value_Update mess ;
+
+               // Send a PROVIDE_ATTRIBUTE_VALUE_UPDATE to the owner
+               mess.setFederate(theFederateHandle);
+               mess.setObject(it->first);
+               mess.setAttributesSize(theListSize) ;
+               for (uint32_t i = 0 ; i < theListSize ; ++i)
+               {
+                       mess.setAttributes(theAttributeList[i],i) ;
+               }
+
+               // JYR : BUG if getSocketLink return NULL means
+               // owner federate has been killed and so rtig don't crash
+               // better development needed
+               if ( server->getSocketLink(theOwnerHandle) == NULL )
+               {
+                       throw RTIinternalError ( "Owner federate killed" ) ;
+               }
+
+               mess.send(server->getSocketLink(theOwnerHandle),NM_msgBufSend);
+
+               G.Out(pdGendoc,"            requestClassAttributeValueUpdate 
===> write PAVU to RTIA %d"
+                       ,theOwnerHandle);
+               G.Out(pdGendoc,"exit  
Federation::requestClassAttributeValueUpdate");
+       }
+}
+
 }} // namespace certi/rtig
 
-// $Id: Federation.cc,v 3.135 2010/08/19 10:50:22 erk Exp $
+// $Id: Federation.cc,v 3.136 2010/10/02 13:20:42 erk Exp $
 

Index: libCERTI/ObjectClass.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClass.hh,v
retrieving revision 3.54
retrieving revision 3.55
diff -u -b -r3.54 -r3.55
--- libCERTI/ObjectClass.hh     28 Mar 2010 16:08:33 -0000      3.54
+++ libCERTI/ObjectClass.hh     2 Oct 2010 13:20:42 -0000       3.55
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: ObjectClass.hh,v 3.54 2010/03/28 16:08:33 erk Exp $
+// $Id: ObjectClass.hh,v 3.55 2010/10/02 13:20:42 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_OBJECT_CLASS_HH
@@ -274,6 +274,8 @@
        //! This Object help to find a TCPLink from a Federate Handle.
        SecurityServer *server ;
 
+       const HandleObjectMap& getClassInstances(void) const
+               { return _handleObjectMap; }
 private:
        /*
         * private default constructor with no code
@@ -309,7 +311,12 @@
 
        // Attributes
        const ObjectClassHandle handle ;
-       FederateHandle maxSubscriberHandle ; //! greatest subscriber handle
+
+       /**
+        * greatest subscriber handle
+        */
+       FederateHandle maxSubscriberHandle ;
+
        /**
         * The security level ID attached to this object class.
         * default level for non inherited attributes.
@@ -331,10 +338,12 @@
         * 0 if they aren't any.
         */
        ObjectClassHandle superClass;
+
        /**
         * The set of object classes sub classes of this object class
         */
        ObjectClassSet*   subClasses;
+
        /* The message buffer used to send Network messages */
        libhla::MessageBuffer NM_msgBufSend;
 };
@@ -343,4 +352,4 @@
 
 #endif // _CERTI_OBJECT_CLASS_HH
 
-// $Id: ObjectClass.hh,v 3.54 2010/03/28 16:08:33 erk Exp $
+// $Id: ObjectClass.hh,v 3.55 2010/10/02 13:20:42 erk Exp $

Index: RTIA/ObjectManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.cc,v
retrieving revision 3.70
retrieving revision 3.71
diff -u -b -r3.70 -r3.71
--- RTIA/ObjectManagement.cc    31 May 2010 09:33:26 -0000      3.70
+++ RTIA/ObjectManagement.cc    2 Oct 2010 13:20:42 -0000       3.71
@@ -688,6 +688,35 @@
 
 } /* end of requestObjectAttributeValueUpdate */
 
+// ----------------------------------------------------------------------------
+//! requestClassAttributeValueUpdate
+void 
+ObjectManagement::requestClassAttributeValueUpdate(ObjectClassHandle theClass,
+               const std::vector <AttributeHandle> &attribs,
+               uint32_t attribArraySize,
+               TypeException &e)
+{
+       NM_Request_Class_Attribute_Value_Update req;
+       
+       G.Out(pdGendoc,"enter 
ObjectManagement::requestClassAttributeValueUpdate");
+       
+       req.setObjectClass(theClass);
+       req.setFederation(fm->_numero_federation);
+       req.setFederate(fm->federate);
+       req.setAttributesSize(attribArraySize);
+       
+       for (uint32_t i = 0 ; i < attribArraySize ; ++i) {
+               req.setAttributes(attribs[i],i) ;
+       }
+
+       comm->sendMessage(&req);
+       std::auto_ptr<NetworkMessage> 
rep(comm->waitMessage(NetworkMessage::REQUEST_CLASS_ATTRIBUTE_VALUE_UPDATE,
+                       req.getFederate()));
+       e = rep->getException() ;
+
+       G.Out(pdGendoc,"exit  
ObjectManagement::requestClassAttributeValueUpdate");
+
+} /* end of requestClassAttributeValueUpdate */
 
 // --------------------------------------
 // -- 4.15 provideAttributeValueUpdate --

Index: RTIA/ObjectManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.hh,v
retrieving revision 3.35
retrieving revision 3.36
diff -u -b -r3.35 -r3.36
--- RTIA/ObjectManagement.hh    31 May 2010 09:33:26 -0000      3.35
+++ RTIA/ObjectManagement.hh    2 Oct 2010 13:20:42 -0000       3.36
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: ObjectManagement.hh,v 3.35 2010/05/31 09:33:26 erk Exp $
+// $Id: ObjectManagement.hh,v 3.36 2010/10/02 13:20:42 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIA_OM
@@ -177,6 +177,11 @@
                                       uint32_t attribArraySize,
                                       TypeException &e);
 
+       void requestClassAttributeValueUpdate(ObjectClassHandle theClass,
+                                                                               
  const std::vector <AttributeHandle> &attribs,
+                                                                               
  uint32_t attribArraySize,
+                                                                               
  TypeException &e);
+
     void provideAttributeValueUpdate(ObjectHandle theObject,
                                       const std::vector <AttributeHandle> 
&theAttributes,
                                       uint16_t attribArraySize,
@@ -303,4 +308,4 @@
 
 #endif // _CERTI_RTIA_OM
 
-// $Id: ObjectManagement.hh,v 3.35 2010/05/31 09:33:26 erk Exp $
+// $Id: ObjectManagement.hh,v 3.36 2010/10/02 13:20:42 erk Exp $

Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.110
retrieving revision 3.111
diff -u -b -r3.110 -r3.111
--- RTIA/RTIA_federate.cc       11 Aug 2010 16:45:14 -0000      3.110
+++ RTIA/RTIA_federate.cc       2 Oct 2010 13:20:42 -0000       3.111
@@ -580,9 +580,15 @@
        break ;
 
        case Message::REQUEST_CLASS_ATTRIBUTE_VALUE_UPDATE: {
-               std::cout<<"request class attribute value update not yet 
implemented in chooseFederateProcessing"
-                               <<std::endl;
-               e = e_UnimplementedService ;
+               M_Request_Class_Attribute_Value_Update* RCAVUq;
+               RCAVUq = static_cast<M_Request_Class_Attribute_Value_Update 
*>(req);
+
+               D.Out(pdTrace,"Receiving Message from Federate, type "
+                               "RequestClassAttributeValueUpadate.");
+               om->requestClassAttributeValueUpdate(RCAVUq->getObjectClass(),
+                               RCAVUq->getAttributes(),
+                               RCAVUq->getAttributesSize(),
+                               e);
        }
        break ;
 



reply via email to

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