summaryrefslogtreecommitdiff
path: root/include/value.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/value.h')
-rw-r--r--include/value.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/include/value.h b/include/value.h
index f2850c9..fce8750 100644
--- a/include/value.h
+++ b/include/value.h
@@ -112,6 +112,12 @@ public:
Value(struct _zval_struct *zval, bool ref = false);
/**
+ * Wrap around a hash table
+ * @param ht Hashtable to wrap
+ */
+ Value(struct _hashtable *ht);
+
+ /**
* Wrap around an object implemented by us
* @param object Object to be wrapped
*/
@@ -375,9 +381,15 @@ public:
/**
* Retrieve the value as number
- * @return long
+ *
+ * We force this to be a int64_t because we assume that most
+ * servers run 64 bits nowadays, and because we use int32_t, int64_t
+ * almost everywhere, instead of 'long' and on OSX neither of
+ * these intxx_t types is defined as 'long'...
+ *
+ * @return int64_t
*/
- long numericValue() const;
+ int64_t numericValue() const;
/**
* Retrieve the value as boolean
@@ -846,6 +858,18 @@ protected:
struct _zval_struct *detach();
/**
+ * Attach a different zval
+ *
+ * This will first detach the current zval, and link the Value object to
+ * a different zval. Versions exist to attach to a zval and to an entire
+ * hash table
+ *
+ * @param val
+ */
+ void attach(struct _zval_struct *val);
+ void attach(struct _hashtable *hashtable);
+
+ /**
* Set a certain property without running any checks (you must already know
* for sure that this is an array, and that the index is not yet in use)
*
@@ -874,6 +898,7 @@ protected:
friend class Member;
friend class ClassBase;
friend class Iterator;
+ friend class Extension;
};
/**