diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-04-06 21:53:24 +0200 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-04-06 21:53:24 +0200 |
commit | 35fd3ccbeb4def71b4d8a59dfbb5c31201b099b9 (patch) | |
tree | 915223360aed4743aa6127fde4836aa413a260e5 /zend/nullmember.h | |
parent | da4710512865e6816585ac4ab8edab2fa125e2d8 (diff) |
renamed src directory to zend directory, disabled TSRM debug code
Diffstat (limited to 'zend/nullmember.h')
-rw-r--r-- | zend/nullmember.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/zend/nullmember.h b/zend/nullmember.h new file mode 100644 index 0000000..e035897 --- /dev/null +++ b/zend/nullmember.h @@ -0,0 +1,59 @@ +/** + * NullMember.h + * + * Implementation for a property that is initially set to NULL + * + * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com> + * @copyright 2013 Copernica BV + */ + +/** + * Set up namespace + */ +namespace Php { + +/** + * Class definition + */ +class NullMember : public Member +{ +public: + /** + * Constructor + * @param name + * @param flags + */ + NullMember(const char *name, int flags) : Member(name, flags) {} + + /** + * Destructor + */ + virtual ~NullMember() {} + + /** + * Internal method to declare the property as constant + * @param zend_class_entry + * @param tsrm_ls + */ + virtual void constant(struct _zend_class_entry *entry TSRMLS_DC) override + { + zend_declare_class_constant_null(entry, _name.c_str(), _name.size() 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_null(entry, (char *)_name.c_str(), _name.size(), _flags TSRMLS_CC); + } +}; + +/** + * End of namespace + */ +} + |