]> git.mxchange.org Git - simgear.git/blobdiff - simgear/hla/RTIFederate.hxx
Fix HLAFederate for readXML API change
[simgear.git] / simgear / hla / RTIFederate.hxx
index b7aa8854723e2b9875fd9fd9c9d1ba7c29aa1980..7372ee6a388aaeda65e743c99ed4ce0640d1356c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009 - 2010  Mathias Froehlich - Mathias.Froehlich@web.de
+// Copyright (C) 2009 - 2012  Mathias Froehlich - Mathias.Froehlich@web.de
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Library General Public
@@ -20,6 +20,7 @@
 
 #include <string>
 #include "simgear/structure/SGWeakReferenced.hxx"
+#include "RTIInteractionClass.hxx"
 #include "RTIObjectClass.hxx"
 #include "RTIObjectInstance.hxx"
 
@@ -46,36 +47,46 @@ public:
     /// Join with federateName the federation execution federation
     virtual FederationManagementResult join(const std::string& federateType, const std::string& federation) = 0;
     virtual bool resign() = 0;
+    virtual bool getJoined() const = 0;
 
     /// Synchronization Point handling
     virtual bool registerFederationSynchronizationPoint(const std::string& label, const RTIData& tag) = 0;
-    virtual bool waitForFederationSynchronizationPointAnnounced(const std::string& label) = 0;
+    virtual bool getFederationSynchronizationPointAnnounced(const std::string& label) = 0;
     virtual bool synchronizationPointAchieved(const std::string& label) = 0;
-    virtual bool waitForFederationSynchronized(const std::string& label) = 0;
+    virtual bool getFederationSynchronized(const std::string& label) = 0;
 
     /// Time management
     virtual bool enableTimeConstrained() = 0;
     virtual bool disableTimeConstrained() = 0;
+    virtual bool getTimeConstrainedEnabled() = 0;
 
     virtual bool enableTimeRegulation(const SGTimeStamp& lookahead) = 0;
     virtual bool disableTimeRegulation() = 0;
+    virtual bool modifyLookahead(const SGTimeStamp& timeStamp) = 0;
+    virtual bool getTimeRegulationEnabled() = 0;
 
-    virtual bool timeAdvanceRequestBy(const SGTimeStamp& dt) = 0;
     virtual bool timeAdvanceRequest(const SGTimeStamp& fedTime) = 0;
+    virtual bool timeAdvanceRequestAvailable(const SGTimeStamp& timeStamp) = 0;
+    virtual bool flushQueueRequest(const SGTimeStamp& timeStamp) = 0;
+    virtual bool getTimeAdvancePending() = 0;
 
     virtual bool queryFederateTime(SGTimeStamp& timeStamp) = 0;
-    virtual bool modifyLookahead(const SGTimeStamp& timeStamp) = 0;
     virtual bool queryLookahead(SGTimeStamp& timeStamp) = 0;
-
     virtual bool queryGALT(SGTimeStamp& timeStamp) = 0;
     virtual bool queryLITS(SGTimeStamp& timeStamp) = 0;
 
+    enum ProcessMessageResult {
+        ProcessMessagePending,
+        ProcessMessageLast,
+        ProcessMessageFatal
+    };
+
     /// Process messages
-    virtual bool tick() = 0;
-    virtual bool tick(const double& minimum, const double& maximum) = 0;
+    virtual ProcessMessageResult processMessage() = 0;
+    virtual ProcessMessageResult processMessages(const double& minimum, const double& maximum) = 0;
 
     virtual RTIObjectClass* createObjectClass(const std::string& name, HLAObjectClass* hlaObjectClass) = 0;
-    // virtual RTIInteractionClass* createInteractionClass(const std::string& name) = 0;
+    virtual RTIInteractionClass* createInteractionClass(const std::string& name, HLAInteractionClass* interactionClass) = 0;
 
     virtual RTIObjectInstance* getObjectInstance(const std::string& name) = 0;