X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fhla%2FHLAObjectClass.hxx;h=f4453c7c47553abbe714c465566358e9eac383a5;hb=9fd90e26f7da96ec968ad22dc20fc0041bc02136;hp=ea054a48f9b71d65a21ebd774000eb8f92024e99;hpb=92f7445bb90442832005f4ffd6273e590ac9e059;p=simgear.git diff --git a/simgear/hla/HLAObjectClass.hxx b/simgear/hla/HLAObjectClass.hxx index ea054a48..f4453c7c 100644 --- a/simgear/hla/HLAObjectClass.hxx +++ b/simgear/hla/HLAObjectClass.hxx @@ -38,6 +38,9 @@ public: /// Return the name of this object class const std::string& getName() const; + /// return the federate this class belongs to + const SGWeakPtr& getFederate() const; + /// Return the number of attributes in this object class unsigned getNumAttributes() const; @@ -69,10 +72,9 @@ public: /// Sets the publication type of the attribute with the given index to publicationType void setAttributePublicationType(unsigned index, HLAPublicationType publicationType); - /// Return the index, path pair for the given string path pair - HLADataElement::IndexPathPair getIndexPathPair(const HLADataElement::StringPathPair&) const; - /// Return the index, path pair for the given string path - HLADataElement::IndexPathPair getIndexPathPair(const std::string& path) const; + /// Get the attribute data element index for the given path, return true if successful + bool getDataElementIndex(HLADataElementIndex& dataElementIndex, const std::string& path) const; + HLADataElementIndex getDataElementIndex(const std::string& path) const; virtual bool subscribe(); virtual bool unsubscribe(); @@ -97,6 +99,11 @@ public: const SGSharedPtr& getInstanceCallback() const { return _instanceCallback; } + virtual void discoverInstance(HLAObjectInstance& objectInstance, const RTIData& tag); + virtual void removeInstance(HLAObjectInstance& objectInstance, const RTIData& tag); + virtual void registerInstance(HLAObjectInstance& objectInstance); + virtual void deleteInstance(HLAObjectInstance& objectInstance); + // Is called by the default registration callback if installed // Should register the already known object instances of this class. virtual void startRegistration() const; @@ -117,7 +124,9 @@ public: /// Create a new instance of this class. virtual HLAObjectInstance* createObjectInstance(const std::string& name); - virtual HLAObjectInstance* createObjectInstance(); // deprecated + + virtual void createAttributeDataElements(HLAObjectInstance& objectInstance); + virtual HLADataElement* createAttributeDataElement(HLAObjectInstance& objectInstance, unsigned index); private: HLAObjectClass(const HLAObjectClass&);