11 #ifndef RTI_DDS_FLAT_FLATTYPETRAITS_HPP_ 12 #define RTI_DDS_FLAT_FLATTYPETRAITS_HPP_ 14 #include "rti/flat/Offset.hpp" 15 #include "rti/flat/SequenceOffsets.hpp" 16 #include "rti/flat/AggregationBuilders.hpp" 18 namespace rti {
namespace flat {
66 struct flat_type_traits;
68 template <
typename T,
unsigned int N>
69 struct flat_type_traits<FinalArrayOffset<T, N> > {
70 typedef typename flat_type_traits<T>::plain_type plain_type;
73 template <
typename T,
unsigned int N>
74 struct flat_type_traits<PrimitiveArrayOffset<T, N> > {
79 struct flat_type_traits<PrimitiveSequenceOffset<T> > {
83 template <
typename T,
unsigned int N>
84 struct flat_type_traits<FinalAlignedArrayOffset<T, N> > {
85 typedef typename flat_type_traits<T>::plain_type plain_type;
88 template <
typename T,
unsigned int N>
89 struct flat_type_traits<MutableArrayOffset<T, N> > {
90 typedef typename flat_type_traits<T>::plain_type plain_type;
94 struct flat_type_traits<SequenceOffset<T> > {
95 typedef typename flat_type_traits<T>::plain_type plain_type;
99 struct flat_type_traits<StringOffset > :
100 flat_type_traits<PrimitiveSequenceOffset<char> > {
103 template <
typename T>
104 struct flat_type_traits<PrimitiveOffset<T> > {
105 typedef T plain_type;
219 template <
typename OffsetType>
222 RTI_FLAT_CHECK_PRECONDITION(offset.is_cpp_compatible(),
return NULL);
224 offset.get_buffer());
231 template <
typename OffsetType>
234 RTI_FLAT_CHECK_PRECONDITION(offset.is_cpp_compatible(),
return NULL);
236 offset.get_buffer());
241 template <
typename OffsetKind>
242 struct offset_kind_is_fixed_size {
247 struct offset_kind_is_fixed_size<rti::flat::fixed_size_type_tag_t> {
255 template <
typename T>
256 struct is_fixed_size_type
257 : detail::offset_kind_is_fixed_size<typename T::Offset::offset_kind>
263 #endif // RTI_DDS_FLAT_FLATSAMPLE_HPP_ flat_type_traits< OffsetType >::plain_type * plain_cast(OffsetType &offset)
Casts into an equivalent plain C++ type.
Definition: FlatTypeTraits.hpp:220
Given a Sample, an Offset or a Builder, it allows obtaining the other types.
Definition: FlatSample.hpp:340
Definition: AggregationBuilders.hpp:17