| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef PARAMS_HELPER_H |
| | #define PARAMS_HELPER_H |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include <boost/preprocessor/cat.hpp> |
| | #include <boost/preprocessor/seq/seq.hpp> |
| | #include <boost/preprocessor/seq/elem.hpp> |
| | #include <boost/preprocessor/seq/for_each.hpp> |
| | #include <boost/preprocessor/seq/for_each_i.hpp> |
| | #include <boost/preprocessor/seq/pop_front.hpp> |
| | #include <boost/preprocessor/stringize.hpp> |
| | #include <boost/preprocessor/logical/not.hpp> |
| | #include <boost/preprocessor/tuple/elem.hpp> |
| | #include <boost/preprocessor/tuple/enum.hpp> |
| | #include <boost/preprocessor/punctuation/comma_if.hpp> |
| | #include <boost/preprocessor/comparison/greater.hpp> |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ITYPE 0 |
| | #define PARAM_IARG 1 |
| | #define PARAM_INAME 2 |
| | #define PARAM_IDEF 3 |
| | #define PARAM_IDOC 4 |
| | #define PARAM_ISEQ 5 |
| | #define PARAM_IPROP 5 |
| | #define PARAM_IINFO 6 |
| |
|
| | #define PARAM_FIELD(_idx, _param) BOOST_PP_TUPLE_ELEM(PARAM_I##_idx, _param) |
| |
|
| | #define PARAM_FTYPE(_param) PARAM_FIELD(TYPE, _param) |
| | #define PARAM_FARG(_param) PARAM_FIELD(ARG, _param) |
| | #define PARAM_FNAME(_param) PARAM_FIELD(NAME, _param) |
| | #define PARAM_FDEF(_param) PARAM_FIELD(DEF, _param) |
| | #define PARAM_FDOC(_param) PARAM_FIELD(DOC, _param) |
| | #define PARAM_FSEQ(_param) PARAM_FIELD(SEQ, _param) |
| | #define PARAM_FPROP(_param) PARAM_FIELD(PROP, _param) |
| | #define PARAM_FINFO(_param) PARAM_FIELD(INFO, _param) |
| | #define PARAM_FENUM_TYPE(_param) BOOST_PP_TUPLE_ELEM(0, PARAM_FINFO(_param)) |
| | #define PARAM_FENUM_PREFIX(_param) BOOST_PP_TUPLE_ELEM(1, PARAM_FINFO(_param)) |
| | |
| |
|
| |
|
| | |
| | |
| | |
| | |
| | #define PARAM_FIELD_STR(_idx, _param) BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(PARAM_I##_idx,_param)) |
| |
|
| | #define PARAM_FTYPE_STR(_param) PARAM_FIELD_STR(TYPE, _param) |
| | #define PARAM_FARG_STR(_param) PARAM_FIELD_STR(ARG, _param) |
| | #define PARAM_FNAME_STR(_param) PARAM_FIELD_STR(NAME, _param) |
| | #define PARAM_FDEF_STR(_param) PARAM_FIELD_STR(DEF, _param) |
| | |
| |
|
| | |
| | #define PARAM_FSEQ_STR_(_i, _elem) BOOST_PP_COMMA_IF(_i) BOOST_PP_STRINGIZE(_elem) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_FSEQ_STR(_param) PARAM_FOREACH_I(PARAM_FSEQ_STR_, PARAM_FSEQ(_param)) |
| |
|
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | #define PARAM_FOREACH_(_, _op, _param) _op(_param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_FOREACH(_op, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_FOREACH_, _op, _seq) |
| |
|
| | |
| | #define PARAM_FOREACH_I_(_, _op, _i, _param) _op(_i, _param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_FOREACH_I(_op, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_FOREACH_I_, _op, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_TYPED_FOREACH_(_1, _op, _param) PARAM_TYPED(_op, _param)(_param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_TYPED(_op, _param) BOOST_PP_CAT(_op, PARAM_FTYPE(_param)) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_TYPED_FOREACH(_op, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_TYPED_FOREACH_, _op, _seq) |
| |
|
| |
|
| | |
| | |
| | |
| |
|
| | #define PARAM_TYPE_short short |
| | #define PARAM_TYPE_long long |
| | #define PARAM_TYPE_double double |
| | #define PARAM_TYPE_bool bool |
| | #define PARAM_TYPE_enum short |
| | #define PARAM_TYPE_enum2 short |
| |
|
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_TYPE(_param) PARAM_TYPED(PARAM_TYPE_, _param) |
| |
|
| |
|
| | |
| | #define PARAM_DECLARE_(_1, _src, _param) PARAM_TYPE(_param) _src(_param); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_DECLARE(_src, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_DECLARE_, _src, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_DECLARE_INIT_(_1, _src, _param) PARAM_TYPE(_param) _src(_param) = PARAM_FDEF(_param); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_DECLARE_INIT(_src, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_DECLARE_INIT_, _src, _seq) |
| |
|
| |
|
| | #define PARAM_ENUM_DECLARE_enum_(_1, _name, _i, _elem) \ |
| | BOOST_PP_COMMA_IF(_i) BOOST_PP_CAT(_name, _elem) |
| |
|
| | #define PARAM_ENUM_DECLARE_enum(_param) \ |
| | enum \ |
| | { \ |
| | BOOST_PP_SEQ_FOR_EACH_I(PARAM_ENUM_DECLARE_enum_, PARAM_FNAME(_param), PARAM_FSEQ(_param)) \ |
| | }; |
| |
|
| | #define PARAM_ENUM_DECLARE_short(_param) |
| | #define PARAM_ENUM_DECLARE_long(_param) |
| | #define PARAM_ENUM_DECLARE_double(_param) |
| | #define PARAM_ENUM_DECLARE_bool(_param) |
| | #define PARAM_ENUM_DECLARE_enum2 PARAM_ENUM_DECLARE_enum |
| |
|
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ENUM_DECLARE(_seq) PARAM_TYPED_FOREACH(PARAM_ENUM_DECLARE_, _seq) |
| |
|
| |
|
| | |
| | |
| | #define PARAM_ENUM_CONVERT_short(...) |
| | #define PARAM_ENUM_CONVERT_long(...) |
| | #define PARAM_ENUM_CONVERT_double(...) |
| | #define PARAM_ENUM_CONVERT_bool(...) |
| | #define PARAM_ENUM_CONVERT_enum(...) |
| | #define PARAM_ENUM_CONVERT_enum2 PARAM_ENUM_CONVERT_SINGLE |
| |
|
| | #define PARAM_ENUM_CONVERT_enum_(_dst, _name, _prefix, _elem) \ |
| | case BOOST_PP_CAT(_name, _elem): \ |
| | _dst = BOOST_PP_CAT(_prefix, _elem); \ |
| | break; |
| |
|
| | #define PARAM_ENUM_CONVERT__(_1, _args, _i, _elem) \ |
| | PARAM_ENUM_CONVERT_enum_( \ |
| | BOOST_PP_TUPLE_ELEM(0, _args), \ |
| | BOOST_PP_TUPLE_ELEM(1, _args), \ |
| | BOOST_PP_TUPLE_ELEM(2, _args), \ |
| | _elem \ |
| | ); |
| |
|
| | #define PARAM_ENUM_CONVERT_(_1, _args, _param) \ |
| | PARAM_TYPED(PARAM_ENUM_CONVERT_, _param) \ |
| | (BOOST_PP_TUPLE_ELEM(0, _args), BOOST_PP_TUPLE_ELEM(1, _args), BOOST_PP_TUPLE_ELEM(2, _args), _param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ENUM_CONVERT_SINGLE(_src, _dst, _default, _param) \ |
| | PARAM_FENUM_TYPE(_param) _dst(_param); \ |
| | switch (_src(_param)) { \ |
| | BOOST_PP_SEQ_FOR_EACH_I( \ |
| | PARAM_ENUM_CONVERT__, \ |
| | (_dst(_param), PARAM_FNAME(_param), PARAM_FENUM_PREFIX(_param)), \ |
| | PARAM_FSEQ(_param) \ |
| | ) \ |
| | default: \ |
| | _default(_param); \ |
| | } |
| |
|
| | |
| | #define PARAM_ENUM_EXCEPT(_param) \ |
| | throw Base::ValueError("invalid value for enum " PARAM_FNAME_STR(_param)) |
| |
|
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ENUM_CONVERT(_src, _dst, _default, _seq) \ |
| | BOOST_PP_SEQ_FOR_EACH(PARAM_ENUM_CONVERT_, (_src, _dst, _default), _seq) |
| |
|
| |
|
| | #define PARAM_ENUM_CHECK_short(...) |
| | #define PARAM_ENUM_CHECK_long(...) |
| | #define PARAM_ENUM_CHECK_double(...) |
| | #define PARAM_ENUM_CHECK_bool(...) |
| | #define PARAM_ENUM_CHECK_enum PARAM_ENUM_CHECK_SINGLE |
| | #define PARAM_ENUM_CHECK_enum2 PARAM_ENUM_CHECK_SINGLE |
| |
|
| | #define PARAM_ENUM_CHECK_enum_(_1, _name, _i, _elem) \ |
| | case BOOST_PP_CAT(_name, _elem): \ |
| | break; |
| |
|
| | #define PARAM_ENUM_CHECK_(_1, _args, _param) \ |
| | PARAM_TYPED(PARAM_ENUM_CHECK_, _param) \ |
| | (BOOST_PP_TUPLE_ELEM(0, _args), BOOST_PP_TUPLE_ELEM(1, _args), _param) |
| |
|
| | #define PARAM_ENUM_CHECK_SINGLE(_src, _default, _param) \ |
| | switch (_src(_param)) { \ |
| | BOOST_PP_SEQ_FOR_EACH_I(PARAM_ENUM_CHECK_enum_, PARAM_FNAME(_param), PARAM_FSEQ(_param)) \ |
| | default: \ |
| | _default(_param); \ |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ENUM_CHECK(_src, _default, _seq) \ |
| | BOOST_PP_SEQ_FOR_EACH(PARAM_ENUM_CHECK_, (_src, _default), _seq) |
| |
|
| |
|
| | #define PARAM_ENUM_STRING_DECLARE_short(...) |
| | #define PARAM_ENUM_STRING_DECLARE_long(...) |
| | #define PARAM_ENUM_STRING_DECLARE_double(...) |
| | #define PARAM_ENUM_STRING_DECLARE_bool(...) |
| | #define PARAM_ENUM_STRING_DECLARE_enum2 PARAM_ENUM_STRING_DECLARE_enum |
| |
|
| | |
| | #define PARAM_ENUM_STRING_DECLARE_enum(_prefix, _param) \ |
| | BOOST_PP_CAT(_prefix, PARAM_FNAME(_param))[] = {PARAM_FSEQ_STR(_param), NULL}; |
| |
|
| | |
| | #define PARAM_ENUM_STRING_DECLARE_(_1, _prefix, _param) \ |
| | PARAM_TYPED(PARAM_ENUM_STRING_DECLARE_, _param)(_prefix, _param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ENUM_STRING_DECLARE(_prefix, _seq) \ |
| | BOOST_PP_SEQ_FOR_EACH(PARAM_ENUM_STRING_DECLARE_, _prefix, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_INIT_(_, _src, _i, _param) BOOST_PP_COMMA_IF(_i) _src(_param)(PARAM_FDEF(_param)) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_INIT(_src, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_INIT_, _src, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_OP_(_, _args, _param) \ |
| | BOOST_PP_TUPLE_ELEM(0, _args) \ |
| | (_param) BOOST_PP_TUPLE_ELEM(1, _args) BOOST_PP_TUPLE_ELEM(2, _args)(_param); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_OP(_src, _op, _dst, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_COPY_, (_src, _op, _dst), _seq) |
| |
|
| |
|
| | |
| | #define PARAM_ARGS_DEF_(_, _src, _i, _param) \ |
| | BOOST_PP_COMMA_IF(_i) PARAM_TYPE(_param) _src(_param) = PARAM_FDEF(_param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ARGS_DEF(_src, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_ARGS_DEF_, _src, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_ARGS_(_, _src, _i, _param) BOOST_PP_COMMA_IF(_i) PARAM_TYPE(_param) _src(_param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_ARGS(_src, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_ARGS_, _src, _seq) |
| |
|
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | #define PARAM_PY_DOC_enum_(_i, _elem) BOOST_PP_IF(_i, ",", " ") #_i "=" #_elem |
| |
|
| | |
| | #define PARAM_PY_DOC_enum(_field, _param) \ |
| | "\n* " PARAM_FIELD_STR(_field, _param) "(" PARAM_FDEF_STR( \ |
| | _param \ |
| | ) "):" PARAM_FOREACH_I(PARAM_PY_DOC_enum_, PARAM_FSEQ(_param)) ". " PARAM_FDOC(_param) "\n" |
| |
|
| | |
| | #define PARAM_PY_DOC_short(_field, _param) \ |
| | "\n* " PARAM_FIELD_STR(_field, _param) "(" PARAM_FDEF_STR(_param) "): " PARAM_FDOC(_param) "\n" |
| | #define PARAM_PY_DOC_long PARAM_PY_DOC_short |
| | #define PARAM_PY_DOC_double PARAM_PY_DOC_short |
| | #define PARAM_PY_DOC_bool PARAM_PY_DOC_short |
| | #define PARAM_PY_DOC_enum2 PARAM_PY_DOC_enum |
| |
|
| | #define PARAM_PY_DOC_(_, _field, _param) PARAM_TYPED(PARAM_PY_DOC_, _param)(_field, _param) |
| |
|
| | |
| | |
| | |
| | #define PARAM_PY_DOC(_field, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_PY_DOC_, _field, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_PY_ARGS_DOC_(_, _field, _i, _param) \ |
| | BOOST_PP_IF(_i, ", ", " ") PARAM_FIELD_STR(_field, _param) "=" PARAM_FDEF_STR(_param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_PY_ARGS_DOC(_field, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_PY_ARGS_DOC_, _field, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_FIELDS_(_1, _src, _i, _param) BOOST_PP_COMMA_IF(_i) _src(_param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_FIELDS(_src, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_FIELDS_, _src, _seq) |
| |
|
| |
|
| | #define PARAM_PY_CAST_short(_v) (_v) |
| | #define PARAM_PY_CAST_long(_v) (_v) |
| | #define PARAM_PY_CAST_double(_v) (_v) |
| | #define PARAM_PY_CAST_bool(_v) ((_v) ? Py_True : Py_False) |
| | #define PARAM_PY_CAST_enum(_v) (_v) |
| | #define PARAM_PY_CAST_enum2(_v) (_v) |
| |
|
| | #define PARAM_CAST_PY_short(_v) (_v) |
| | #define PARAM_CAST_PY_long(_v) (_v) |
| | #define PARAM_CAST_PY_double(_v) (_v) |
| | #define PARAM_CAST_PY_bool(_v) (PyObject_IsTrue(_v) ? true : false) |
| | #define PARAM_CAST_PY_enum(_v) (_v) |
| | #define PARAM_CAST_PY_enum2(_v) (_v) |
| |
|
| |
|
| | |
| | #define PARAM_PY_FIELDS_(_1, _src, _i, _param) \ |
| | BOOST_PP_COMMA_IF(_i) PARAM_TYPED(PARAM_CAST_PY_, _param)(_src(_param)) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_PY_FIELDS(_src, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_PY_FIELDS_, _src, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_FIELD_STRINGS_(_1, _field, _i, _param) \ |
| | BOOST_PP_COMMA_IF(_i) PARAM_FIELD_STR(_field, _param) |
| |
|
| | |
| | |
| | |
| | #define PARAM_FIELD_STRINGS(_field, _seq) \ |
| | BOOST_PP_SEQ_FOR_EACH_I(PARAM_FIELD_STRINGS_, _field, _seq) |
| |
|
| |
|
| | #define PARAM_PYARG_short "h" |
| | #define PARAM_PYARG_long "l" |
| | #define PARAM_PYARG_double "d" |
| | #define PARAM_PYARG_bool "O" |
| | #define PARAM_PYARG_enum "h" |
| | #define PARAM_PYARG_enum2 "h" |
| |
|
| | |
| | #define PARAM_PY_KWDS_(_param) PARAM_TYPED(PARAM_PYARG_, _param) |
| |
|
| | |
| | |
| | |
| | #define PARAM_PY_KWDS(_seq) PARAM_FOREACH(PARAM_PY_KWDS_, _seq) |
| |
|
| | #define PARAM_PY_TYPE_short short |
| | #define PARAM_PY_TYPE_long long |
| | #define PARAM_PY_TYPE_double double |
| | #define PARAM_PY_TYPE_bool PyObject* |
| | #define PARAM_PY_TYPE_enum short |
| | #define PARAM_PY_TYPE_enum2 short |
| |
|
| | |
| | #define PARAM_PY_DECLARE_(_1, _src, _param) PARAM_TYPED(PARAM_PY_TYPE_, _param) _src(_param); |
| |
|
| | |
| | |
| | |
| | #define PARAM_PY_DECLARE(_src, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_PY_DECLARE_, _src, _seq) |
| |
|
| | #define PARAM_PY_INIT_short(_v) _v |
| | #define PARAM_PY_INIT_long(_v) _v |
| | #define PARAM_PY_INIT_double(_v) _v |
| | #define PARAM_PY_INIT_bool(_v) ((_v) ? Py_True : Py_False) |
| | #define PARAM_PY_INIT_enum(_v) _v |
| | #define PARAM_PY_INIT_enum2(_v) _v |
| |
|
| | |
| | #define PARAM_PY_DECLARE_INIT_(_1, _src, _param) \ |
| | PARAM_TYPED(PARAM_PY_TYPE_, _param) \ |
| | _src(_param) = PARAM_TYPED(PARAM_PY_INIT_, _param)(PARAM_FDEF(_param)); |
| |
|
| | |
| | |
| | |
| | #define PARAM_PY_DECLARE_INIT(_src, _seq) BOOST_PP_SEQ_FOR_EACH(PARAM_PY_DECLARE_INIT_, _src, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_REF_(_1, _src, _i, _param) BOOST_PP_COMMA_IF(_i) & _src(_param) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_REF(_src, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_REF_, _src, _seq) |
| |
|
| | #define PARAM_CAST_PYOBJ_short(_v) PyLong_FromLong(_v) |
| | #define PARAM_CAST_PYOBJ_long(_v) PyLong_FromLong(_v) |
| |
|
| | #define PARAM_CAST_PYOBJ_double(_v) PyFloat_FromDouble(_v) |
| | #define PARAM_CAST_PYOBJ_bool(_v) ((_v) ? Py_True : Py_False) |
| | #define PARAM_CAST_PYOBJ_enum PARAM_CAST_PYOBJ_short |
| | #define PARAM_CAST_PYOBJ_enum2 PARAM_CAST_PYOBJ_short |
| |
|
| |
|
| | |
| | |
| | |
| | #define PARAM_PY_STR(_field, _param) PyUnicode_FromString(PARAM_FIELD_STR(_field, _param)) |
| |
|
| | |
| | #define PARAM_PY_DICT_SET_VALUE_(_1, _args, _param) \ |
| | PyDict_SetItem( \ |
| | BOOST_PP_TUPLE_ELEM(0, _args), \ |
| | PARAM_PY_STR(BOOST_PP_TUPLE_ELEM(1, _args), _param), \ |
| | PARAM_TYPED(PARAM_CAST_PYOBJ_, _param)(BOOST_PP_TUPLE_ELEM(2, _args)(_param)) \ |
| | ); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_PY_DICT_SET_VALUE(_dict, _field, _src, _seq) \ |
| | BOOST_PP_SEQ_FOR_EACH(PARAM_PY_DICT_SET_VALUE_, (_dict, _field, _src), _seq) |
| |
|
| |
|
| | #define PARAM_PY_DICT_DOC_enum_(_i, _elem) BOOST_PP_IF(_i, ",", " ") #_i "=" #_elem |
| |
|
| | |
| | #define PARAM_PY_DICT_DOC_enum(_param) \ |
| | "(" PARAM_FDEF_STR( \ |
| | _param \ |
| | ) ") - " PARAM_FOREACH_I(PARAM_PY_DOC_enum_, PARAM_FSEQ(_param)) ".\n" PARAM_FDOC(_param) "\n" |
| |
|
| | |
| | #define PARAM_PY_DICT_DOC_(_param) "(" PARAM_FDEF_STR(_param) ") - " PARAM_FDOC(_param) "\n" |
| |
|
| |
|
| | #define PARAM_PY_DICT_DOC_short PARAM_PY_DICT_DOC_ |
| | #define PARAM_PY_DICT_DOC_long PARAM_PY_DICT_DOC_ |
| | #define PARAM_PY_DICT_DOC_double PARAM_PY_DICT_DOC_ |
| | #define PARAM_PY_DICT_DOC_bool PARAM_PY_DICT_DOC_ |
| | #define PARAM_PY_DICT_DOC_enum2 PARAM_PY_DICT_DOC_enum |
| |
|
| | |
| | #define PARAM_PY_DICT_SET_DOC_(_1, _args, _param) \ |
| | PyDict_SetItem( \ |
| | BOOST_PP_TUPLE_ELEM(0, _args), \ |
| | PARAM_PY_STR(BOOST_PP_TUPLE_ELEM(1, _args), _param), \ |
| | PyUnicode_FromString(PARAM_TYPED(PARAM_PY_DICT_DOC_, _param)(_param)) \ |
| | ); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_PY_DICT_SET_DOC(_dict, _field, _seq) \ |
| | BOOST_PP_SEQ_FOR_EACH(PARAM_PY_DICT_SET_DOC_, (_dict, _field), _seq) |
| |
|
| |
|
| | |
| | |
| | |
| | |
| | #define PARAM_PROP_bool(_param) App::PropertyBool PARAM_FNAME(_param) |
| | #define PARAM_PROP_double(_param) PARAM_FPROP(_param) PARAM_FNAME(_param) |
| | #define PARAM_PROP_short(_param) App::PropertyInteger PARAM_FNAME(_param) |
| | #define PARAM_PROP_long(_param) App::PropertyInteger PARAM_FNAME(_param) |
| | #define PARAM_PROP_enum(_param) App::PropertyEnumeration PARAM_FNAME(_param) |
| | #define PARAM_PROP_enum2(_param) App::PropertyEnumeration PARAM_FNAME(_param) |
| | |
| |
|
| | |
| | #define PARAM_PROP_DECLARE_(_param) PARAM_TYPED(PARAM_PROP_, _param)(_param); |
| |
|
| | |
| | |
| | |
| | #define PARAM_PROP_DECLARE(_seq) PARAM_FOREACH(PARAM_PROP_DECLARE_, _seq) |
| |
|
| | |
| | #define PARAM_ADD_PROPERTY_TYPE(_prop_, _defaultval_, _group_, _type_, _Docu_) \ |
| | do { \ |
| | this->_prop_.setValue _defaultval_; \ |
| | this->_prop_.setContainer(this); \ |
| | propertyData.addProperty( \ |
| | static_cast<App::PropertyContainer*>(this), \ |
| | BOOST_PP_STRINGIZE(_prop_), &this->_prop_, (_group_), (_type_), (_Docu_) \ |
| | ); \ |
| | } while (0) |
| |
|
| | |
| | #define PARAM_PROP_ADD_(_group, _param) \ |
| | PARAM_ADD_PROPERTY_TYPE( \ |
| | PARAM_FNAME(_param), \ |
| | (PARAM_FDEF(_param)), \ |
| | _group, \ |
| | App::Prop_None, \ |
| | PARAM_FDOC(_param) \ |
| | ); |
| |
|
| | #define PARAM_PROP_ADD_short PARAM_PROP_ADD_ |
| | #define PARAM_PROP_ADD_long PARAM_PROP_ADD_ |
| | #define PARAM_PROP_ADD_double PARAM_PROP_ADD_ |
| | #define PARAM_PROP_ADD_bool PARAM_PROP_ADD_ |
| | #define PARAM_PROP_ADD_enum2 PARAM_PROP_ADD_enum |
| |
|
| | |
| | #define PARAM_PROP_ADD_enum(_group, _param) \ |
| | PARAM_ADD_PROPERTY_TYPE( \ |
| | PARAM_FNAME(_param), \ |
| | ((long)PARAM_FDEF(_param)), \ |
| | _group, \ |
| | App::Prop_None, \ |
| | PARAM_FDOC(_param) \ |
| | ); |
| |
|
| | |
| | #define PARAM_PROP_ADD_TYPED(_1, _group, _i, _param) \ |
| | PARAM_TYPED(PARAM_PROP_ADD_, _param)(_group, _param) |
| |
|
| | |
| | |
| | |
| | #define PARAM_PROP_ADD(_group, _seq) BOOST_PP_SEQ_FOR_EACH_I(PARAM_PROP_ADD_TYPED, _group, _seq) |
| |
|
| | #define PARAM_PROP_SET_ENUM_short(...) |
| | #define PARAM_PROP_SET_ENUM_long(...) |
| | #define PARAM_PROP_SET_ENUM_bool(...) |
| | #define PARAM_PROP_SET_ENUM_double(...) |
| | #define PARAM_PROP_SET_ENUM_enum2 PARAM_PROP_SET_ENUM_enum |
| |
|
| | |
| | #define PARAM_PROP_SET_ENUM_enum(_prefix, _param) \ |
| | PARAM_FNAME(_param).setEnums(BOOST_PP_CAT(_prefix, PARAM_FNAME(_param))); |
| |
|
| | |
| | #define PARAM_PROP_SET_ENUM_TYPED(_1, _prefix, _param) \ |
| | PARAM_TYPED(PARAM_PROP_SET_ENUM_, _param)(_prefix, _param) |
| |
|
| | |
| | |
| | |
| | #define PARAM_PROP_SET_ENUM(_prefix, _seq) \ |
| | BOOST_PP_SEQ_FOR_EACH(PARAM_PROP_SET_ENUM_TYPED, _prefix, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_PROP_ARGS_(_i, _param) BOOST_PP_COMMA_IF(_i) PARAM_FNAME(_param).getValue() |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_PROP_ARGS(_seq) PARAM_FOREACH_I(PARAM_PROP_ARGS_, _seq) |
| |
|
| |
|
| | |
| | #define PARAM_PROP_TOUCHED_(_param) \ |
| | if (PARAM_FNAME(_param).isTouched()) \ |
| | return 1; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #define PARAM_PROP_TOUCHED(_seq) PARAM_FOREACH(PARAM_PROP_TOUCHED_, _seq) |
| |
|
| | #endif |
| |
|