35 #ifndef _Wolframe_TYPES_CUSTOM_DATA_TYPE_HPP_INCLUDED
36 #define _Wolframe_TYPES_CUSTOM_DATA_TYPE_HPP_INCLUDED
41 #include <boost/shared_ptr.hpp>
47 class ProcessorProvider;
56 class CustomDataInitializer;
78 virtual std::string
tostring()
const=0;
108 typedef unsigned int ID;
113 static const char* ar[] = {
"increment",
"decrement",
"negation"};
120 static const char* ar[] = {
"add",
"subtract",
"multiply",
"divide",
"power",
"concat"};
127 static const char* ar[] = {
"tostring",
"toint",
"touint",
"todouble",
"totimestamp"};
134 static const char* ar[] = {
"length"};
static const char * conversionOperatorTypeName(ConversionOperatorType i)
Definition: customDataType.hpp:125
Definition: customDataType.hpp:116
CustomDataInitializer * createInitializer(const std::vector< types::Variant > &arg) const
Definition: customDataType.hpp:109
types::keymap< CustomDataValueMethod > m_methodmap
Definition: customDataType.hpp:199
Definition: customDataType.hpp:110
CustomDataValue * createValue(const CustomDataInitializer *i=0) const
static const char * dimensionOperatorTypeName(DimensionOperatorType i)
Definition: customDataType.hpp:132
Definition: customDataType.hpp:124
DimensionOperator opDimension[NofDimensionOperators]
Definition: customDataType.hpp:193
virtual bool getBaseTypeValue(Variant &) const
Definition: customDataType.hpp:81
CustomDataInitializer()
Definition: customDataType.hpp:97
Initializer for a custom data value.
Definition: customDataType.hpp:94
ConversionOperator opConversion[NofConversionOperators]
Definition: customDataType.hpp:194
ConversionOperator getOperator(ConversionOperatorType type) const
CustomDataInitializer *(* CreateCustomDataInitializer)(const std::vector< types::Variant > &arg)
Definition: customDataType.hpp:142
DimensionOperatorType
Definition: customDataType.hpp:131
ConversionOperatorType
Definition: customDataType.hpp:124
types::Variant(* CustomDataValueMethod)(const CustomDataValue &val, const std::vector< types::Variant > &arg)
Definition: customDataType.hpp:144
CustomDataValueMethod getMethod(const std::string &methodname) const
std::string m_name
Definition: customDataType.hpp:185
Definition: customDataType.hpp:117
CustomDataValue()
Definition: customDataType.hpp:68
const ID & id() const
Definition: customDataType.hpp:181
Custom data value.
Definition: customDataType.hpp:65
boost::shared_ptr< CustomDataType > CustomDataTypeR
Definition: customDataType.hpp:202
const CustomDataType * type() const
Definition: customDataType.hpp:74
boost::shared_ptr< CustomDataValue > CustomDataValueR
Definition: customDataType.hpp:89
Definition: customDataType.hpp:117
BinaryOperator opBinary[NofBinaryOperators]
Definition: customDataType.hpp:192
std::size_t(* DimensionOperator)(const CustomDataValue &arg)
Definition: customDataType.hpp:141
CustomDataType()
Default constructor.
Definition: customDataType.hpp:148
const std::string & name() const
Definition: customDataType.hpp:182
Forward declaration.
Definition: variant.hpp:65
CustomDataValue(const CustomDataValue &o)
Definition: customDataType.hpp:70
static const char * unaryOperatorTypeName(UnaryOperatorType i)
Definition: customDataType.hpp:111
Definition: customDataType.hpp:110
bool hasInitializer() const
Definition: customDataType.hpp:180
CustomDataValue *(* CustomDataValueConstructor)(const CustomDataInitializer *initializer)
Definition: customDataType.hpp:143
Definition: customDataType.hpp:124
CustomDataValueConstructor opConstructor
Definition: customDataType.hpp:196
const CustomDataInitializer * initializer() const
Definition: customDataType.hpp:75
Processor provider, the class that provides access to configured global objects to processors...
Definition: procProvider.hpp:61
void define(UnaryOperatorType type, UnaryOperator op)
UnaryOperatorType
Definition: customDataType.hpp:110
Definition: customDataType.hpp:117
Definition: customDataType.hpp:124
BinaryOperatorType
Definition: customDataType.hpp:117
Definition: customDataType.hpp:130
unsigned int ID
Definition: customDataType.hpp:108
struct _Wolframe::types::CustomDataType::@16 m_vmt
Custom Data Type Definition.
Definition: customDataType.hpp:105
template for map with case insensitive key strings
Definition: customDataType.hpp:123
virtual ~CustomDataInitializer()
Definition: customDataType.hpp:98
Definition: customDataType.hpp:124
static const char * binaryOperatorTypeName(BinaryOperatorType i)
Definition: customDataType.hpp:118
types::Variant(* BinaryOperator)(const CustomDataValue &operand, const Variant &arg)
Definition: customDataType.hpp:140
Definition: customDataType.hpp:117
Definition: customDataType.hpp:117
const CustomDataInitializer * m_initializer
Definition: customDataType.hpp:86
virtual int compare(const CustomDataValue &o) const =0
virtual void assign(const Variant &o)=0
Definition: customDataType.hpp:110
Definition: customDataType.hpp:117
boost::shared_ptr< CustomDataInitializer > CustomDataInitializerR
Definition: customDataType.hpp:101
types::Variant(* UnaryOperator)(const CustomDataValue &operand)
Definition: customDataType.hpp:139
virtual ~CustomDataValue()
Definition: customDataType.hpp:72
virtual CustomDataValue * copy() const =0
Definition: customDataType.hpp:131
Definition: customDataType.hpp:124
types::Variant(* ConversionOperator)(const CustomDataValue &operand)
Definition: customDataType.hpp:138
ID m_id
Definition: customDataType.hpp:187
virtual std::string tostring() const =0
CreateCustomDataInitializer opInitializerConstructor
Definition: customDataType.hpp:195
UnaryOperator opUnary[NofUnaryOperators]
Definition: customDataType.hpp:191
const CustomDataType * m_type
Definition: customDataType.hpp:85