]> git.mxchange.org Git - simgear.git/blobdiff - simgear/hla/RTI13Federate.hxx
hla: lift the event loop logic from RTI to HLAFederate.
[simgear.git] / simgear / hla / RTI13Federate.hxx
index e8808e3a80b417ce94600c95e6d39952ced14649..651756edb36e9ff4902df0bdb3241d2c3e80e7d7 100644 (file)
@@ -37,39 +37,43 @@ public:
     RTI13Federate(const std::list<std::string>& stringList);
     virtual ~RTI13Federate();
 
-    virtual bool createFederationExecution(const std::string& federation, const std::string& objectModel);
-    virtual bool destroyFederationExecution(const std::string& federation);
+    /// Create a federation execution
+    /// Semantically this methods should be static,
+    virtual FederationManagementResult createFederationExecution(const std::string& federation, const std::string& objectModel);
+    virtual FederationManagementResult destroyFederationExecution(const std::string& federation);
 
     /// Join with federateName the federation execution federation
-    virtual bool join(const std::string& federateType, const std::string& federation);
+    virtual FederationManagementResult join(const std::string& federateType, const std::string& federation);
     virtual bool resign();
 
     /// Synchronization Point handling
     virtual bool registerFederationSynchronizationPoint(const std::string& label, const RTIData& tag);
-    virtual bool waitForFederationSynchronizationPointAnnounced(const std::string& label);
+    virtual bool getFederationSynchronizationPointAnnounced(const std::string& label);
     virtual bool synchronizationPointAchieved(const std::string& label);
-    virtual bool waitForFederationSynchronized(const std::string& label);
+    virtual bool getFederationSynchronized(const std::string& label);
 
     /// Time management
     virtual bool enableTimeConstrained();
     virtual bool disableTimeConstrained();
+    virtual bool getTimeConstrainedEnabled();
 
     virtual bool enableTimeRegulation(const SGTimeStamp& lookahead);
     virtual bool disableTimeRegulation();
+    virtual bool modifyLookahead(const SGTimeStamp& timeStamp);
+    virtual bool getTimeRegulationEnabled();
 
-    virtual bool timeAdvanceRequestBy(const SGTimeStamp& dt);
-    virtual bool timeAdvanceRequest(const SGTimeStamp& fedTime);
+    virtual bool timeAdvanceRequest(const SGTimeStamp& timeStamp);
+    virtual bool timeAdvanceRequestAvailable(const SGTimeStamp& timeStamp);
+    virtual bool getTimeAdvancePending();
 
     virtual bool queryFederateTime(SGTimeStamp& timeStamp);
-    virtual bool modifyLookahead(const SGTimeStamp& timeStamp);
     virtual bool queryLookahead(SGTimeStamp& timeStamp);
-
     virtual bool queryGALT(SGTimeStamp& timeStamp);
     virtual bool queryLITS(SGTimeStamp& timeStamp);
 
     /// Process messages
-    virtual bool tick();
-    virtual bool tick(const double& minimum, const double& maximum);
+    virtual bool processMessage();
+    virtual bool processMessages(const double& minimum, const double& maximum);
 
     virtual RTI13ObjectClass* createObjectClass(const std::string& name, HLAObjectClass* hlaObjectClass);
 
@@ -84,10 +88,6 @@ private:
     RTI::FederateHandle _federateHandle;
     bool _joined;
 
-    /// The timeout for the single callback tick function in
-    /// syncronous operations that need to wait for a callback
-    double _tickTimeout;
-
     /// RTI connection
     SGSharedPtr<RTI13Ambassador> _ambassador;