13 #pragma warning( disable : 4290 )
16 #ifndef HLAvariableArrayImpl_H_
17 #define HLAvariableArrayImpl_H_
26 class HLAvariableArrayImplementation
32 HLAvariableArrayImplementation(
const DataElement& dataElement );
35 HLAvariableArrayImplementation(HLAvariableArrayImplementation
const & rhs);
38 virtual ~HLAvariableArrayImplementation();
50 virtual void encodeInto( std::vector<Octet>& buffer )
const;
59 virtual size_t decodeFrom( std::vector<Octet>
const & buffer,
size_t index );
63 virtual size_t getEncodedLength()
const;
67 virtual unsigned int getOctetBoundary()
const;
71 virtual size_t size()
const;
74 virtual bool hasPrototypeSameTypeAs(DataElement
const& dataElement )
const;
77 virtual bool hasPrototypeSameTypeAs(HLAvariableArrayImplementation
const* inData )
const;
81 virtual void addElement(
const DataElement& dataElement)
82 throw (EncoderException);
87 virtual void addElementPointer(DataElement* dataElement,
bool takeOwnership=
false)
88 throw (EncoderException);
92 virtual
void set (
size_t index, const DataElement& dataElement)
93 throw (EncoderException);
98 virtual
void setElementPointer (
size_t index, DataElement* dataElement,
bool takeOwnership=false)
99 throw (EncoderException);
104 virtual const rti1516e::DataElement& get(
size_t index) const;
109 virtual rti1516e::DataElement& get(
size_t index);
112 virtual const rti1516e::DataElement& prototypeElement() const;
118 virtual
size_t resetEncodedLength( );
122 virtual
void clear( );
125 HLAvariableArrayImplementation* self() const;
130 HLAvariableArrayImplementation();
135 HLAinteger32BE myLength;
138 std::auto_ptr<rti1516e::DataElement> myPrototypeElement;
141 mutable std::vector<rti1516e::DataElement*> myData;
144 mutable std::vector<
bool> myDataOwnership;
150 size_t myOctetBoundary;
153 size_t myEncodedLength;
158 #endif // DtIFSPEC1516E
Definition: VariableLengthData.h:34