17 #ifndef STROMX_RUNTIME_DATA_H 18 #define STROMX_RUNTIME_DATA_H 21 #include "stromx/runtime/Config.h" 22 #include "stromx/runtime/DataInterface.h" 23 #include "stromx/runtime/Exception.h" 24 #include "stromx/runtime/VariantHandle.h" 37 template<
class data_t>
41 static const VariantHandle & variant();
45 class STROMX_RUNTIME_API data_traits<Data>
48 static const VariantHandle & variant();
67 template<
typename data_t>
70 if(data.
isVariant(data_traits<data_t>::variant()))
71 return reinterpret_cast<data_t &>(data);
81 template<
typename data_t>
84 if(data.
isVariant(data_traits<data_t>::variant()))
85 return reinterpret_cast<const data_t &>(data);
94 template<
typename data_t>
97 if(data && data->
isVariant(data_traits<data_t>::variant()))
98 return reinterpret_cast<data_t*>(data);
107 template<
typename data_t>
110 if(data && data->
isVariant(data_traits<data_t>::variant()))
111 return reinterpret_cast<const data_t*>(data);
118 #endif // STROMX_RUNTIME_DATA_H A version of an operator or data type.
Definition: Version.h:46
Abstract data object.
Definition: Data.h:53
bool isVariant(const VariantInterface &v) const
Definition: DataInterface.h:72
Provides functions to serialize data to strings and files.
Definition: OutputProvider.h:27
Version version()
Returns the version of the stromx runtime library.
Definition: Runtime.cpp:54
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
Common interface of data objects or references to data objects.
Definition: DataInterface.h:32
An impossible cast was attempted.
Definition: Exception.h:183
const data_t & data_cast(ConstDataRef &data)
Definition: ConstDataRef.h:97