Wolframe, 0.0.3

normalizeModuleMacros.hpp File Reference

Macros for defining normalization and validaton function module. More...

#include "appdevel/module/normalizeFunctionBuilder.hpp"
#include "types/normalizeFunction.hpp"
#include "types/variant.hpp"
#include <boost/shared_ptr.hpp>

Go to the source code of this file.

Macros

#define WF_NORMALIZER_RESOURCE(RESOURCECLASS)
 
#define WF_NORMALIZER(NAME, NORMALIZERCLASS)
 Defines normalization function. More...
 
#define WF_NORMALIZER_WITH_RESOURCE(NAME, NORMALIZERCLASS, RESOURCECLASS)
 Defines normalization function. More...
 

Detailed Description

Macros for defining normalization and validaton function module.

Macro Definition Documentation

#define WF_NORMALIZER (   NAME,
  NORMALIZERCLASS 
)
Value:
{\
struct Constructor\
{\
static _Wolframe::types::NormalizeFunction* create( _Wolframe::types::NormalizeResourceHandle*, const std::vector<_Wolframe::types::Variant>& arg)\
{\
return new NORMALIZERCLASS( arg);\
}\
{\
return new _Wolframe::module::NormalizeFunctionBuilder( "NormalizeFunction_" #NAME, NAME, create);\
}\
};\
(*this)(&Constructor ::impl);\
}
Base class for resources for normalization functions.
Definition: normalizeFunction.hpp:66
Builder of a normalization function type constructor.
Definition: normalizeFunctionBuilder.hpp:96
Definition: moduleInterface.hpp:51
Basic normalization function for atomic values (variant type)
Definition: normalizeFunction.hpp:52

Defines normalization function.

#define WF_NORMALIZER_RESOURCE (   RESOURCECLASS)
Value:
struct macro__WF_NORMALIZER_RESOURCE__ ## RESOURCECLASS\
{\
static const boost::shared_ptr<RESOURCECLASS>& get()\
{\
static boost::shared_ptr<RESOURCECLASS> rt;\
if (!rt.get())\
{\
rt.reset( new RESOURCECLASS());\
}\
return rt;\
}\
};\
#define WF_NORMALIZER_WITH_RESOURCE (   NAME,
  NORMALIZERCLASS,
  RESOURCECLASS 
)
Value:
{\
struct Constructor\
{\
static _Wolframe::types::NormalizeFunction* create( _Wolframe::types::NormalizeResourceHandle* reshnd, const std::vector<_Wolframe::types::Variant>& arg)\
{\
return new NORMALIZERCLASS( reshnd, arg);\
}\
{\
return new _Wolframe::module::NormalizeFunctionBuilder( "NormalizeFunction_" #NAME, NAME, create, macro__WF_NORMALIZER_RESOURCE__ ## RESOURCECLASS::get());\
}\
};\
(*this)(&Constructor ::impl);\
}
Base class for resources for normalization functions.
Definition: normalizeFunction.hpp:66
Builder of a normalization function type constructor.
Definition: normalizeFunctionBuilder.hpp:96
Definition: moduleInterface.hpp:51
Basic normalization function for atomic values (variant type)
Definition: normalizeFunction.hpp:52

Defines normalization function.