13 #ifndef RTI_BasicDataElements_h_
14 #define RTI_BasicDataElements_h_
29 #define DEFINE_ENCODING_HELPER_CLASS(EncodableDataType, SimpleDataType) \
33 class EncodableDataType##Implementation; \
35 class RTI_EXPORT EncodableDataType : public rti1516e::DataElement \
41 EncodableDataType(); \
45 explicit EncodableDataType ( \
46 SimpleDataType const & inData); \
54 explicit EncodableDataType ( \
55 SimpleDataType* inData); \
60 EncodableDataType const & rhs); \
63 virtual ~EncodableDataType (); \
67 EncodableDataType& operator=( \
68 EncodableDataType const & rhs); \
72 virtual std::auto_ptr<DataElement> clone () const; \
75 virtual VariableLengthData encode () const \
76 throw (EncoderException); \
79 virtual void encode ( \
80 VariableLengthData& inData) const \
81 throw (EncoderException); \
84 virtual void encodeInto ( \
85 std::vector<Octet>& buffer) const \
86 throw (EncoderException); \
89 virtual void decode ( \
90 VariableLengthData const & inData) \
91 throw (EncoderException); \
95 virtual size_t decodeFrom ( \
96 std::vector<Octet> const & buffer, \
98 throw (EncoderException); \
101 virtual size_t getEncodedLength () const \
102 throw (EncoderException); \
105 virtual unsigned int getOctetBoundary () const; \
110 virtual Integer64 hash() const; \
117 virtual void setDataPointer ( \
118 SimpleDataType* inData) \
119 throw (EncoderException); \
124 SimpleDataType inData); \
127 virtual SimpleDataType get () const; \
131 EncodableDataType & operator= ( \
132 SimpleDataType rhs); \
136 operator SimpleDataType () const; \
140 EncodableDataType##Implementation* _impl; \
147 class VariableLengthData;
173 #endif // RTI_BasicDataElements_h_