summaryrefslogtreecommitdiff
path: root/include/object.h
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-03 18:03:39 +0100
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-03 18:03:39 +0100
commit70986b4bcdf7793c4bb8a4e14d91e6531c95f651 (patch)
tree3009209b9fbcb3d51bc117061a766341c8a71a24 /include/object.h
parent8f24af4c28e74ef1769aef6ab00c480e09be7453 (diff)
work in progress for support for creating object instances
Diffstat (limited to 'include/object.h')
-rw-r--r--include/object.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/include/object.h b/include/object.h
new file mode 100644
index 0000000..f104478
--- /dev/null
+++ b/include/object.h
@@ -0,0 +1,63 @@
+/**
+ * Object.h
+ *
+ * Extended Value that can be used to instantiate new objects, and to turn
+ * Php::Base objects into regular Php::Value instances
+ *
+ * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com>
+ * @copyright 2014 Copernica BV
+ */
+
+/**
+ * Set up namespace
+ */
+namespace Php {
+
+/**
+ * Class definition
+ */
+class Object : public ForcedValue<Type::Object>
+{
+public:
+ /**
+ * Constructor for an empty stdClass object
+ *
+ * @todo check if this indeed leads to a stdClass instance
+ */
+ Object() : ForcedValue<Type::Object>() {}
+
+ /**
+ * @todo copy constructor, move constructor
+ */
+
+ /**
+ * Constructor to create a new instance
+ *
+ * This constructor comes in many different forms, to support all possible
+ * number of parameters that are passed to the constructor
+ *
+ * @param name Name of the class to instantiate
+ * @param arg0 Optional argument 1
+ * @param arg1 Optional argument 2
+ * @param arg2 Optional argument 3
+ * @param arg3 Optional argument 4
+ * @param arg4 Optional argument 5
+ * @param arg5 Optional argument 6
+ * @param arg6 Optional argument 7
+ * @param arg7 Optional argument 8
+ * @param arg8 Optional argument 9
+ * @param arg9 Optional argument 10
+ */
+ Object(const char *name);
+
+ /**
+ * Destructor
+ */
+ virtual ~Object() {}
+
+};
+
+/**
+ * End namespace
+ */
+}