X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fhla%2FRTIFederate.hxx;h=7372ee6a388aaeda65e743c99ed4ce0640d1356c;hb=ba83177019da0c941f55b6ef3b709ed7a57d4155;hp=b7aa8854723e2b9875fd9fd9c9d1ba7c29aa1980;hpb=1802ccf3740555e823ae4ac3788f2bb4e79dec82;p=simgear.git diff --git a/simgear/hla/RTIFederate.hxx b/simgear/hla/RTIFederate.hxx index b7aa8854..7372ee6a 100644 --- a/simgear/hla/RTIFederate.hxx +++ b/simgear/hla/RTIFederate.hxx @@ -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 #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;