summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-06 10:59:54 +0100
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-06 10:59:54 +0100
commit5feeff6e7263d78d482b4c262ace851f370957d6 (patch)
tree6b98aa47741eee89d2a14356707993ce5c7bfa19 /src
parent1a5573246367d457fe4fd961b7faf3b308a88d0c (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.cpp52
-rw-r--r--src/method.h22
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;
};