blob: 5ba05bdcb1ec6527528c6a947614a2e30dc6c9f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
/**
* HashParent.h
*
* Interface that is implemented by all objects that can be accessed with
* array-access variables ([]). When the value of a hash-member is changed,
* it will call one of the methods from this class to set the new property
*
* This is an internal class that you normally not need when writing
* extensions. It is used by the PHP-CPP library when you use constructs
* like value["x"]["y"] = 10;
*
* @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com>
* @copyright 2014 Copernica BV
*/
/**
* Set up namespace
*/
namespace Php {
/**
* Forwards
*/
class Value;
/**
* Class definition
*/
class HashParent
{
protected:
/**
* Protected constructor - users should not instantiate HashParent
* objects themselved. Use a Value object instead.
*/
HashParent() {}
public:
/**
* Destructor
*/
virtual ~HashParent() {}
/**
* Check if a certain key exists in the array/object
* @param key
* @return bool
*/
virtual bool contains(const std::string &key) const = 0;
/**
* Check if a certain index exists in the array/object
* @param key
* @return bool
*/
virtual bool contains(int index) const = 0;
/**
* Check if a certain index exists in the array/object
* @param key
* @return bool
*/
virtual bool contains(const Value &index) const = 0;
/**
* Retrieve the value at a string index
* @param key
* @return Value
*/
virtual Value get(const std::string &key) const = 0;
/**
* Retrieve the value at a numeric index
* @param index
* @return Value
*/
virtual Value get(int index) const = 0;
/**
* Retrieve the value at a value index
* @param key
* @return Value
*/
virtual Value get(const Value &key) const = 0;
/**
* Overwrite the value at a certain string index
* @param key
* @param value
*/
virtual void set(const std::string &key, const Value &value) = 0;
/**
* Overwrite the value at a certain numeric index
* @param index
* @param value
*/
virtual void set(int index, const Value &value) = 0;
/**
* Overwrite the value at a certain variant index
* @param key
* @param value
*/
virtual void set(const Value &key, const Value &value) = 0;
/**
* Unset a member by its index
* @param index
*/
virtual void unset(int index) = 0;
/**
* Unset a member by its key
* @param key
*/
virtual void unset(const std::string &key) = 0;
/**
* Unset a member by its key
* @param key
*/
virtual void unset(const Value &key) = 0;
};
/**
* End namespace
*/
}
|