]> git.mxchange.org Git - simgear.git/blobdiff - simgear/hla/HLAObjectClass.hxx
hla: Remove HLADataElement::Path based attribute handling.
[simgear.git] / simgear / hla / HLAObjectClass.hxx
index ea054a48f9b71d65a21ebd774000eb8f92024e99..f4453c7c47553abbe714c465566358e9eac383a5 100644 (file)
@@ -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<HLAFederate>& 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<InstanceCallback>& 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&);