summaryrefslogtreecommitdiff
path: root/zend/boolmember.h
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-04-06 21:53:24 +0200
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-04-06 21:53:24 +0200
commit35fd3ccbeb4def71b4d8a59dfbb5c31201b099b9 (patch)
tree915223360aed4743aa6127fde4836aa413a260e5 /zend/boolmember.h
parentda4710512865e6816585ac4ab8edab2fa125e2d8 (diff)
renamed src directory to zend directory, disabled TSRM debug code
Diffstat (limited to 'zend/boolmember.h')
-rw-r--r--zend/boolmember.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/zend/boolmember.h b/zend/boolmember.h
new file mode 100644
index 0000000..5b5d43d
--- /dev/null
+++ b/zend/boolmember.h
@@ -0,0 +1,67 @@
+/**
+ * BoolMember.h
+ *
+ * Implementation for a property that is initially set to a boolean value
+ *
+ * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com>
+ * @copyright 2013 Copernica BV
+ */
+
+/**
+ * Set up namespace
+ */
+namespace Php {
+
+/**
+ * Class definition
+ */
+class BoolMember : public Member
+{
+private:
+ /**
+ * The value
+ * @var bool
+ */
+ bool _value;
+
+public:
+ /**
+ * Constructor
+ * @param name
+ * @param value
+ * @param flags
+ */
+ BoolMember(const char *name, bool value, int flags) : Member(name, flags), _value(value) {}
+
+ /**
+ * Destructor
+ */
+ virtual ~BoolMember() {}
+
+ /**
+ * Virtual method to declare a class constant
+ * @param entry Class entry
+ * @param tsrm_ls
+ */
+ virtual void constant(struct _zend_class_entry *entry TSRMLS_DC) override
+ {
+ zend_declare_class_constant_bool(entry, _name.c_str(), _name.size(), _value TSRMLS_CC);
+ }
+
+ /**
+ * Virtual method to declare the property
+ * @param entry Class entry
+ * @param tsrm_ls
+ */
+ virtual void declare(struct _zend_class_entry *entry TSRMLS_DC) override
+ {
+ // char* cast is necessary for php 5.3
+ zend_declare_property_bool(entry, (char *)_name.c_str(), _name.size(), _value, _flags TSRMLS_CC);
+ }
+};
+
+/**
+ * End of namespace
+ */
+}
+