summaryrefslogtreecommitdiff
path: root/hhvm/extension.cpp
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-04-06 22:51:12 +0200
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-04-06 22:51:12 +0200
commit43cfaa8a4730ea1fa7d9c01f58ddcf6f42b4fb46 (patch)
tree19a42d30fb2d416f2c10fea158eef2f35203611e /hhvm/extension.cpp
parent35fd3ccbeb4def71b4d8a59dfbb5c31201b099b9 (diff)
introduced common directory that will contain implementation files that are used for hhvm and zend, and introduced hhvm file for the implementation of hhvmcpp
Diffstat (limited to 'hhvm/extension.cpp')
-rw-r--r--hhvm/extension.cpp103
1 files changed, 103 insertions, 0 deletions
diff --git a/hhvm/extension.cpp b/hhvm/extension.cpp
new file mode 100644
index 0000000..9685b32
--- /dev/null
+++ b/hhvm/extension.cpp
@@ -0,0 +1,103 @@
+/**
+ * Extension.cpp
+ *
+ * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com>
+ * @copyright 2013, 2014 Copernica BV
+ */
+#include "includes.h"
+
+/**
+ * Set up namespace
+ */
+namespace Php {
+
+/**
+ * Constructor that defines a number of functions right away
+ * @param name Extension name
+ * @param version Extension version string
+ */
+Extension::Extension(const char *name, const char *version) :
+ Namespace(""), _impl(new ExtensionImpl(this, name, version)) {}
+
+/**
+ * Destructor
+ */
+Extension::~Extension()
+{
+ // get rid of the implementation object
+ delete _impl;
+}
+
+/**
+ * Register a function to be called when the PHP engine is ready
+ * @param callback
+ * @return Extension
+ */
+Extension &Extension::onStartup(const Callback &callback)
+{
+ // pass on to the implementation
+ _impl->onStartup(callback);
+
+ // allow chaining
+ return *this;
+}
+
+/**
+ * Register a function to be called when the PHP engine is going to stop
+ * @param callback
+ * @return Extension
+ */
+Extension &Extension::onShutdown(const Callback &callback)
+{
+ // pass on to the implementation
+ _impl->onShutdown(callback);
+
+ // allow chaining
+ return *this;
+}
+
+/**
+ * Register a callback that is called at the beginning of each pageview/request
+ * @param callback
+ */
+Extension &Extension::onRequest(const Callback &callback)
+{
+ // pass on to the implementation
+ _impl->onRequest(callback);
+
+ // allow chaining
+ return *this;
+}
+
+/**
+ * Register a callback that is called to cleanup things after a pageview/request
+ * @param callback
+ */
+Extension &Extension::onIdle(const Callback &callback)
+{
+ // pass on to the implementation
+ _impl->onIdle(callback);
+
+ // allow chaining
+ return *this;
+}
+
+/**
+ * Retrieve the module pointer
+ *
+ * This is the memory address that should be exported by the get_module()
+ * function.
+ *
+ * @return void*
+ */
+void *Extension::module()
+{
+ // pass on to the implementation
+ return _impl->module();
+}
+
+/**
+ * End of namespace
+ */
+}
+