diff options
Diffstat (limited to 'include/classbase.h')
-rw-r--r-- | include/classbase.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/include/classbase.h b/include/classbase.h index 81454ba..1be2538 100644 --- a/include/classbase.h +++ b/include/classbase.h @@ -97,14 +97,20 @@ public: * Construct a new instance of the object * @return Base */ - virtual Base* construct() = 0; + virtual Base* construct() const = 0; /** * Create a clone of an object * @param orig * @return Base */ - virtual Base *clone(Base *orig) = 0; + virtual Base *clone(Base *orig) const = 0; + + /** + * Is this a traversable class? + * @return bool + */ + virtual bool traversable() const = 0; /** * Initialize the class, given its name @@ -283,6 +289,15 @@ private: static struct _zend_object_handlers *objectHandlers(); /** + * Function to create a new iterator to iterate over an object + * @param entry The class entry + * @param object The object to iterate over + * @param by_ref ????? + * @return zend_object_iterator* Pointer to the iterator + */ + static struct _zend_object_iterator *getIterator(struct _zend_class_entry *entry, struct _zval_struct *object, int by_ref); + + /** * Name of the class * @var string */ |