diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-03-06 10:59:54 +0100 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-03-06 10:59:54 +0100 |
commit | 5feeff6e7263d78d482b4c262ace851f370957d6 (patch) | |
tree | 6b98aa47741eee89d2a14356707993ce5c7bfa19 /src | |
parent | 1a5573246367d457fe4fd961b7faf3b308a88d0c (diff) |
changes to documentation, added support for const methods so that they can also be exported
Diffstat (limited to 'src')
-rw-r--r-- | src/classbase.cpp | 52 | ||||
-rw-r--r-- | src/method.h | 22 |
2 files changed, 69 insertions, 5 deletions
diff --git a/src/classbase.cpp b/src/classbase.cpp index e813617..19ac6bc 100644 --- a/src/classbase.cpp +++ b/src/classbase.cpp @@ -307,6 +307,58 @@ void ClassBase::method(const char *name, method_callback_3 callback, int flags, } /** + * Add a method to the class + * @param name Name of the method + * @param method The actual method + * @param flags Optional flags + * @param args Description of the supported arguments + */ +void ClassBase::method(const char *name, method_callback_4 callback, int flags, const Arguments &args) +{ + // add the method + _methods.push_back(std::make_shared<Method>(name, callback, flags, args)); +} + +/** + * Add a method to the class + * @param name Name of the method + * @param method The actual method + * @param flags Optional flags + * @param args Description of the supported arguments + */ +void ClassBase::method(const char *name, method_callback_5 callback, int flags, const Arguments &args) +{ + // add the method + _methods.push_back(std::make_shared<Method>(name, callback, flags, args)); +} + +/** + * Add a method to the class + * @param name Name of the method + * @param method The actual method + * @param flags Optional flags + * @param args Description of the supported arguments + */ +void ClassBase::method(const char *name, method_callback_6 callback, int flags, const Arguments &args) +{ + // add the method + _methods.push_back(std::make_shared<Method>(name, callback, flags, args)); +} + +/** + * Add a method to the class + * @param name Name of the method + * @param method The actual method + * @param flags Optional flags + * @param args Description of the supported arguments + */ +void ClassBase::method(const char *name, method_callback_7 callback, int flags, const Arguments &args) +{ + // add the method + _methods.push_back(std::make_shared<Method>(name, callback, flags, args)); +} + +/** * Add an abstract method to the class * @param name Name of the method * @param flags Optional flags (like public or protected) diff --git a/src/method.h b/src/method.h index f583fc8..f305d42 100644 --- a/src/method.h +++ b/src/method.h @@ -27,11 +27,15 @@ public: * @param flags Access flags * @param args Argument description */ - Method(const char *name, method_callback_0 callback, int flags, const Arguments &args) : Callable(name, args), _type(0), _flags(flags) { _callback.m0 = callback; } - Method(const char *name, method_callback_1 callback, int flags, const Arguments &args) : Callable(name, args), _type(1), _flags(flags) { _callback.m1 = callback; } - Method(const char *name, method_callback_2 callback, int flags, const Arguments &args) : Callable(name, args), _type(2), _flags(flags) { _callback.m2 = callback; } - Method(const char *name, method_callback_3 callback, int flags, const Arguments &args) : Callable(name, args), _type(3), _flags(flags) { _callback.m3 = callback; } - Method(const char *name, int flags, const Arguments &args) : Callable(name, args), _type(4), _flags(flags) { _callback.m0 = nullptr; } + Method(const char *name, method_callback_0 callback, int flags, const Arguments &args) : Callable(name, args), _type(0), _flags(flags) { _callback.m0 = callback; } + Method(const char *name, method_callback_1 callback, int flags, const Arguments &args) : Callable(name, args), _type(1), _flags(flags) { _callback.m1 = callback; } + Method(const char *name, method_callback_2 callback, int flags, const Arguments &args) : Callable(name, args), _type(2), _flags(flags) { _callback.m2 = callback; } + Method(const char *name, method_callback_3 callback, int flags, const Arguments &args) : Callable(name, args), _type(3), _flags(flags) { _callback.m3 = callback; } + Method(const char *name, method_callback_4 callback, int flags, const Arguments &args) : Callable(name, args), _type(4), _flags(flags) { _callback.m4 = callback; } + Method(const char *name, method_callback_5 callback, int flags, const Arguments &args) : Callable(name, args), _type(5), _flags(flags) { _callback.m5 = callback; } + Method(const char *name, method_callback_6 callback, int flags, const Arguments &args) : Callable(name, args), _type(6), _flags(flags) { _callback.m6 = callback; } + Method(const char *name, method_callback_7 callback, int flags, const Arguments &args) : Callable(name, args), _type(7), _flags(flags) { _callback.m7 = callback; } + Method(const char *name, int flags, const Arguments &args) : Callable(name, args), _type(9999), _flags(flags) { _callback.m0 = nullptr; } /** * Copy and move constructors @@ -78,6 +82,10 @@ public: case 1: (base->*_callback.m1)(parameters); return Value(); case 2: return (base->*_callback.m2)(); case 3: return (base->*_callback.m3)(parameters); + case 4: (base->*_callback.m4)(); return Value(); + case 5: (base->*_callback.m5)(parameters); return Value(); + case 6: return (base->*_callback.m6)(); + case 7: return (base->*_callback.m7)(parameters); default: return Value(); } } @@ -105,6 +113,10 @@ private: method_callback_1 m1; method_callback_2 m2; method_callback_3 m3; + method_callback_4 m4; + method_callback_5 m5; + method_callback_6 m6; + method_callback_7 m7; } _callback; }; |