[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi RTIA/ObjectManagement.cc RTIA/ObjectManag...
From: |
certi-cvs |
Subject: |
[certi-cvs] certi RTIA/ObjectManagement.cc RTIA/ObjectManag... |
Date: |
Thu, 13 Mar 2008 14:39:19 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Pierre Siron <siron> 08/03/13 14:39:19
Modified files:
RTIA : ObjectManagement.cc ObjectManagement.hh RTIA.cc
RTIA_federate.cc TimeManagement.cc
TimeManagement.hh
libCERTI : Message_R.cc Message_W.cc
libRTI : RTIambassador.cc
Log message:
First implementation of zero lookahead time management services
(NERA & TARA addition, NER & TAR update). See task #6898.
Be careful, the Object Management services generate more exceptions
(invalid time for a UAV or SI with bad timestamps).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.cc?cvsroot=certi&r1=3.35&r2=3.36
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/ObjectManagement.hh?cvsroot=certi&r1=3.19&r2=3.20
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA.cc?cvsroot=certi&r1=3.13&r2=3.14
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&r1=3.67&r2=3.68
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.cc?cvsroot=certi&r1=3.29&r2=3.30
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.hh?cvsroot=certi&r1=3.13&r2=3.14
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_R.cc?cvsroot=certi&r1=3.17&r2=3.18
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_W.cc?cvsroot=certi&r1=3.20&r2=3.21
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambassador.cc?cvsroot=certi&r1=3.72&r2=3.73
Patches:
Index: RTIA/ObjectManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.cc,v
retrieving revision 3.35
retrieving revision 3.36
diff -u -b -r3.35 -r3.36
--- RTIA/ObjectManagement.cc 5 Mar 2008 15:33:50 -0000 3.35
+++ RTIA/ObjectManagement.cc 13 Mar 2008 14:39:18 -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.cc,v 3.35 2008/03/05 15:33:50 rousse Exp $
+// $Id: ObjectManagement.cc,v 3.36 2008/03/13 14:39:18 siron Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -29,6 +29,7 @@
#include "ObjectManagement.hh"
#include "FederationManagement.hh"
#include "PrettyDebug.hh"
+#include "TimeManagement.hh"
#ifdef _WIN32
#include <windows.h>
@@ -58,6 +59,7 @@
ObjectManagement::~ObjectManagement() { }
+
// ----------------------------------------------------------------------------
//! registerObject
ObjectHandle
@@ -112,6 +114,10 @@
{
NetworkMessage req, rep ;
int i ;
+ bool validCall ;
+
+ validCall = tm->testValidTime(theTime) ;
+ if (validCall) {
// Building request (req NetworkMessage)
req.type = NetworkMessage::UPDATE_ATTRIBUTE_VALUES ;
@@ -135,6 +141,9 @@
comm->waitMessage(&rep, NetworkMessage::UPDATE_ATTRIBUTE_VALUES,
req.federate);
e = rep.exception ;
+ }
+ else
+ e = e_InvalidFederationTime ;
return rep.eventRetraction ;
}
@@ -274,6 +283,11 @@
TypeException &e)
{
NetworkMessage req, rep ;
+ bool validCall ;
+
+ validCall = tm->testValidTime(theTime) ;
+ if (validCall) {
+
G.Out(pdGendoc,"ObjectManagement::sendInteraction with time") ;
// Local test to know if interaction is correct.
rootObject->Interactions->isReady(fm->federate,
@@ -306,6 +320,10 @@
e = rep.exception ;
+ }
+ else
+ e = e_InvalidFederationTime ;
+
return rep.eventRetraction ;
}
@@ -785,4 +803,4 @@
}} // namespace certi/rtia
-// $Id: ObjectManagement.cc,v 3.35 2008/03/05 15:33:50 rousse Exp $
+// $Id: ObjectManagement.cc,v 3.36 2008/03/13 14:39:18 siron Exp $
Index: RTIA/ObjectManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/ObjectManagement.hh,v
retrieving revision 3.19
retrieving revision 3.20
diff -u -b -r3.19 -r3.20
--- RTIA/ObjectManagement.hh 5 Mar 2008 15:33:50 -0000 3.19
+++ RTIA/ObjectManagement.hh 13 Mar 2008 14:39:19 -0000 3.20
@@ -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.19 2008/03/05 15:33:50 rousse Exp $
+// $Id: ObjectManagement.hh,v 3.20 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
#ifndef _CERTI_RTIA_OM
@@ -35,6 +35,7 @@
class Communications ;
class Queues ;
class FederationManagement ;
+class TimeManagement ;
class ObjectManagement
{
@@ -214,15 +215,18 @@
ObjectClassHandle getObjectClass(ObjectHandle);
+ TimeManagement *tm ;
+
protected:
Communications *comm ;
Queues *queues ;
FederationManagement *fm ;
RootObject *rootObject ;
+
};
}} // namespace certi/rtia
#endif // _CERTI_RTIA_OM
-// $Id: ObjectManagement.hh,v 3.19 2008/03/05 15:33:50 rousse Exp $
+// $Id: ObjectManagement.hh,v 3.20 2008/03/13 14:39:19 siron Exp $
Index: RTIA/RTIA.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA.cc,v
retrieving revision 3.13
retrieving revision 3.14
diff -u -b -r3.13 -r3.14
--- RTIA/RTIA.cc 14 Jun 2007 13:00:20 -0000 3.13
+++ RTIA/RTIA.cc 13 Mar 2008 14:39:19 -0000 3.14
@@ -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.cc,v 3.13 2007/06/14 13:00:20 siron Exp $
+// $Id: RTIA.cc,v 3.14 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -53,6 +53,7 @@
fm->tm = tm ;
queues->fm = fm ;
+ om->tm = tm ;
}
// ----------------------------------------------------------------------------
@@ -160,4 +161,4 @@
}} // namespace certi/rtia
-// $Id: RTIA.cc,v 3.13 2007/06/14 13:00:20 siron Exp $
+// $Id: RTIA.cc,v 3.14 2008/03/13 14:39:19 siron Exp $
Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.67
retrieving revision 3.68
diff -u -b -r3.67 -r3.68
--- RTIA/RTIA_federate.cc 6 Mar 2008 16:33:09 -0000 3.67
+++ RTIA/RTIA_federate.cc 13 Mar 2008 14:39:19 -0000 3.68
@@ -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.67 2008/03/06 16:33:09 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.68 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -696,6 +696,13 @@
tm->timeAdvanceRequest(req->getFederationTime(), e);
break ;
+ case Message::TIME_ADVANCE_REQUEST_AVAILABLE:
+ D.Out(pdTrace,
+ "Receiving Message from Federate, type
TimeAdvanceRequestAvailable.");
+
+ tm->timeAdvanceRequestAvailable(req->getFederationTime(), e);
+ break ;
+
case Message::NEXT_EVENT_REQUEST:
D.Out(pdTrace,
"Receiving Message from Federate, type NestEventRequest.");
@@ -703,6 +710,13 @@
tm->nextEventRequest(req->getFederationTime(), e);
break ;
+ case Message::NEXT_EVENT_REQUEST_AVAILABLE:
+ D.Out(pdTrace,
+ "Receiving Message from Federate, type
NestEventRequestAvailable.");
+
+ tm->nextEventRequestAvailable(req->getFederationTime(), e);
+ break ;
+
case Message::FLUSH_QUEUE_REQUEST:
e = e_UnimplementedService ;
break ;
@@ -1304,4 +1318,4 @@
}} // namespace certi/rtia
-// $Id: RTIA_federate.cc,v 3.67 2008/03/06 16:33:09 rousse Exp $
+// $Id: RTIA_federate.cc,v 3.68 2008/03/13 14:39:19 siron Exp $
Index: RTIA/TimeManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.cc,v
retrieving revision 3.29
retrieving revision 3.30
diff -u -b -r3.29 -r3.30
--- RTIA/TimeManagement.cc 5 Mar 2008 15:33:50 -0000 3.29
+++ RTIA/TimeManagement.cc 13 Mar 2008 14:39:19 -0000 3.30
@@ -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: TimeManagement.cc,v 3.29 2008/03/05 15:33:50 rousse Exp $
+// $Id: TimeManagement.cc,v 3.30 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -32,7 +32,7 @@
PrettyDebug D("RTIA_TM", __FILE__);
static PrettyDebug G("GENDOC",__FILE__) ;
-const double epsilon = 1.0e-9 ;
+const double epsilon = 1.0e-6 ;
}
@@ -45,10 +45,12 @@
{
switch(_avancee_en_cours) {
case TAR:
+ case TARA:
D.Out(pdTrace, "Call to TimeAdvance.");
timeAdvance(msg_restant, e);
break ;
case NER:
+ case NERA:
D.Out(pdTrace, "Call to NextEventAdvance.");
nextEventAdvance(msg_restant, e);
break ;
@@ -84,7 +86,7 @@
_asynchronous_delivery = false ;
_heure_courante = 0.0 ;
- _lookahead_courant = epsilon ;
+ _lookahead_courant = 0.0 ;
_est_regulateur = false ;
_est_contraint = false ;
}
@@ -95,18 +97,17 @@
{
NetworkMessage msg ;
- msg.date = heure_logique ;
heure_logique += _lookahead_courant ;
if (heure_logique > lastNullMessageDate) {
msg.type = NetworkMessage::MESSAGE_NULL ;
msg.federation = fm->_numero_federation ;
msg.federate = fm->federate ;
- msg.date = heure_logique ; // ? See 6 lines upper !
+ msg.date = heure_logique ;
comm->sendMessage(&msg);
lastNullMessageDate = heure_logique ;
- D.Out(pdDebug, "NULL message sent.");
+ D.Out(pdDebug, "NULL message sent (Time = %f).", heure_logique) ;
}
else {
D.Out(pdExcept, "NULL message not sent (Time = %f, Last = %f).",
@@ -470,11 +471,21 @@
if (_avancee_en_cours != PAS_D_AVANCEE)
e = e_TimeAdvanceAlreadyInProgress ;
- if (heure_logique <= _heure_courante)
+ if (heure_logique < _heure_courante)
e = e_FederationTimeAlreadyPassed ;
+ if (heure_logique < _heure_courante + _lookahead_courant)
+ e = e_InvalidFederationTime ;
if (e == e_NO_EXCEPTION) {
+
+ _type_granted_state = AFTER_TAR_OR_NER ; // will be
+
+ if (_lookahead_courant == 0.0) {
+ _lookahead_courant = epsilon ;
+ _type_granted_state = AFTER_TAR_OR_NER_WITH_ZERO_LK ;
+ }
+
_avancee_en_cours = NER ;
date_avancee = heure_logique ;
D.Out(pdTrace, "NextEventRequest accepted.");
@@ -485,23 +496,44 @@
}
// ----------------------------------------------------------------------------
+void
+TimeManagement::nextEventRequestAvailable(FederationTime heure_logique,
+ TypeException &e)
+{
+ e = e_NO_EXCEPTION ;
+
+ // Verifications
+
+ if (_avancee_en_cours != PAS_D_AVANCEE)
+ e = e_TimeAdvanceAlreadyInProgress ;
+
+ if (heure_logique < _heure_courante)
+ e = e_FederationTimeAlreadyPassed ;
+
+ if (heure_logique < _heure_courante + _lookahead_courant)
+ e = e_InvalidFederationTime ;
+
+ if (e == e_NO_EXCEPTION) {
+ _type_granted_state = AFTER_TARA_OR_NERA ; // will be
+ _avancee_en_cours = NERA ;
+ date_avancee = heure_logique ;
+ D.Out(pdTrace, "NextEventRequestAvailable accepted.");
+ }
+ else {
+ D.Out(pdExcept, "NextEventRequestAvailable refused (exception = %d).",
e);
+ }
+}
+
+// ----------------------------------------------------------------------------
FederationTime
TimeManagement::requestFederationTime()
{
- if (_heure_courante < _LBTS)
- return _heure_courante ;
- else
return _LBTS ;
}
// ----------------------------------------------------------------------------
FederationTimeDelta TimeManagement::requestLookahead()
{
- // BUG: C'est quoi cette salade ?
-
- if (_heure_courante + _lookahead_courant < lastNullMessageDate)
- return(lastNullMessageDate - _heure_courante);
- else
return _lookahead_courant ;
}
@@ -534,7 +566,7 @@
// Verifications
- if (lookahead <= 0.0)
+ if (lookahead < 0.0)
e = e_InvalidFederationTimeDelta ;
@@ -626,6 +658,35 @@
}
// ----------------------------------------------------------------------------
+/*! Is the time stamp of a time advance request correct ?
+*/
+bool
+TimeManagement::testValidTime(FederationTime theTime)
+{
+ if (_avancee_en_cours == PAS_D_AVANCEE) {
+ if (_type_granted_state == AFTER_TAR_OR_NER_WITH_ZERO_LK) {
+ if (theTime <= _heure_courante)
+ return 0;
+ }
+ else { // AFTER_TAR_OR_NER or AFTER_TARA_OR_NARA
+ if (theTime < _heure_courante + _lookahead_courant)
+ return 0;
+ }
+ }
+ else {
+ if (_type_granted_state == AFTER_TAR_OR_NER_WITH_ZERO_LK) {
+ if (theTime <= date_avancee)
+ return 0;
+ }
+ else { // AFTER_TAR_OR_NER or AFTER_TARA_OR_NARA
+ if (theTime < date_avancee + _lookahead_courant)
+ return 0;
+ }
+ }
+ return 1;
+}
+
+// ----------------------------------------------------------------------------
/*! Federate calls either nextEventRequest or timeAdvanceRequest to determine
which time to attain. It then calls tick() until a timeAdvanceGrant is
made.
@@ -712,9 +773,11 @@
D.Out(pdDebug, "Logical time : %f, LBTS : infini, lookahead :
%f.",
date_avancee, _lookahead_courant);
else
- D.Out(pdDebug, "Logical time : %f, LBTS : %lf, lookahead : %f.",
+ D.Out(pdDebug, "Logical time : %15.12f, LBTS : %15.12f,
lookahead : %f.",
date_avancee, _LBTS, _lookahead_courant);
- if (date_avancee < _LBTS) {
+
+ if ((date_avancee < _LBTS) ||
+ ((date_avancee == _LBTS) && (_avancee_en_cours == TARA))) {
// send a timeAdvanceGrant to federate.
timeAdvanceGrant(date_avancee, e);
@@ -731,7 +794,7 @@
}
}
else {
- // if federate is not constrained, sent a timeAdvanceGrant to federate.
+ // if federate is not constrained, send a timeAdvanceGrant to federate.
timeAdvanceGrant(date_avancee, e);
if (e != e_NO_EXCEPTION)
return ;
@@ -756,6 +819,9 @@
D.Out(pdRegister, "timeAdvanceGrant sent to federate (time = %f).",
req.getFederationTime());
+ if (_lookahead_courant == epsilon)
+ _lookahead_courant = 0.0 ;
+
_ongoing_tick = false ; // end of the blocking tick, a message is
delivered
_tick_request_ack = false ;
@@ -780,11 +846,21 @@
if (_avancee_en_cours != PAS_D_AVANCEE)
e = e_TimeAdvanceAlreadyInProgress ;
- if (logical_time <= _heure_courante)
+ if (logical_time < _heure_courante)
e = e_FederationTimeAlreadyPassed ;
+ if (logical_time < _heure_courante + _lookahead_courant)
+ e = e_InvalidFederationTime ;
if (e == e_NO_EXCEPTION) {
+
+ _type_granted_state = AFTER_TAR_OR_NER ; // will be
+
+ if (_lookahead_courant == 0.0) {
+ _lookahead_courant = epsilon ;
+ _type_granted_state = AFTER_TAR_OR_NER_WITH_ZERO_LK ;
+ }
+
if (_est_regulateur)
sendNullMessage(logical_time);
@@ -799,6 +875,43 @@
}
}
+
+void
+TimeManagement::timeAdvanceRequestAvailable(FederationTime logical_time,
+ TypeException &e)
+{
+ e = e_NO_EXCEPTION ;
+
+ // Verifications
+
+ if (_avancee_en_cours != PAS_D_AVANCEE)
+ e = e_TimeAdvanceAlreadyInProgress ;
+
+ if (logical_time < _heure_courante)
+ e = e_FederationTimeAlreadyPassed ;
+
+ if (logical_time < _heure_courante + _lookahead_courant)
+ e = e_InvalidFederationTime ;
+
+ if (e == e_NO_EXCEPTION) {
+
+ _type_granted_state = AFTER_TARA_OR_NERA ; // will be
+
+ if (_est_regulateur)
+ sendNullMessage(logical_time);
+
+ _avancee_en_cours = TARA ;
+ date_avancee = logical_time ;
+
+ D.Out(pdTrace, "timeAdvanceRequestAvailable accepted (asked time=%f).",
+ date_avancee);
+ }
+ else {
+ D.Out(pdExcept, "timeAdvanceRequestAvailable refused (exception =
%d).", e);
+ }
+}
+
+
}} // namespaces
-// $Id: TimeManagement.cc,v 3.29 2008/03/05 15:33:50 rousse Exp $
+// $Id: TimeManagement.cc,v 3.30 2008/03/13 14:39:19 siron Exp $
Index: RTIA/TimeManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.hh,v
retrieving revision 3.13
retrieving revision 3.14
diff -u -b -r3.13 -r3.14
--- RTIA/TimeManagement.hh 26 Feb 2008 08:56:10 -0000 3.13
+++ RTIA/TimeManagement.hh 13 Mar 2008 14:39:19 -0000 3.14
@@ -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: TimeManagement.hh,v 3.13 2008/02/26 08:56:10 siron Exp $
+// $Id: TimeManagement.hh,v 3.14 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
#ifndef CERTI_RTIA_TIME_MANAGEMENT_HH
@@ -58,9 +58,17 @@
typedef enum {
PAS_D_AVANCEE=1,
TAR, // TimeAdvanceRequest
- NER // NextEventRequest
+ NER, // NextEventRequest
+ TARA, // TimeAdvanceRequestAvailable
+ NERA // NextEventRequestAvailable
} TypeAvancee ;
+typedef enum {
+ AFTER_TAR_OR_NER=1,
+ AFTER_TAR_OR_NER_WITH_ZERO_LK,
+ AFTER_TARA_OR_NERA
+} TypeGrantedState ;
+
class TimeManagement : public LBTS
{
public:
@@ -73,8 +81,11 @@
// Advance Time Methods
void nextEventRequest(FederationTime heure_logique, TypeException &e);
+ void nextEventRequestAvailable(FederationTime heure_logique, TypeException
&e);
bool tick(TypeException &e);
void timeAdvanceRequest(FederationTime heure_logique, TypeException &e);
+ void timeAdvanceRequestAvailable(FederationTime heure_logique,
TypeException &e);
+ bool testValidTime(FederationTime theTime);
// Change Federate Time State
void setLookahead(FederationTimeDelta lookahead, TypeException &e);
@@ -121,16 +132,18 @@
/// Type/date from last request (timeAdvance, nextEvent, flushQueue)
TypeAvancee _avancee_en_cours ;
FederationTime date_avancee ;
+ TypeGrantedState _type_granted_state ;
// Federate Data
FederationTime _heure_courante ;
FederationTimeDelta _lookahead_courant ;
bool _est_regulateur ;
bool _est_contraint ;
+
};
}} // namespace certi/rtia
#endif // CERTI_RTIA_TIME_MANAGEMENT_HH
-// $Id: TimeManagement.hh,v 3.13 2008/02/26 08:56:10 siron Exp $
+// $Id: TimeManagement.hh,v 3.14 2008/03/13 14:39:19 siron Exp $
Index: libCERTI/Message_R.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_R.cc,v
retrieving revision 3.17
retrieving revision 3.18
diff -u -b -r3.17 -r3.18
--- libCERTI/Message_R.cc 5 Mar 2008 15:33:50 -0000 3.17
+++ libCERTI/Message_R.cc 13 Mar 2008 14:39:19 -0000 3.18
@@ -17,7 +17,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: Message_R.cc,v 3.17 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_R.cc,v 3.18 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
@@ -637,7 +637,9 @@
case QUERY_MIN_NEXT_EVENT_TIME:
case QUERY_FEDERATE_TIME:
case TIME_ADVANCE_REQUEST:
+ case TIME_ADVANCE_REQUEST_AVAILABLE:
case NEXT_EVENT_REQUEST:
+ case NEXT_EVENT_REQUEST_AVAILABLE:
case TIME_ADVANCE_GRANT:
break ;
@@ -756,4 +758,4 @@
} // namespace certi
-// $Id: Message_R.cc,v 3.17 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_R.cc,v 3.18 2008/03/13 14:39:19 siron Exp $
Index: libCERTI/Message_W.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_W.cc,v
retrieving revision 3.20
retrieving revision 3.21
diff -u -b -r3.20 -r3.21
--- libCERTI/Message_W.cc 5 Mar 2008 15:33:50 -0000 3.20
+++ libCERTI/Message_W.cc 13 Mar 2008 14:39:19 -0000 3.21
@@ -17,7 +17,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: Message_W.cc,v 3.20 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_W.cc,v 3.21 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
@@ -667,7 +667,9 @@
case QUERY_MIN_NEXT_EVENT_TIME:
case QUERY_FEDERATE_TIME:
case TIME_ADVANCE_REQUEST:
+ case TIME_ADVANCE_REQUEST_AVAILABLE:
case NEXT_EVENT_REQUEST:
+ case NEXT_EVENT_REQUEST_AVAILABLE:
case TIME_ADVANCE_GRANT:
header.bodySize = 0 ;
break ;
@@ -737,4 +739,4 @@
} // namespace certi
-// $Id: Message_W.cc,v 3.20 2008/03/05 15:33:50 rousse Exp $
+// $Id: Message_W.cc,v 3.21 2008/03/13 14:39:19 siron Exp $
Index: libRTI/RTIambassador.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambassador.cc,v
retrieving revision 3.72
retrieving revision 3.73
diff -u -b -r3.72 -r3.73
--- libRTI/RTIambassador.cc 5 Mar 2008 15:33:51 -0000 3.72
+++ libRTI/RTIambassador.cc 13 Mar 2008 14:39:19 -0000 3.73
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RTIambassador.cc,v 3.72 2008/03/05 15:33:51 rousse Exp $
+// $Id: RTIambassador.cc,v 3.73 2008/03/13 14:39:19 siron Exp $
// ----------------------------------------------------------------------------
@@ -1729,8 +1729,6 @@
RTI::TimeAdvanceAlreadyInProgress, RTI::FederationTimeAlreadyPassed,
RTI::InvalidFederationTime)
{
- throw RTIinternalError("Unimplemented Service");
-
Message req, rep ;
req.type = Message::TIME_ADVANCE_REQUEST_AVAILABLE ;
@@ -1771,10 +1769,9 @@
RTI::TimeAdvanceAlreadyInProgress, RTI::FederationTimeAlreadyPassed,
RTI::InvalidFederationTime)
{
- throw RTI::RTIinternalError("Unimplemented Service");
Message req, rep ;
- req.type = Message::NEXT_EVENT_REQUEST ;
+ req.type = Message::NEXT_EVENT_REQUEST_AVAILABLE ;
req.setFedTime(theTime);
privateRefs->executeService(&req, &rep);
}
@@ -2912,4 +2909,4 @@
privateRefs->executeService(&req, &rep);
}
-// $Id: RTIambassador.cc,v 3.72 2008/03/05 15:33:51 rousse Exp $
+// $Id: RTIambassador.cc,v 3.73 2008/03/13 14:39:19 siron Exp $