- void setAttributeDataType(unsigned index, SGSharedPtr<const HLADataType> dataType)
- {
- if (_attributeDataVector.size() <= index)
- return;
- _attributeDataVector[index]._dataType = dataType;
- }
- const HLADataType* getAttributeDataType(unsigned index) const
- {
- if (_attributeDataVector.size() <= index)
- return 0;
- return _attributeDataVector[index]._dataType.get();
- }
-
- HLAUpdateType getAttributeUpdateType(unsigned index) const
- {
- if (_attributeDataVector.size() <= index)
- return HLAUndefinedUpdate;
- return _attributeDataVector[index]._updateType;
- }
- void setAttributeUpdateType(unsigned index, HLAUpdateType updateType)
- {
- if (_attributeDataVector.size() <= index)
- return;
- _attributeDataVector[index]._updateType = updateType;
- }
-
- bool getAttributeSubscribed(unsigned index) const
- {
- if (_attributeDataVector.size() <= index)
- return false;
- return _attributeDataVector[index]._subscribed;
- }
- bool getAttributePublished(unsigned index) const
- {
- if (_attributeDataVector.size() <= index)
- return false;
- return _attributeDataVector[index]._published;
- }
- std::string getAttributeName(unsigned index) const
- {
- if (_attributeDataVector.size() <= index)
- return std::string();
- return _attributeDataVector[index]._name;
- }
-
-protected:
- struct AttributeData {
- AttributeData(const std::string& name) : _name(name), _subscribed(false), _published(false), _updateType(HLAUndefinedUpdate) {}
- std::string _name;
- SGSharedPtr<const HLADataType> _dataType;
- bool _subscribed;
- bool _published;
- HLAUpdateType _updateType;
- };
- typedef std::vector<AttributeData> AttributeDataVector;
- AttributeDataVector _attributeDataVector;
-