17 #ifndef STROMX_RUNTIME_LIST_H 18 #define STROMX_RUNTIME_LIST_H 21 #include "stromx/runtime/Data.h" 33 explicit List(
const std::vector<Data*> & content) : m_content(content) {}
36 virtual const std::string &
type()
const {
return TYPE; }
38 virtual const std::string &
package()
const {
return PACKAGE; }
42 virtual Data* clone()
const;
45 std::vector<Data*> &
content() {
return m_content; }
50 return std::vector<const Data*>(m_content.begin(), m_content.end());
54 static const std::string TYPE;
55 static const std::string PACKAGE;
58 std::vector<Data*> m_content;
63 class STROMX_RUNTIME_API data_traits<List>
74 template <
class src_t>
75 TypedList(
const std::vector<src_t> & srcContent) : List()
77 content().reserve(srcContent.size());
78 for (
typename std::vector<src_t>::const_iterator iter = srcContent.begin();
79 iter != srcContent.end(); ++iter)
81 src_t & src =
const_cast<src_t&
>(*iter);
82 content().push_back(
new T(src));
91 #endif // STROMX_RUNTIME_LIST_H A version of an operator or data type.
Definition: Version.h:46
Abstract data object.
Definition: Data.h:53
Definition: VariantHandle.h:34
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
virtual const std::string & type() const
Definition: List.h:36
virtual const Version & version() const
Definition: List.h:37
List()
Definition: List.h:32
List of data values.
Definition: List.h:28
std::vector< const Data * > content() const
Definition: List.h:48
virtual const std::string & package() const
Definition: List.h:38
std::vector< Data * > & content()
Definition: List.h:45