diff options
Diffstat (limited to 'include/namespace.h')
-rw-r--r-- | include/namespace.h | 69 |
1 files changed, 34 insertions, 35 deletions
diff --git a/include/namespace.h b/include/namespace.h index 4bb23db..bdfb8c6 100644 --- a/include/namespace.h +++ b/include/namespace.h @@ -1,9 +1,9 @@ /** * Namespace.h - * + * * Class that can be used to group various functions and classes into one * namespace. - * + * * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com> * @copyright 2014 Copernica BV */ @@ -21,7 +21,7 @@ class NativeFunction; /** * Class definition */ -class Namespace +class PHPCPP_EXPORT Namespace { protected: /** @@ -41,13 +41,13 @@ protected: * @var list */ std::list<std::shared_ptr<ClassBase>> _classes; - + /** * Constants defined in the namespace * @var list */ std::list<std::shared_ptr<Constant>> _constants; - + /** * Namespaces defined inside the namespace * @var list @@ -56,19 +56,19 @@ protected: /** * Is the object locked? - * + * * After the object is locked, no more elements can be added to it. * This happens after the call to get_module - it the no longer makes * sense to add more objects. When 'apache reload' is executed, the * get_module() function is called for a second (or third, or fourth) * time, but the classes, functions and namespaces will then not be * filled. - * + * * @var bool */ virtual bool locked() const { - // by default, namespaces are not locked (only derived extension + // by default, namespaces are not locked (only derived extension // objects can end up in a locked state return false; } @@ -80,12 +80,12 @@ public: * @param name Name of the namespace */ Namespace(const char *name) : _name(name) {} - + /** * Destructor */ virtual ~Namespace() {} - + /** * Add a native function directly to the namespace * @param name Name of the function @@ -97,7 +97,7 @@ public: Namespace &add(const char *name, const native_callback_1 &function, const Arguments &arguments = {}); Namespace &add(const char *name, const native_callback_2 &function, const Arguments &arguments = {}); Namespace &add(const char *name, const native_callback_3 &function, const Arguments &arguments = {}); - + /** * Add a native class to the namespace by moving it * @param type The class implementation @@ -108,10 +108,10 @@ public: { // skip when locked if (locked()) return *this; - + // make a copy of the object, and add it to the list of classes _classes.push_back(std::unique_ptr<ClassBase>(new Class<T>(std::move(type)))); - + // allow chaining return *this; } @@ -129,7 +129,7 @@ public: // and add it to the list of classes _classes.push_back(std::unique_ptr<ClassBase>(new Class<T>(type))); - + // allow chaining return *this; } @@ -146,7 +146,7 @@ public: // make a copy and add it to the list of classes _classes.push_back(std::unique_ptr<ClassBase>(new Interface(std::move(interface)))); - + // allow chaining return *this; } @@ -163,11 +163,11 @@ public: // make a copy and add it to the list of classes _classes.push_back(std::unique_ptr<ClassBase>(new Interface(interface))); - + // allow chaining return *this; } - + /** * Add a constant to the namespace * @param constant The constant to add @@ -180,11 +180,11 @@ public: // and add it to the list of constants _constants.push_back(std::unique_ptr<Constant>(new Constant(std::move(constant)))); - + // allow chaining return *this; } - + /** * Add a constant to the namespace * @param constant The constant to add @@ -197,11 +197,11 @@ public: // and add it to the list of constants _constants.push_back(std::unique_ptr<Constant>(new Constant(constant))); - + // allow chaining return *this; } - + /** * Add a namespace to the namespace by moving it * @param ns The namespace @@ -214,7 +214,7 @@ public: // add it to the list of namespaces _namespaces.push_back(std::unique_ptr<Namespace>(new Namespace(std::move(ns)))); - + // allow chaining return *this; } @@ -231,7 +231,7 @@ public: // make a copy and add it to the list of namespaces _namespaces.push_back(std::unique_ptr<Namespace>(new Namespace(ns))); - + // allow chaining return *this; } @@ -244,48 +244,47 @@ public: { // number of functions in this namespace int result = _functions.size(); - + // number of functions in sub-namespace for (auto &ns : _namespaces) result += ns->functions(); - + // done return result; } /** * Apply a callback to each registered function - * + * * The callback will be called with the name of the namespace, and * a reference to the registered function. - * + * * @param callback */ void functions(const std::function<void(const std::string &ns, NativeFunction &func)> &callback); - + /** * Apply a callback to each registered class - * + * * The callback will be called with the name of the namespace, and * a reference to the registered class. - * + * * @param callback */ void classes(const std::function<void(const std::string &ns, ClassBase &clss)> &callback); - + /** * Apply a callback to each registered constant - * + * * The callback will be called with the name of the namespace, and * a reference to the registered constant - * + * * @param callback */ void constants(const std::function<void(const std::string &ns, Constant &constant)> &callback); }; - + /** * End namespace */ } - |