]> git.mxchange.org Git - simgear.git/commitdiff
Add modifyLookahead to the rti abstraction.
authorMathias Froehlich <Mathias.Froehlich@web.de>
Tue, 30 Aug 2011 05:28:13 +0000 (07:28 +0200)
committerMathias Froehlich <Mathias.Froehlich@web.de>
Tue, 30 Aug 2011 05:28:13 +0000 (07:28 +0200)
simgear/hla/HLAFederate.cxx
simgear/hla/HLAFederate.hxx
simgear/hla/RTI13Ambassador.hxx
simgear/hla/RTI13Federate.cxx
simgear/hla/RTI13Federate.hxx
simgear/hla/RTIFederate.hxx

index 96e31fc32ffe2f7fefcd57834b9a9535f46de234..d16494c90c3043b4b96f46d69dd40f686e8f7fb0 100644 (file)
@@ -113,6 +113,12 @@ HLAFederate::queryFederateTime(SGTimeStamp& timeStamp)
     return _rtiFederate->queryFederateTime(timeStamp);
 }
 
+bool
+HLAFederate::modifyLookahead(const SGTimeStamp& timeStamp)
+{
+    return _rtiFederate->modifyLookahead(timeStamp);
+}
+
 bool
 HLAFederate::queryLookahead(SGTimeStamp& timeStamp)
 {
index 241f60935a38f6905fc89c53eb82313f71ef5120..7376540e4bbe9f26909c716ff26510daa8a8f6a5 100644 (file)
@@ -59,6 +59,7 @@ public:
     bool timeAdvanceRequest(const SGTimeStamp& dt);
 
     bool queryFederateTime(SGTimeStamp& timeStamp);
+    bool modifyLookahead(const SGTimeStamp& timeStamp);
     bool queryLookahead(SGTimeStamp& timeStamp);
 
     /// Process messages
index 502a39f72fc3ef04d35ecc7468eb2f97183941fd..5446f8583d4dded819cd2d793af3f6adfdd3164a 100644 (file)
@@ -387,6 +387,8 @@ public:
         _rtiAmbassador.queryFederateTime(fedTime);
         timeStamp = toTimeStamp(fedTime);
     }
+    void modifyLookahead(const SGTimeStamp& timeStamp)
+    { _rtiAmbassador.modifyLookahead(toFedTime(timeStamp)); }
     void queryLookahead(SGTimeStamp& timeStamp)
     {
         RTIfedTime fedTime;
index d3f9eebc8694ddc0a14ef12a957ef34eb56f683d..649a9f58ec32a9bde811d9407754a38f3fa4b424 100644 (file)
@@ -480,6 +480,37 @@ RTI13Federate::queryFederateTime(SGTimeStamp& timeStamp)
     return true;
 }
 
+bool
+RTI13Federate::modifyLookahead(const SGTimeStamp& timeStamp)
+{
+    if (!_ambassador.valid()) {
+        SG_LOG(SG_NETWORK, SG_WARN, "RTI: Could not modify lookahead.");
+        return false;
+    }
+    try {
+        _ambassador->modifyLookahead(timeStamp);
+    } catch (RTI::InvalidLookahead& e) {
+        SG_LOG(SG_NETWORK, SG_WARN, "RTI: Could not modify lookahead: " << e._name << " " << e._reason);
+        return false;
+    } catch (RTI::FederateNotExecutionMember& e) {
+        SG_LOG(SG_NETWORK, SG_WARN, "RTI: Could not modify lookahead: " << e._name << " " << e._reason);
+        return false;
+    } catch (RTI::ConcurrentAccessAttempted& e) {
+        SG_LOG(SG_NETWORK, SG_WARN, "RTI: Could not modify lookahead: " << e._name << " " << e._reason);
+        return false;
+    } catch (RTI::SaveInProgress& e) {
+        SG_LOG(SG_NETWORK, SG_WARN, "RTI: Could not modify lookahead: " << e._name << " " << e._reason);
+        return false;
+    } catch (RTI::RestoreInProgress& e) {
+        SG_LOG(SG_NETWORK, SG_WARN, "RTI: Could not modify lookahead: " << e._name << " " << e._reason);
+        return false;
+    } catch (RTI::RTIinternalError& e) {
+        SG_LOG(SG_NETWORK, SG_WARN, "RTI: Could not modify lookahead: " << e._name << " " << e._reason);
+        return false;
+    }
+    return true;
+}
+
 bool
 RTI13Federate::queryLookahead(SGTimeStamp& timeStamp)
 {
index acad0fceaf99347b09283b4ef472cc84f3002cca..8ace9e58788781d05a974e6d85e464632777989e 100644 (file)
@@ -61,6 +61,7 @@ public:
     virtual bool timeAdvanceRequest(const SGTimeStamp& fedTime);
 
     virtual bool queryFederateTime(SGTimeStamp& timeStamp);
+    virtual bool modifyLookahead(const SGTimeStamp& timeStamp);
     virtual bool queryLookahead(SGTimeStamp& timeStamp);
 
     /// Process messages
index bdb68faa4a330d8bca72d52cde6271013e127e02..c997704f36238723fca381321d19716f7cfebc40 100644 (file)
@@ -66,6 +66,7 @@ public:
     virtual bool timeAdvanceRequest(const SGTimeStamp& fedTime) = 0;
 
     virtual bool queryFederateTime(SGTimeStamp& timeStamp) = 0;
+    virtual bool modifyLookahead(const SGTimeStamp& timeStamp) = 0;
     virtual bool queryLookahead(SGTimeStamp& timeStamp) = 0;
 
     /// Process messages