+ // Push the current values into the RTI
+ virtual void updateAttributeValues(const RTIData& tag);
+ virtual void updateAttributeValues(const SGTimeStamp& timeStamp, const RTIData& tag);
+ // encode periodic and dirty attribute values for the next sendAttributeValues
+ void encodeAttributeValues();
+ // encode the attribute value at index i for the next sendAttributeValues
+ void encodeAttributeValue(unsigned index);
+
+ // Really sends the prepared attribute update values into the RTI
+ void sendAttributeValues(const RTIData& tag);
+ void sendAttributeValues(const SGTimeStamp& timeStamp, const RTIData& tag);
+
+ class UpdateCallback : public SGReferenced {
+ public:
+ virtual ~UpdateCallback();
+
+ virtual void updateAttributeValues(HLAObjectInstance&, const RTIData&) = 0;
+ virtual void updateAttributeValues(HLAObjectInstance&, const SGTimeStamp&, const RTIData&) = 0;
+ };
+
+ void setUpdateCallback(const SGSharedPtr<UpdateCallback>& updateCallback)
+ { _updateCallback = updateCallback; }
+ const SGSharedPtr<UpdateCallback>& getUpdateCallback() const
+ { return _updateCallback; }
+
+
+ // Reflects the indices given in the index vector into the attributes HLADataElements.
+ virtual void reflectAttributeValues(const HLAIndexList& indexList, const RTIData& tag);
+ virtual void reflectAttributeValues(const HLAIndexList& indexList, const SGTimeStamp& timeStamp, const RTIData& tag);
+ // Reflect a single attribute value at the given index into the attributes HLADataELement.
+ virtual void reflectAttributeValue(unsigned index, const RTIData& tag);
+ virtual void reflectAttributeValue(unsigned index, const SGTimeStamp& timeStamp, const RTIData& tag);
+
+ class ReflectCallback : public SGReferenced {
+ public:
+ virtual ~ReflectCallback();
+
+ virtual void reflectAttributeValues(HLAObjectInstance&, const HLAIndexList&, const RTIData&) = 0;
+ virtual void reflectAttributeValues(HLAObjectInstance&, const HLAIndexList&, const SGTimeStamp&, const RTIData&) = 0;
+ };
+
+ void setReflectCallback(const SGSharedPtr<ReflectCallback>& reflectCallback)
+ { _reflectCallback = reflectCallback; }
+ const SGSharedPtr<ReflectCallback>& getReflectCallback() const
+ { return _reflectCallback; }
+
+ // deprecated.