|
16 | 16 | +----------------------------------------------------------------------+
|
17 | 17 | */
|
18 | 18 |
|
19 |
| -/* $Id$ */ |
20 |
| - |
21 | 19 | #ifndef PHONGO_CLASSES_H
|
22 | 20 | #define PHONGO_CLASSES_H
|
23 | 21 |
|
24 |
| -/* PHP Core stuff */ |
25 |
| -#include <php.h> |
26 |
| -#include <mongoc-bulk-operation-private.h> |
27 |
| - |
28 |
| -/* Our stuffz */ |
29 |
| -#include "php_bson.h" |
30 |
| - |
31 |
| - |
32 |
| -typedef struct { |
33 |
| - zend_object std; |
34 |
| - bson_t *bson; |
35 |
| -} php_phongo_command_t; |
36 |
| - |
37 |
| -typedef struct { |
38 |
| - zend_object std; |
39 |
| - mongoc_cursor_t *cursor; |
40 |
| - mongoc_client_t *client; |
41 |
| - int server_id; |
42 |
| - php_phongo_bson_state visitor_data; |
43 |
| - int got_iterator; |
44 |
| -} php_phongo_cursor_t; |
| 22 | +#if PHP_VERSION_ID >= 70000 |
| 23 | +# include "php_phongo_structs-7.h" |
| 24 | +# define Z_COMMAND_OBJ_P(zv) php_command_fetch_object(Z_OBJ_P(zv)); |
| 25 | +# define Z_CURSOR_OBJ_P(zv) php_cursor_fetch_object(Z_OBJ_P(zv)); |
| 26 | +# define Z_CURSORID_OBJ_P(zv) php_cursorid_fetch_object(Z_OBJ_P(zv)); |
| 27 | +# define Z_MANAGER_OBJ_P(zv) php_manager_fetch_object(Z_OBJ_P(zv)); |
| 28 | +# define Z_QUERY_OBJ_P(zv) php_query_fetch_object(Z_OBJ_P(zv)); |
| 29 | +# define Z_READPREFERENCE_OBJ_P(zv) php_readpreference_fetch_object(Z_OBJ_P(zv)); |
| 30 | +# define Z_SERVER_OBJ_P(zv) php_server_fetch_object(Z_OBJ_P(zv)); |
| 31 | +# define Z_BULKWRITE_OBJ_P(zv) php_bulkwrite_fetch_object(Z_OBJ_P(zv)); |
| 32 | +# define Z_WRITECONCERN_OBJ_P(zv) php_writeconcern_fetch_object(Z_OBJ_P(zv)); |
| 33 | +# define Z_WRITECONCERNERROR_OBJ_P(zv) php_writeconcernerror_fetch_object(Z_OBJ_P(zv)); |
| 34 | +# define Z_WRITEERROR_OBJ_P(zv) php_writeerror_fetch_object(Z_OBJ_P(zv)); |
| 35 | +# define Z_WRITERESULT_OBJ_P(zv) php_writeresult_fetch_object(Z_OBJ_P(zv)); |
| 36 | +# define Z_BINARY_OBJ_P(zv) php_binary_fetch_object(Z_OBJ_P(zv)); |
| 37 | +# define Z_INT32_OBJ_P(zv) php_int32_fetch_object(Z_OBJ_P(zv)); |
| 38 | +# define Z_INT64_OBJ_P(zv) php_int64_fetch_object(Z_OBJ_P(zv)); |
| 39 | +# define Z_JAVASCRIPT_OBJ_P(zv) php_javascript_fetch_object(Z_OBJ_P(zv)); |
| 40 | +# define Z_LOG_OBJ_P(zv) php_log_fetch_object(Z_OBJ_P(zv)); |
| 41 | +# define Z_MAXKEY_OBJ_P(zv) php_maxkey_fetch_object(Z_OBJ_P(zv)); |
| 42 | +# define Z_MINKEY_OBJ_P(zv) php_minkey_fetch_object(Z_OBJ_P(zv)); |
| 43 | +# define Z_OBJECTID_OBJ_P(zv) php_objectid_fetch_object(Z_OBJ_P(zv)); |
| 44 | +# define Z_REGEX_OBJ_P(zv) php_regex_fetch_object(Z_OBJ_P(zv)); |
| 45 | +# define Z_TIMESTAMP_OBJ_P(zv) php_timestamp_fetch_object(Z_OBJ_P(zv)); |
| 46 | +# define Z_UTCDATETIME_OBJ_P(zv) php_utcdatetime_fetch_object(Z_OBJ_P(zv)); |
| 47 | +#else |
| 48 | +# include "php_phongo_structs-5.h" |
| 49 | +# define Z_COMMAND_OBJ_P(zv) (php_phongo_command_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 50 | +# define Z_CURSOR_OBJ_P(zv) (php_phongo_cursor_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 51 | +# define Z_CURSORID_OBJ_P(zv) (php_phongo_cursorid_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 52 | +# define Z_MANAGER_OBJ_P(zv) (php_phongo_manager_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 53 | +# define Z_QUERY_OBJ_P(zv) (php_phongo_query_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 54 | +# define Z_READPREFERENCE_OBJ_P(zv) (php_phongo_readpreference_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 55 | +# define Z_SERVER_OBJ_P(zv) (php_phongo_server_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 56 | +# define Z_BULKWRITE_OBJ_P(zv) (php_phongo_bulkwrite_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 57 | +# define Z_WRITECONCERN_OBJ_P(zv) (php_phongo_writeconcern_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 58 | +# define Z_WRITECONCERNERROR_OBJ_P(zv) (php_phongo_writeconcernerror_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 59 | +# define Z_WRITEERROR_OBJ_P(zv) (php_phongo_writeerror_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 60 | +# define Z_WRITERESULT_OBJ_P(zv) (php_phongo_writeresult_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 61 | +# define Z_BINARY_OBJ_P(zv) (php_phongo_binary_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 62 | +# define Z_INT32_OBJ_P(zv) (php_phongo_int32_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 63 | +# define Z_INT64_OBJ_P(zv) (php_phongo_int64_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 64 | +# define Z_JAVASCRIPT_OBJ_P(zv) (php_phongo_javascript_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 65 | +# define Z_LOG_OBJ_P(zv) (php_phongo_log_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 66 | +# define Z_MAXKEY_OBJ_P(zv) (php_phongo_maxkey_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 67 | +# define Z_MINKEY_OBJ_P(zv) (php_phongo_minkey_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 68 | +# define Z_OBJECTID_OBJ_P(zv) (php_phongo_objectid_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 69 | +# define Z_REGEX_OBJ_P(zv) (php_phongo_regex_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 70 | +# define Z_TIMESTAMP_OBJ_P(zv) (php_phongo_timestamp_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 71 | +# define Z_UTCDATETIME_OBJ_P(zv) (php_phongo_utcdatetime_t *)zend_object_store_get_object(zv TSRMLS_CC); |
| 72 | + |
| 73 | +#endif |
45 | 74 |
|
46 | 75 | typedef struct {
|
47 | 76 | zend_object_iterator intern;
|
48 | 77 | php_phongo_cursor_t *cursor;
|
49 | 78 | long current;
|
50 | 79 | } php_phongo_cursor_iterator;
|
51 | 80 |
|
52 |
| -typedef struct { |
53 |
| - zend_object std; |
54 |
| - uint64_t id; |
55 |
| -} php_phongo_cursorid_t; |
56 |
| - |
57 |
| -typedef struct { |
58 |
| - zend_object std; |
59 |
| - mongoc_client_t *client; |
60 |
| -} php_phongo_manager_t; |
61 |
| - |
62 |
| -typedef struct { |
63 |
| - zend_object std; |
64 |
| - bson_t *query; |
65 |
| - bson_t *selector; |
66 |
| - mongoc_query_flags_t flags; |
67 |
| - uint32_t skip; |
68 |
| - uint32_t limit; |
69 |
| - uint32_t batch_size; |
70 |
| - mongoc_read_concern_t *read_concern; |
71 |
| -} php_phongo_query_t; |
72 |
| - |
73 |
| -typedef struct { |
74 |
| - zend_object std; |
75 |
| - mongoc_read_concern_t *read_concern; |
76 |
| -} php_phongo_readconcern_t; |
77 |
| - |
78 |
| -typedef struct { |
79 |
| - zend_object std; |
80 |
| - mongoc_read_prefs_t *read_preference; |
81 |
| -} php_phongo_readpreference_t; |
82 |
| - |
83 |
| -typedef struct { |
84 |
| - zend_object std; |
85 |
| - mongoc_client_t *client; |
86 |
| - int server_id; |
87 |
| -} php_phongo_server_t; |
88 |
| - |
89 |
| -typedef struct { |
90 |
| - zend_object std; |
91 |
| - mongoc_bulk_operation_t *bulk; |
92 |
| -} php_phongo_bulkwrite_t; |
93 |
| - |
94 |
| -typedef struct { |
95 |
| - zend_object std; |
96 |
| - mongoc_write_concern_t *write_concern; |
97 |
| -} php_phongo_writeconcern_t; |
98 |
| - |
99 |
| -typedef struct { |
100 |
| - zend_object std; |
101 |
| - int code; |
102 |
| - char *message; |
103 |
| - zval *info; |
104 |
| -} php_phongo_writeconcernerror_t; |
105 |
| - |
106 |
| -typedef struct { |
107 |
| - zend_object std; |
108 |
| - int code; |
109 |
| - char *message; |
110 |
| - zval *info; |
111 |
| - uint32_t index; |
112 |
| -} php_phongo_writeerror_t; |
113 |
| - |
114 |
| -typedef struct { |
115 |
| - zend_object std; |
116 |
| - mongoc_write_concern_t *write_concern; |
117 |
| - mongoc_write_result_t write_result; |
118 |
| - mongoc_client_t *client; |
119 |
| - int server_id; |
120 |
| -} php_phongo_writeresult_t; |
121 |
| - |
122 |
| -typedef struct { |
123 |
| - zend_object std; |
124 |
| - char *data; |
125 |
| - int data_len; |
126 |
| - int type; |
127 |
| -} php_phongo_binary_t; |
128 |
| -typedef struct { |
129 |
| - zend_object std; |
130 |
| -} php_phongo_int32_t; |
131 |
| -typedef struct { |
132 |
| - zend_object std; |
133 |
| -} php_phongo_int64_t; |
134 |
| -typedef struct { |
135 |
| - zend_object std; |
136 |
| - char *javascript; |
137 |
| - size_t javascript_len; |
138 |
| - bson_t *document; |
139 |
| -} php_phongo_javascript_t; |
140 |
| -typedef struct { |
141 |
| - zend_object std; |
142 |
| -} php_phongo_log_t; |
143 |
| -typedef struct { |
144 |
| - zend_object std; |
145 |
| -} php_phongo_maxkey_t; |
146 |
| -typedef struct { |
147 |
| - zend_object std; |
148 |
| -} php_phongo_minkey_t; |
149 |
| -typedef struct { |
150 |
| - zend_object std; |
151 |
| - char oid[25]; |
152 |
| -} php_phongo_objectid_t; |
153 |
| -typedef struct { |
154 |
| - zend_object std; |
155 |
| - char *pattern; |
156 |
| - int pattern_len; |
157 |
| - char *flags; |
158 |
| - int flags_len; |
159 |
| -} php_phongo_regex_t; |
160 |
| -typedef struct { |
161 |
| - zend_object std; |
162 |
| - int32_t increment; |
163 |
| - int32_t timestamp; |
164 |
| -} php_phongo_timestamp_t; |
165 |
| -typedef struct { |
166 |
| - zend_object std; |
167 |
| - int64_t milliseconds; |
168 |
| -} php_phongo_utcdatetime_t; |
169 | 81 |
|
170 | 82 | extern PHONGO_API zend_class_entry *php_phongo_command_ce;
|
171 | 83 | extern PHONGO_API zend_class_entry *php_phongo_cursor_ce;
|
@@ -257,7 +169,7 @@ PHP_MINIT_FUNCTION(Regex);
|
257 | 169 | PHP_MINIT_FUNCTION(Timestamp);
|
258 | 170 | PHP_MINIT_FUNCTION(UTCDateTime);
|
259 | 171 |
|
260 |
| -#endif /* PHONGO_H */ |
| 172 | +#endif /* PHONGO_CLASSES_H */ |
261 | 173 |
|
262 | 174 |
|
263 | 175 | /*
|
|
0 commit comments