diff options
Diffstat (limited to 'include/extension.h')
-rw-r--r-- | include/extension.h | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/include/extension.h b/include/extension.h index 15ad5e1..caa3d33 100644 --- a/include/extension.h +++ b/include/extension.h @@ -6,11 +6,11 @@ * apache process starts - and will be used for all subsequent requests that * are handled by Apache. * - * For some environments (for example CLI scripts and CGI calls) only one + * For some environments (for example CLI scripts and CGI calls) only one * request is handled by an extension instance, but for others (when PHP runs * as module in a webserver) many requests are handled by the same extension * instance. - * + * * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com> * @copyright 2013, 2014 Copernica BV */ @@ -33,7 +33,7 @@ using Callback = std::function<void()>; /** * Class definition */ -class Extension : public Namespace +class PHPCPP_EXPORT Extension : public Namespace { public: /** @@ -51,68 +51,68 @@ public: * @param apiversion PHP API version (this should always be PHPCPP_API_VERSION, so you better not supply it) */ Extension(const char *name, const char *version = "1.0", int apiversion = PHPCPP_API_VERSION); - + /** * No copy'ing and no moving */ Extension(const Extension &extension) = delete; Extension(Extension &&extension) = delete; - + /** * Destructor */ virtual ~Extension(); - + /** * Register a function to be called when the PHP engine is ready - * - * The callback will be called after all extensions are loaded, and all + * + * The callback will be called after all extensions are loaded, and all * functions and classes are available, but before the first pageview/request * is handled. You can register this callback if you want to be notified * when the engine is ready, for example to initialize certain things. - * + * * @param callback Function to be called * @return Extension Same object to allow chaining */ Extension &onStartup(const Callback &callback); - + /** * Register a function to be called when the PHP engine is going to stop - * + * * The callback will be called right before the process is going to stop. * You can register a function if you want to clean up certain things. - * + * * @param callback Function to be called * @return Extension Same object to allow chaining */ Extension &onShutdown(const Callback &callback); - + /** * Register a callback that is called at the beginning of each pageview/request - * + * * You can register a callback if you want to initialize certain things * at the beginning of each request. Remember that the extension can handle * multiple requests after each other, and you may want to set back certain * global variables to their initial variables in front of each request - * + * * @param callback Function to be called * @return Extension Same object to allow chaining */ Extension &onRequest(const Callback &callback); - + /** * Register a callback that is called to cleanup things after a pageview/request - * + * * The callback will be called after _each_ request, so that you can clean up * certain things and make your extension ready to handle the next request. * This method is called onIdle because the extension is idle in between * requests. - * + * * @param callback Function to be called * @return Extension Same object to allow chaining */ Extension &onIdle(const Callback &callback); - + /** * Add a ini entry to the extension by moving it * @param ini The php.ini setting @@ -122,10 +122,10 @@ public: { // skip when locked if (locked()) return *this; - + // and add it to the list of classes _ini_entries.emplace_back(new Ini(std::move(ini))); - + // allow chaining return *this; } @@ -142,11 +142,11 @@ public: // and add it to the list of classes _ini_entries.emplace_back(new Ini(ini)); - + // allow chaining return *this; } - + /** * Because the add function exists in both the Namespace base class * as well as this extended Extension class, we have to tell the compiler @@ -165,9 +165,9 @@ public: /** * Apply a callback to each php.ini variable - * + * * The callback will be called with a reference to the ini variable. - * + * * @param callback */ void iniVariables(const std::function<void(Ini &ini)> &callback) @@ -178,30 +178,30 @@ public: /** * Retrieve the module pointer - * + * * This is the memory address that should be exported by the get_module() * function. * * @return void* */ void *module(); - + /** * Cast to a module entry - * + * * @return void* */ operator void * () { return module(); } - + protected: /** * Is the extension object in a locked state? This happens after the * get_module() function was called for the first time ("apache reload" * forces a new call to get_module()) - * + * * @return bool */ virtual bool locked() const override; @@ -209,7 +209,7 @@ protected: private: /** * The implementation object - * + * * @var ExtensionImpl */ ExtensionImpl *_impl; @@ -226,5 +226,3 @@ private: * End of namespace */ } - - |