summaryrefslogtreecommitdiff
path: root/zend/valueiteratorimpl.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/valueiteratorimpl.h
parentda4710512865e6816585ac4ab8edab2fa125e2d8 (diff)
renamed src directory to zend directory, disabled TSRM debug code
Diffstat (limited to 'zend/valueiteratorimpl.h')
-rw-r--r--zend/valueiteratorimpl.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/zend/valueiteratorimpl.h b/zend/valueiteratorimpl.h
new file mode 100644
index 0000000..82c888d
--- /dev/null
+++ b/zend/valueiteratorimpl.h
@@ -0,0 +1,71 @@
+/**
+ * ValueIteratorImpl.h
+ *
+ * Interface that describes what an implementation of a value iterator should
+ * look like. This is an internal class that extension developers do not
+ * need. It is used internally inside the ValueIterator class.
+ *
+ * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com>
+ * @copyright 2014 Copernica BV
+ */
+
+/**
+ * Set up namespace
+ */
+namespace Php {
+
+/**
+ * Class definition
+ */
+class ValueIteratorImpl
+{
+public:
+ /**
+ * Constructor
+ */
+ ValueIteratorImpl() {}
+
+ /**
+ * Destructor
+ */
+ virtual ~ValueIteratorImpl() {}
+
+ /**
+ * Clone the object
+ * @param tsrm_ls
+ * @return ValueIteratorImpl*
+ */
+ virtual ValueIteratorImpl *clone() = 0;
+
+ /**
+ * Increment position (pre-increment)
+ * @param tsrm_ls
+ * @return bool
+ */
+ virtual bool increment() = 0;
+
+ /**
+ * Decrement position (pre-decrement)
+ * @return bool
+ */
+ virtual bool decrement() = 0;
+
+ /**
+ * Compare with other iterator
+ * @param that
+ * @return bool
+ */
+ virtual bool equals(const ValueIteratorImpl *that) const = 0;
+
+ /**
+ * Derefecence, this returns a std::pair with the current key and value
+ * @return std::pair
+ */
+ virtual const std::pair<Value,Value> &current() const = 0;
+};
+
+/**
+ * End namespace
+ */
+}
+