[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi libCERTI/Message_W.cc libCERTI/Message.hh...
From: |
certi-cvs |
Subject: |
[certi-cvs] certi libCERTI/Message_W.cc libCERTI/Message.hh... |
Date: |
Mon, 05 May 2008 09:47:21 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 08/05/05 09:47:21
Modified files:
libCERTI : Message_W.cc Message.hh Message_R.cc
libRTI : RTIambassador.cc
RTIA : RTIA.cc RTIA_federate.cc TimeManagement.cc
Communications.cc TimeManagement.hh
Statistics.cc
Log message:
Fix bug #23113 : Assert violation when invoking a federation service
from a federate service
Patch from Petr Gotthard
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_W.cc?cvsroot=certi&r1=3.23&r2=3.24
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message.hh?cvsroot=certi&r1=3.42&r2=3.43
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/Message_R.cc?cvsroot=certi&r1=3.20&r2=3.21
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambassador.cc?cvsroot=certi&r1=3.77&r2=3.78
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA.cc?cvsroot=certi&r1=3.19&r2=3.20
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA_federate.cc?cvsroot=certi&r1=3.74&r2=3.75
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.cc?cvsroot=certi&r1=3.34&r2=3.35
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/Communications.cc?cvsroot=certi&r1=3.25&r2=3.26
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/TimeManagement.hh?cvsroot=certi&r1=3.15&r2=3.16
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/Statistics.cc?cvsroot=certi&r1=3.14&r2=3.15
Patches:
Index: libCERTI/Message_W.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_W.cc,v
retrieving revision 3.23
retrieving revision 3.24
diff -u -b -r3.23 -r3.24
--- libCERTI/Message_W.cc 23 Apr 2008 07:36:02 -0000 3.23
+++ libCERTI/Message_W.cc 5 May 2008 09:47:19 -0000 3.24
@@ -17,7 +17,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: Message_W.cc,v 3.23 2008/04/23 07:36:02 siron Exp $
+// $Id: Message_W.cc,v 3.24 2008/05/05 09:47:19 erk Exp $
// ----------------------------------------------------------------------------
@@ -665,6 +665,7 @@
case FEDERATION_RESTORE_BEGUN:
case ENABLE_ASYNCHRONOUS_DELIVERY:
case DISABLE_ASYNCHRONOUS_DELIVERY:
+ case TICK_REQUEST_NEXT:
header.bodySize = 0 ;
break ;
@@ -745,4 +746,4 @@
} // namespace certi
-// $Id: Message_W.cc,v 3.23 2008/04/23 07:36:02 siron Exp $
+// $Id: Message_W.cc,v 3.24 2008/05/05 09:47:19 erk Exp $
Index: libCERTI/Message.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message.hh,v
retrieving revision 3.42
retrieving revision 3.43
diff -u -b -r3.42 -r3.43
--- libCERTI/Message.hh 23 Apr 2008 07:36:01 -0000 3.42
+++ libCERTI/Message.hh 5 May 2008 09:47:19 -0000 3.43
@@ -232,6 +232,7 @@
ENABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH,
DISABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH,
TICK_REQUEST,
+ TICK_REQUEST_NEXT,
LAST // should be the "last" (not used)
};
Index: libCERTI/Message_R.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/Message_R.cc,v
retrieving revision 3.20
retrieving revision 3.21
diff -u -b -r3.20 -r3.21
--- libCERTI/Message_R.cc 23 Apr 2008 07:36:01 -0000 3.20
+++ libCERTI/Message_R.cc 5 May 2008 09:47:19 -0000 3.21
@@ -17,7 +17,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: Message_R.cc,v 3.20 2008/04/23 07:36:01 siron Exp $
+// $Id: Message_R.cc,v 3.21 2008/05/05 09:47:19 erk Exp $
// ----------------------------------------------------------------------------
@@ -636,6 +636,7 @@
case FEDERATION_RESTORE_BEGUN:
case ENABLE_ASYNCHRONOUS_DELIVERY:
case DISABLE_ASYNCHRONOUS_DELIVERY:
+ case TICK_REQUEST_NEXT:
break ;
// ------- federationTime useful
@@ -764,4 +765,4 @@
} // namespace certi
-// $Id: Message_R.cc,v 3.20 2008/04/23 07:36:01 siron Exp $
+// $Id: Message_R.cc,v 3.21 2008/05/05 09:47:19 erk Exp $
Index: libRTI/RTIambassador.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambassador.cc,v
retrieving revision 3.77
retrieving revision 3.78
diff -u -b -r3.77 -r3.78
--- libRTI/RTIambassador.cc 29 Apr 2008 13:21:37 -0000 3.77
+++ libRTI/RTIambassador.cc 5 May 2008 09:47:20 -0000 3.78
@@ -19,7 +19,7 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
-// $Id: RTIambassador.cc,v 3.77 2008/04/29 13:21:37 rousse Exp $
+// $Id: RTIambassador.cc,v 3.78 2008/05/05 09:47:20 erk Exp $
// ----------------------------------------------------------------------------
@@ -241,7 +241,7 @@
{
Message vers_RTI, vers_Fed ;
- // Prevenir le RTI
+ // Request callback(s) from the local RTIA
vers_RTI.type = Message::TICK_REQUEST ;
vers_RTI.setBoolean(multiple);
vers_RTI.setMinTickTime(minimum);
@@ -501,6 +501,20 @@
privateRefs->leave("RTI service requested by RTI is
unknown.");
}
}
+
+ // Request next callback from the RTIA
+ Message tick_next;
+ tick_next.type = Message::TICK_REQUEST_NEXT;
+
+ try {
+ tick_next.write(privateRefs->socketUn);
+ }
+ catch (NetworkError) {
+ cout << "tick 3." << endl ;
+ cout << "LibRTI:: Catched NetworkError, throw
RTIinternalError."
+ << endl ;
+ throw RTIinternalError("RTI::RTIambassador::__tick_kernel
(tick3) : NetworkError-->RTIinternalError");
+ }
}
catch (InvalidFederationTime &e) {
vers_RTI.setException(e_InvalidFederationTime, e._reason);
@@ -2935,4 +2949,4 @@
privateRefs->executeService(&req, &rep);
}
-// $Id: RTIambassador.cc,v 3.77 2008/04/29 13:21:37 rousse Exp $
+// $Id: RTIambassador.cc,v 3.78 2008/05/05 09:47:20 erk Exp $
Index: RTIA/RTIA.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA.cc,v
retrieving revision 3.19
retrieving revision 3.20
diff -u -b -r3.19 -r3.20
--- RTIA/RTIA.cc 26 Apr 2008 14:59:41 -0000 3.19
+++ RTIA/RTIA.cc 5 May 2008 09:47:20 -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: RTIA.cc,v 3.19 2008/04/26 14:59:41 erk Exp $
+// $Id: RTIA.cc,v 3.20 2008/05/05 09:47:20 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -124,53 +124,42 @@
msg_un = NULL;
msg_tcp_udp = NULL;
try {
+ switch (tm->_tick_state) {
+ case TimeManagement::NO_TICK:
+ /* tick() is not active:
+ * block until RTIA or federate message comes
+ */
comm->readMessage(n, &msg_tcp_udp, &msg_un, NULL);
- assert((msg_un!=NULL) || (msg_tcp_udp!=NULL));
- }
- catch (NetworkSignal) {
- fm->_fin_execution = true ;
- n = 0 ;
- delete msg_un ;
- delete msg_tcp_udp ;
- }
-
- switch (n) {
- case 0:
- break ;
- case 1:
- processNetworkMessage(msg_tcp_udp);
- break ;
- case 2:
- processFederateRequest(msg_un);
- break ;
- case 3: // timeout
- break ;
- default:
- assert(false);
- }
+ break;
- // special case, blocking tick
- while (!fm->_fin_execution && tm->_blocking_tick) {
- // read a message from the rtig
- // same code is reused, but only the case 1 should match
- /* NetworkMessage will be allocated by the readMessage call
- * We may not get a Message in this call see previous comment
+ case TimeManagement::TICK_BLOCKING:
+ /* blocking tick() waits for an event to come:
+ * block until RTIA or federate message comes, or timeout
expires
*/
- msg_un = NULL;
- msg_tcp_udp = NULL;
-
- try {
if (tm->_tick_timeout !=
std::numeric_limits<double>::infinity() &&
- tm->_tick_timeout < LONG_MAX)
- {
+ tm->_tick_timeout < LONG_MAX) {
+
struct timeval timev;
timev.tv_sec = int(tm->_tick_timeout);
timev.tv_usec =
int((tm->_tick_timeout-timev.tv_sec)*1000000.0);
comm->readMessage(n, &msg_tcp_udp, &msg_un, &timev);
}
- else {
+ else
comm->readMessage(n, &msg_tcp_udp, &msg_un, NULL);
+ break;
+
+ case TimeManagement::TICK_CALLBACK:
+ case TimeManagement::TICK_RETURN:
+ /* tick() waits until a federate callback finishes:
+ * block until federate message comes
+ * RTIA messages are queued in a system queue
+ */
+ comm->readMessage(n, NULL, &msg_un, NULL);
+ break;
+
+ default:
+ assert(false);
}
/* timev is undefined after select() */
@@ -178,6 +167,7 @@
catch (NetworkSignal) {
fm->_fin_execution = true ;
n = 0 ;
+ delete msg_un ;
delete msg_tcp_udp ;
}
@@ -185,24 +175,26 @@
case 0:
break ;
case 1:
- processNetworkMessage(msg_tcp_udp) ; // could authorize a
callback
- // may have reset tm->_blocking_tick
+ processNetworkMessage(msg_tcp_udp);
+ if (tm->_tick_state == TimeManagement::TICK_BLOCKING)
processOngoingTick();
break ;
case 2:
- assert(false);
+ processFederateRequest(msg_un);
+ break ;
case 3: // timeout
+ if (tm->_tick_state == TimeManagement::TICK_BLOCKING) {
// stop the ongoing tick() operation
- tm->_blocking_tick = false;
+ tm->_tick_state = TimeManagement::TICK_RETURN;
processOngoingTick();
+ }
break ;
default:
assert(false);
}
}
- }
}
}} // namespace certi/rtia
-// $Id: RTIA.cc,v 3.19 2008/04/26 14:59:41 erk Exp $
+// $Id: RTIA.cc,v 3.20 2008/05/05 09:47:20 erk Exp $
Index: RTIA/RTIA_federate.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA_federate.cc,v
retrieving revision 3.74
retrieving revision 3.75
diff -u -b -r3.74 -r3.75
--- RTIA/RTIA_federate.cc 26 Apr 2008 14:59:42 -0000 3.74
+++ RTIA/RTIA_federate.cc 5 May 2008 09:47:20 -0000 3.75
@@ -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.74 2008/04/26 14:59:42 erk Exp $
+// $Id: RTIA_federate.cc,v 3.75 2008/05/05 09:47:20 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -27,6 +27,7 @@
#include "fed.hh"
#include "RoutingSpace.hh"
#include "XmlParser.hh"
+#include <assert.h>
#ifdef _WIN32
#include <time.h>
#include <sys/timeb.h>
@@ -69,6 +70,7 @@
switch (type) {
case Message::RESIGN_FEDERATION_EXECUTION:
case Message::TICK_REQUEST:
+ case Message::TICK_REQUEST_NEXT:
case Message::GET_OBJECT_CLASS_HANDLE:
case Message::GET_OBJECT_CLASS_NAME:
case Message::GET_ATTRIBUTE_HANDLE:
@@ -961,17 +963,28 @@
break ;
case Message::TICK_REQUEST:
+ if (tm->_tick_state != TimeManagement::NO_TICK)
+ throw RTIinternalError("TICK_REQUEST cannot be called
recursively");
+
tm->_tick_multiple = req->getBoolean();
+ tm->_tick_result = false; // default return value
if (req->getMinTickTime() > 0.0)
{
tm->_tick_timeout = req->getMinTickTime();
tm->_tick_stop_time = currentTickTime() + req->getMaxTickTime();
-
- tm->_blocking_tick = true ;
+ tm->_tick_state = TimeManagement::TICK_BLOCKING;
}
else
- tm->_blocking_tick = false ;
+ tm->_tick_state = TimeManagement::TICK_CALLBACK;
+
+ processOngoingTick();
+ break ;
+
+ case Message::TICK_REQUEST_NEXT:
+ if (tm->_tick_state != TimeManagement::TICK_CALLBACK &&
+ tm->_tick_state != TimeManagement::TICK_RETURN)
+ throw RTIinternalError("unexpected TICK_REQUEST_NEXT");
processOngoingTick();
break ;
@@ -990,35 +1003,62 @@
void
RTIA::processOngoingTick()
{
+ Message msg_ack;
TypeException exc = e_NO_EXCEPTION;
- bool pending;
- do {
- // send a single callback to federate (if any)
- pending = tm->tick(exc);
+ while (1) {
+ switch (tm->_tick_state) {
+ case TimeManagement::TICK_BLOCKING:
+ /* blocking tick() waits for an event to come:
+ * try to evoke a single callback
+ */
+ tm->_tick_result = tm->tick(exc);
+ // if a callback has not been evoked
+ if (tm->_tick_state != TimeManagement::TICK_NEXT)
+ return; // keep waiting
+ // else goto TICK_NEXT
+
+ case TimeManagement::TICK_NEXT:
+ /* a callback was evoked
+ * decide how to continue
+ */
+ if (tm->_tick_result &&
+ tm->_tick_multiple && currentTickTime() < tm->_tick_stop_time)
+ tm->_tick_state = TimeManagement::TICK_CALLBACK;
+ else
+ tm->_tick_state = TimeManagement::TICK_RETURN;
- // processing a callback may have reset tm->_blocking_tick
+ return;
- if (!tm->_tick_multiple)
- break;
-
- if (currentTickTime() > tm->_tick_stop_time)
- {
- tm->_blocking_tick = false;
- break;
- }
- }
- while (pending);
-
- if (!tm->_blocking_tick)
- {
- Message msg_ack;
+ case TimeManagement::TICK_CALLBACK:
+ /* tick() waits until a federate callback finishes
+ * try to evoke a single callback
+ */
+ tm->_tick_result = tm->tick(exc);
+ // if a callback has been evoked
+ if (tm->_tick_state == TimeManagement::TICK_NEXT)
+ break; // goto TICK_NEXT
+ // else goto TICK_RETURN
+
+ case TimeManagement::TICK_RETURN:
+ /* send TICK_REQUEST response
+ */
if ( exc != e_RTIinternalError )
msg_ack.setException(exc);
// terminate __tick() call in the federate
msg_ack.type = Message::TICK_REQUEST;
- msg_ack.setBoolean(pending);
+ msg_ack.setBoolean(tm->_tick_result);
+ msg_ack.setMinTickTime(0); // unused
+ msg_ack.setMaxTickTime(0); // unused
comm->requestFederateService(&msg_ack);
+
+ tm->_tick_state = TimeManagement::NO_TICK;
+ return;
+
+ default:
+ std::cerr << "Unknown state: " << tm->_tick_state << std::endl;
+ assert(false);
+ }
}
}
@@ -1369,7 +1409,8 @@
delete req;
- if (rep.type != Message::TICK_REQUEST) {
+ if (rep.type != Message::TICK_REQUEST &&
+ rep.type != Message::TICK_REQUEST_NEXT) {
// generic federate service acknowledgment
// the TICK_REQUEST confirmation is generated in processOngoingTick()
comm->sendUN(&rep);
@@ -1380,4 +1421,4 @@
}} // namespace certi/rtia
-// $Id: RTIA_federate.cc,v 3.74 2008/04/26 14:59:42 erk Exp $
+// $Id: RTIA_federate.cc,v 3.75 2008/05/05 09:47:20 erk Exp $
Index: RTIA/TimeManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.cc,v
retrieving revision 3.34
retrieving revision 3.35
diff -u -b -r3.34 -r3.35
--- RTIA/TimeManagement.cc 30 Apr 2008 17:01:09 -0000 3.34
+++ RTIA/TimeManagement.cc 5 May 2008 09:47:20 -0000 3.35
@@ -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.34 2008/04/30 17:01:09 erk Exp $
+// $Id: TimeManagement.cc,v 3.35 2008/05/05 09:47:20 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -83,7 +83,7 @@
lastNullMessageDate = 0.0 ;
_avancee_en_cours = PAS_D_AVANCEE ;
- _blocking_tick = false ;
+ _tick_state = NO_TICK;
_asynchronous_delivery = false ;
_heure_courante = 0.0 ;
@@ -124,7 +124,7 @@
G.Out(pdGendoc,"enter TimeManagement::executeFederateService for type
%d",msg.getType());
D.Out(pdRequest, "Execute federate service: Type %d.", msg.getType());
- _blocking_tick = false; // indicate a callback was processed
+ _tick_state = TICK_NEXT; // indicate the callback was processed
switch (msg.getType()) {
@@ -830,7 +830,7 @@
if (_lookahead_courant == epsilon)
_lookahead_courant = 0.0 ;
- _blocking_tick = false; // indicate a callback was processed
+ _tick_state = TICK_NEXT; // indicate the callback was processed
comm->requestFederateService(&req);
@@ -921,4 +921,4 @@
}} // namespaces
-// $Id: TimeManagement.cc,v 3.34 2008/04/30 17:01:09 erk Exp $
+// $Id: TimeManagement.cc,v 3.35 2008/05/05 09:47:20 erk Exp $
Index: RTIA/Communications.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/Communications.cc,v
retrieving revision 3.25
retrieving revision 3.26
diff -u -b -r3.25 -r3.26
--- RTIA/Communications.cc 26 Apr 2008 14:59:41 -0000 3.25
+++ RTIA/Communications.cc 5 May 2008 09:47:21 -0000 3.26
@@ -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: Communications.cc,v 3.25 2008/04/26 14:59:41 erk Exp $
+// $Id: Communications.cc,v 3.26 2008/05/05 09:47:21 erk Exp $
// ----------------------------------------------------------------------------
#include <config.h>
@@ -177,51 +177,53 @@
const int tcp_fd(SecureTCPSocket::returnSocket());
const int udp_fd(SocketUDP::returnSocket());
+ int max_fd = 0; // not used for _WIN32
fd_set fdset ;
FD_ZERO(&fdset);
- FD_SET(_socket_un, &fdset);
+ if (msg_reseau) {
FD_SET(tcp_fd, &fdset);
FD_SET(udp_fd, &fdset);
-
- #ifdef _WIN32 //For Windows, First "Select" argument isn't used
- int max_fd= 0;
- #else
- int max_fd = std::max(_socket_un, std::max(tcp_fd, udp_fd));
- #endif
+#ifndef _WIN32
+ max_fd = std::max(max_fd, std::max(tcp_fd, udp_fd));
+#endif
+ }
+ if (msg) {
+ FD_SET(_socket_un, &fdset);
+#ifndef _WIN32
+ max_fd = std::max(max_fd, _socket_un);
+#endif
+ }
#ifdef FEDERATION_USES_MULTICAST
// if multicast link is initialized (during join federation).
if (_est_init_mc) {
FD_SET(_socket_mc, &fdset);
-
- #ifdef _WIN32 //For Windows, First "Select" argument isn't
used
- max_fd= 0;
- #else
+#ifndef _WIN32
max_fd = std::max(max_fd, _socket_mc);
- #endif
+#endif
}
#endif
- if (!waitingList.empty()) {
+ if (msg_reseau && !waitingList.empty()) {
// One message is in waiting buffer.
*msg_reseau = waitingList.front();
waitingList.pop_front();
n = 1 ;
}
- else if (SecureTCPSocket::isDataReady()) {
+ else if (msg_reseau && SecureTCPSocket::isDataReady()) {
// Datas are in TCP waiting buffer.
// Read a message from RTIG TCP link.
*msg_reseau = NM_Factory::receive((SecureTCPSocket *) this);
n = 1 ;
}
- else if (SocketUDP::isDataReady()) {
+ else if (msg_reseau && SocketUDP::isDataReady()) {
// Datas are in UDP waiting buffer.
// Read a message from RTIG UDP link.
*msg_reseau = NM_Factory::receive((SocketUDP *) this);
n = 1 ;
}
- else if (SocketUN::isDataReady()) {
+ else if (msg && SocketUN::isDataReady()) {
// Datas are in UNIX waiting buffer.
// Read a message from federate UNIX link.
(*msg) = new Message();
@@ -231,12 +233,13 @@
else {
// waitingList is empty and no data in TCP buffer.
// Wait a message (coming from federate or network).
+#ifdef _WIN32
if (select(max_fd, &fdset, NULL, NULL, timeout) < 0) {
- #ifdef _WIN32
- if(WSAGetLastError() == WSAEINTR)
- #else
- if(errno == EINTR)
- #endif
+ if (WSAGetLastError() == WSAEINTR)
+#else
+ if (select(max_fd+1, &fdset, NULL, NULL, timeout) < 0) {
+ if (errno == EINTR)
+#endif
{
throw NetworkSignal("EINTR on select");
}
@@ -336,4 +339,4 @@
}} // namespace certi/rtia
-// $Id: Communications.cc,v 3.25 2008/04/26 14:59:41 erk Exp $
+// $Id: Communications.cc,v 3.26 2008/05/05 09:47:21 erk Exp $
Index: RTIA/TimeManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/TimeManagement.hh,v
retrieving revision 3.15
retrieving revision 3.16
diff -u -b -r3.15 -r3.16
--- RTIA/TimeManagement.hh 23 Apr 2008 07:36:01 -0000 3.15
+++ RTIA/TimeManagement.hh 5 May 2008 09:47:21 -0000 3.16
@@ -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.15 2008/04/23 07:36:01 siron Exp $
+// $Id: TimeManagement.hh,v 3.16 2008/05/05 09:47:21 erk Exp $
// ----------------------------------------------------------------------------
#ifndef CERTI_RTIA_TIME_MANAGEMENT_HH
@@ -105,8 +105,15 @@
bool requestRegulateurState() { return _est_regulateur ; };
// Attribute
- bool _blocking_tick; // processing the tick
+ enum {
+ NO_TICK,
+ TICK_BLOCKING,
+ TICK_NEXT,
+ TICK_CALLBACK,
+ TICK_RETURN
+ } _tick_state;
bool _tick_multiple; // process multiple callbacks
+ bool _tick_result; // tick() return value
RTI::TickTime _tick_timeout;
RTI::TickTime _tick_stop_time;
bool _asynchronous_delivery ;
@@ -148,4 +155,4 @@
#endif // CERTI_RTIA_TIME_MANAGEMENT_HH
-// $Id: TimeManagement.hh,v 3.15 2008/04/23 07:36:01 siron Exp $
+// $Id: TimeManagement.hh,v 3.16 2008/05/05 09:47:21 erk Exp $
Index: RTIA/Statistics.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/Statistics.cc,v
retrieving revision 3.14
retrieving revision 3.15
diff -u -b -r3.14 -r3.15
--- RTIA/Statistics.cc 6 Mar 2008 08:56:27 -0000 3.14
+++ RTIA/Statistics.cc 5 May 2008 09:47:21 -0000 3.15
@@ -208,6 +208,7 @@
FED_MSG_NAME(Message::ENABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH);
FED_MSG_NAME(Message::DISABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH);
FED_MSG_NAME(Message::TICK_REQUEST);
+ FED_MSG_NAME(Message::TICK_REQUEST_NEXT);
// RTI messages
RTI_MSG_NAME(NetworkMessage::CLOSE_CONNEXION);
@@ -361,4 +362,4 @@
#undef FED_MSG_NAME
#undef RTI_MSG_NAME
-// $Id: Statistics.cc,v 3.14 2008/03/06 08:56:27 rousse Exp $
+// $Id: Statistics.cc,v 3.15 2008/05/05 09:47:21 erk Exp $
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi libCERTI/Message_W.cc libCERTI/Message.hh...,
certi-cvs <=