diff options
Diffstat (limited to 'zend/floatmember.h')
-rw-r--r-- | zend/floatmember.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/zend/floatmember.h b/zend/floatmember.h new file mode 100644 index 0000000..9b5d4f2 --- /dev/null +++ b/zend/floatmember.h @@ -0,0 +1,67 @@ +/** + * FloatMember.h + * + * Implementation for a property that is initially set to a boolean value + * + * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com> + * @copyright 2013, 2014 Copernica BV + */ + +/** + * Set up namespace + */ +namespace Php { + +/** + * Class definition + */ +class FloatMember : public Member +{ +private: + /** + * The value + * @var double + */ + double _value; + +public: + /** + * Constructor + * @param name + * @param value + * @param flags + */ + FloatMember(const char *name, double value, int flags) : Member(name, flags), _value(value) {} + + /** + * Destructor + */ + virtual ~FloatMember() {} + + /** + * Virtual method to declare class constant + * @param entry Class entry + * @param tsrm_ls + */ + virtual void constant(struct _zend_class_entry *entry TSRMLS_DC) override + { + zend_declare_class_constant_double(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 + { + // converstion to char* necessary for php 5.3 + zend_declare_property_double(entry, (char *)_name.c_str(), _name.size(), _value, _flags TSRMLS_CC); + } +}; + +/** + * End of namespace + */ +} + |