~ubuntu-branches/debian/sid/php-cassandra/sid

« back to all changes in this revision

Viewing changes to cassandra-1.3.0/php_driver_types.h

  • Committer: Package Import Robot
  • Author(s): Ondřej Surý
  • Date: 2017-04-18 17:16:30 UTC
  • Revision ID: package-import@ubuntu.com-20170418171630-fw8udixss0879s32
Tags: upstream-1.3.0
Import upstream version 1.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * Copyright 2015-2016 DataStax, Inc.
 
3
 *
 
4
 * Licensed under the Apache License, Version 2.0 (the "License");
 
5
 * you may not use this file except in compliance with the License.
 
6
 * You may obtain a copy of the License at
 
7
 *
 
8
 * http://www.apache.org/licenses/LICENSE-2.0
 
9
 *
 
10
 * Unless required by applicable law or agreed to in writing, software
 
11
 * distributed under the License is distributed on an "AS IS" BASIS,
 
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
13
 * See the License for the specific language governing permissions and
 
14
 * limitations under the License.
 
15
 */
 
16
 
 
17
#ifndef PHP_DRIVER_TYPES_H
 
18
#define PHP_DRIVER_TYPES_H
 
19
 
 
20
#if PHP_MAJOR_VERSION >= 7
 
21
#define PHP_DRIVER_BEGIN_OBJECT_TYPE(type_name) \
 
22
  typedef struct php_driver_##type_name##_ {
 
23
 
 
24
#define PHP_DRIVER_END_OBJECT_TYPE(type_name) \
 
25
    zend_object zval;                            \
 
26
  } php_driver_##type_name;                       \
 
27
  static inline php_driver_##type_name *php_driver_##type_name##_object_fetch(zend_object *obj) { \
 
28
    return (php_driver_##type_name *)((char *)obj - XtOffsetOf(php_driver_##type_name, zval));        \
 
29
  }
 
30
#else
 
31
#define PHP_DRIVER_BEGIN_OBJECT_TYPE(type_name) \
 
32
  typedef struct php_driver_##type_name##_ {        \
 
33
    zend_object zval;
 
34
 
 
35
#define PHP_DRIVER_END_OBJECT_TYPE(type_name) \
 
36
  } php_driver_##type_name;
 
37
#endif
 
38
 
 
39
#if PHP_MAJOR_VERSION >= 7
 
40
  #define PHP_DRIVER_GET_NUMERIC(obj) php_driver_numeric_object_fetch(Z_OBJ_P(obj))
 
41
  #define PHP_DRIVER_GET_BLOB(obj) php_driver_blob_object_fetch(Z_OBJ_P(obj))
 
42
  #define PHP_DRIVER_GET_TIMESTAMP(obj) php_driver_timestamp_object_fetch(Z_OBJ_P(obj))
 
43
  #define PHP_DRIVER_GET_DATE(obj) php_driver_date_object_fetch(Z_OBJ_P(obj))
 
44
  #define PHP_DRIVER_GET_TIME(obj) php_driver_time_object_fetch(Z_OBJ_P(obj))
 
45
  #define PHP_DRIVER_GET_UUID(obj) php_driver_uuid_object_fetch(Z_OBJ_P(obj))
 
46
  #define PHP_DRIVER_GET_INET(obj) php_driver_inet_object_fetch(Z_OBJ_P(obj))
 
47
  #define PHP_DRIVER_GET_COLLECTION(obj) php_driver_collection_object_fetch(Z_OBJ_P(obj))
 
48
  #define PHP_DRIVER_GET_MAP(obj) php_driver_map_object_fetch(Z_OBJ_P(obj))
 
49
  #define PHP_DRIVER_GET_SET(obj) php_driver_set_object_fetch(Z_OBJ_P(obj))
 
50
  #define PHP_DRIVER_GET_TUPLE(obj) php_driver_tuple_object_fetch(Z_OBJ_P(obj))
 
51
  #define PHP_DRIVER_GET_USER_TYPE_VALUE(obj) php_driver_user_type_value_object_fetch(Z_OBJ_P(obj))
 
52
  #define PHP_DRIVER_GET_CLUSTER(obj) php_driver_cluster_object_fetch(Z_OBJ_P(obj))
 
53
  #define PHP_DRIVER_GET_STATEMENT(obj) php_driver_statement_object_fetch(Z_OBJ_P(obj))
 
54
  #define PHP_DRIVER_GET_EXECUTION_OPTIONS(obj) php_driver_execution_options_object_fetch(Z_OBJ_P(obj))
 
55
  #define PHP_DRIVER_GET_ROWS(obj) php_driver_rows_object_fetch(Z_OBJ_P(obj))
 
56
  #define PHP_DRIVER_GET_FUTURE_ROWS(obj) php_driver_future_rows_object_fetch(Z_OBJ_P(obj))
 
57
  #define PHP_DRIVER_GET_CLUSTER_BUILDER(obj) php_driver_cluster_builder_object_fetch(Z_OBJ_P(obj))
 
58
  #define PHP_DRIVER_GET_FUTURE_PREPARED_STATEMENT(obj) php_driver_future_prepared_statement_object_fetch(Z_OBJ_P(obj))
 
59
  #define PHP_DRIVER_GET_FUTURE_VALUE(obj) php_driver_future_value_object_fetch(Z_OBJ_P(obj))
 
60
  #define PHP_DRIVER_GET_FUTURE_CLOSE(obj) php_driver_future_close_object_fetch(Z_OBJ_P(obj))
 
61
  #define PHP_DRIVER_GET_FUTURE_SESSION(obj) php_driver_future_session_object_fetch(Z_OBJ_P(obj))
 
62
  #define PHP_DRIVER_GET_SESSION(obj) php_driver_session_object_fetch(Z_OBJ_P(obj))
 
63
  #define PHP_DRIVER_GET_SSL(obj) php_driver_ssl_object_fetch(Z_OBJ_P(obj))
 
64
  #define PHP_DRIVER_GET_SSL_BUILDER(obj) php_driver_ssl_builder_object_fetch(Z_OBJ_P(obj))
 
65
  #define PHP_DRIVER_GET_SCHEMA(obj) php_driver_schema_object_fetch(Z_OBJ_P(obj))
 
66
  #define PHP_DRIVER_GET_KEYSPACE(obj) php_driver_keyspace_object_fetch(Z_OBJ_P(obj))
 
67
  #define PHP_DRIVER_GET_TABLE(obj) php_driver_table_object_fetch(Z_OBJ_P(obj))
 
68
  #define PHP_DRIVER_GET_COLUMN(obj) php_driver_column_object_fetch(Z_OBJ_P(obj))
 
69
  #define PHP_DRIVER_GET_INDEX(obj) php_driver_index_object_fetch(Z_OBJ_P(obj))
 
70
  #define PHP_DRIVER_GET_MATERIALIZED_VIEW(obj) php_driver_materialized_view_object_fetch(Z_OBJ_P(obj))
 
71
  #define PHP_DRIVER_GET_FUNCTION(obj) php_driver_function_object_fetch(Z_OBJ_P(obj))
 
72
  #define PHP_DRIVER_GET_AGGREGATE(obj) php_driver_aggregate_object_fetch(Z_OBJ_P(obj))
 
73
  #define PHP_DRIVER_GET_TYPE(obj) php_driver_type_object_fetch(Z_OBJ_P(obj))
 
74
  #define PHP_DRIVER_GET_RETRY_POLICY(obj) php_driver_retry_policy_object_fetch(Z_OBJ_P(obj))
 
75
  #define PHP_DRIVER_GET_TIMESTAMP_GEN(obj) php_driver_timestamp_gen_object_fetch(Z_OBJ_P(obj))
 
76
  #define PHP_DRIVER_GET_DURATION(obj) php_driver_duration_object_fetch(Z_OBJ_P(obj))
 
77
#else
 
78
  #define PHP_DRIVER_GET_NUMERIC(obj) ((php_driver_numeric *)zend_object_store_get_object((obj) TSRMLS_CC))
 
79
  #define PHP_DRIVER_GET_BLOB(obj) ((php_driver_blob *)zend_object_store_get_object((obj) TSRMLS_CC))
 
80
  #define PHP_DRIVER_GET_TIMESTAMP(obj) ((php_driver_timestamp *)zend_object_store_get_object((obj) TSRMLS_CC))
 
81
  #define PHP_DRIVER_GET_DATE(obj) ((php_driver_date *)zend_object_store_get_object((obj) TSRMLS_CC))
 
82
  #define PHP_DRIVER_GET_TIME(obj) ((php_driver_time *)zend_object_store_get_object((obj) TSRMLS_CC))
 
83
  #define PHP_DRIVER_GET_UUID(obj) ((php_driver_uuid *)zend_object_store_get_object((obj) TSRMLS_CC))
 
84
  #define PHP_DRIVER_GET_INET(obj) ((php_driver_inet *)zend_object_store_get_object((obj) TSRMLS_CC))
 
85
  #define PHP_DRIVER_GET_COLLECTION(obj) ((php_driver_collection *)zend_object_store_get_object((obj) TSRMLS_CC))
 
86
  #define PHP_DRIVER_GET_MAP(obj) ((php_driver_map *)zend_object_store_get_object((obj) TSRMLS_CC))
 
87
  #define PHP_DRIVER_GET_SET(obj) ((php_driver_set *)zend_object_store_get_object((obj) TSRMLS_CC))
 
88
  #define PHP_DRIVER_GET_TUPLE(obj) ((php_driver_tuple *)zend_object_store_get_object((obj) TSRMLS_CC))
 
89
  #define PHP_DRIVER_GET_USER_TYPE_VALUE(obj) ((php_driver_user_type_value *)zend_object_store_get_object((obj) TSRMLS_CC))
 
90
  #define PHP_DRIVER_GET_CLUSTER(obj) ((php_driver_cluster *)zend_object_store_get_object((obj) TSRMLS_CC))
 
91
  #define PHP_DRIVER_GET_STATEMENT(obj) ((php_driver_statement *)zend_object_store_get_object((obj) TSRMLS_CC))
 
92
  #define PHP_DRIVER_GET_EXECUTION_OPTIONS(obj) ((php_driver_execution_options *)zend_object_store_get_object((obj) TSRMLS_CC))
 
93
  #define PHP_DRIVER_GET_ROWS(obj) ((php_driver_rows *)zend_object_store_get_object((obj) TSRMLS_CC))
 
94
  #define PHP_DRIVER_GET_FUTURE_ROWS(obj) ((php_driver_future_rows *)zend_object_store_get_object((obj) TSRMLS_CC))
 
95
  #define PHP_DRIVER_GET_CLUSTER_BUILDER(obj) ((php_driver_cluster_builder *)zend_object_store_get_object((obj) TSRMLS_CC))
 
96
  #define PHP_DRIVER_GET_FUTURE_PREPARED_STATEMENT(obj) ((php_driver_future_prepared_statement *)zend_object_store_get_object((obj) TSRMLS_CC))
 
97
  #define PHP_DRIVER_GET_FUTURE_VALUE(obj) ((php_driver_future_value *)zend_object_store_get_object((obj) TSRMLS_CC))
 
98
  #define PHP_DRIVER_GET_FUTURE_CLOSE(obj) ((php_driver_future_close *)zend_object_store_get_object((obj) TSRMLS_CC))
 
99
  #define PHP_DRIVER_GET_FUTURE_SESSION(obj) ((php_driver_future_session *)zend_object_store_get_object((obj) TSRMLS_CC))
 
100
  #define PHP_DRIVER_GET_SESSION(obj) ((php_driver_session *)zend_object_store_get_object((obj) TSRMLS_CC))
 
101
  #define PHP_DRIVER_GET_SSL(obj) ((php_driver_ssl *)zend_object_store_get_object((obj) TSRMLS_CC))
 
102
  #define PHP_DRIVER_GET_SSL_BUILDER(obj) ((php_driver_ssl_builder *)zend_object_store_get_object((obj) TSRMLS_CC))
 
103
  #define PHP_DRIVER_GET_SCHEMA(obj) ((php_driver_schema *)zend_object_store_get_object((obj) TSRMLS_CC))
 
104
  #define PHP_DRIVER_GET_KEYSPACE(obj) ((php_driver_keyspace *)zend_object_store_get_object((obj) TSRMLS_CC))
 
105
  #define PHP_DRIVER_GET_TABLE(obj) ((php_driver_table *)zend_object_store_get_object((obj) TSRMLS_CC))
 
106
  #define PHP_DRIVER_GET_COLUMN(obj) ((php_driver_column *)zend_object_store_get_object((obj) TSRMLS_CC))
 
107
  #define PHP_DRIVER_GET_INDEX(obj) ((php_driver_index *)zend_object_store_get_object((obj) TSRMLS_CC))
 
108
  #define PHP_DRIVER_GET_MATERIALIZED_VIEW(obj) ((php_driver_materialized_view *)zend_object_store_get_object((obj) TSRMLS_CC))
 
109
  #define PHP_DRIVER_GET_FUNCTION(obj) ((php_driver_function *)zend_object_store_get_object((obj) TSRMLS_CC))
 
110
  #define PHP_DRIVER_GET_AGGREGATE(obj) ((php_driver_aggregate *)zend_object_store_get_object((obj) TSRMLS_CC))
 
111
  #define PHP_DRIVER_GET_TYPE(obj) ((php_driver_type *)zend_object_store_get_object((obj) TSRMLS_CC))
 
112
  #define PHP_DRIVER_GET_RETRY_POLICY(obj) ((php_driver_retry_policy *)zend_object_store_get_object((obj) TSRMLS_CC))
 
113
  #define PHP_DRIVER_GET_TIMESTAMP_GEN(obj) ((php_driver_timestamp_gen *)zend_object_store_get_object((obj) TSRMLS_CC))
 
114
  #define PHP_DRIVER_GET_DURATION(obj) ((php_driver_duration *)zend_object_store_get_object((obj) TSRMLS_CC))
 
115
#endif
 
116
 
 
117
typedef enum {
 
118
  PHP_DRIVER_BIGINT,
 
119
  PHP_DRIVER_DECIMAL,
 
120
  PHP_DRIVER_FLOAT,
 
121
  PHP_DRIVER_VARINT,
 
122
  PHP_DRIVER_SMALLINT,
 
123
  PHP_DRIVER_TINYINT
 
124
} php_driver_numeric_type;
 
125
 
 
126
PHP_DRIVER_BEGIN_OBJECT_TYPE(numeric)
 
127
  php_driver_numeric_type type;
 
128
  union {
 
129
    struct {
 
130
      cass_int8_t value;
 
131
    } tinyint;
 
132
    struct {
 
133
      cass_int16_t value;
 
134
    } smallint;
 
135
    struct {
 
136
      cass_int64_t value;
 
137
    } bigint;
 
138
    struct {
 
139
      cass_float_t value;
 
140
    } floating;
 
141
    struct {
 
142
      mpz_t value;
 
143
    } varint;
 
144
    struct {
 
145
      mpz_t value;
 
146
      long scale;
 
147
    } decimal;
 
148
  } data;
 
149
PHP_DRIVER_END_OBJECT_TYPE(numeric)
 
150
 
 
151
PHP_DRIVER_BEGIN_OBJECT_TYPE(timestamp)
 
152
    cass_int64_t timestamp;
 
153
PHP_DRIVER_END_OBJECT_TYPE(timestamp)
 
154
 
 
155
PHP_DRIVER_BEGIN_OBJECT_TYPE(date)
 
156
    cass_uint32_t date;
 
157
PHP_DRIVER_END_OBJECT_TYPE(date)
 
158
 
 
159
PHP_DRIVER_BEGIN_OBJECT_TYPE(time)
 
160
    cass_int64_t time;
 
161
PHP_DRIVER_END_OBJECT_TYPE(time)
 
162
 
 
163
PHP_DRIVER_BEGIN_OBJECT_TYPE(blob)
 
164
  cass_byte_t *data;
 
165
  size_t size;
 
166
PHP_DRIVER_END_OBJECT_TYPE(blob)
 
167
 
 
168
PHP_DRIVER_BEGIN_OBJECT_TYPE(uuid)
 
169
  CassUuid uuid;
 
170
PHP_DRIVER_END_OBJECT_TYPE(uuid)
 
171
 
 
172
PHP_DRIVER_BEGIN_OBJECT_TYPE(inet)
 
173
  CassInet inet;
 
174
PHP_DRIVER_END_OBJECT_TYPE(inet)
 
175
 
 
176
PHP_DRIVER_BEGIN_OBJECT_TYPE(duration)
 
177
  cass_int32_t months;
 
178
  cass_int32_t days;
 
179
  cass_int32_t nanos;
 
180
PHP_DRIVER_END_OBJECT_TYPE(duration)
 
181
 
 
182
PHP_DRIVER_BEGIN_OBJECT_TYPE(collection)
 
183
  php5to7_zval type;
 
184
  HashTable values;
 
185
  unsigned hashv;
 
186
  int dirty;
 
187
PHP_DRIVER_END_OBJECT_TYPE(collection)
 
188
 
 
189
typedef struct php_driver_map_entry_ php_driver_map_entry;
 
190
 
 
191
PHP_DRIVER_BEGIN_OBJECT_TYPE(map)
 
192
  php5to7_zval type;
 
193
  php_driver_map_entry *entries;
 
194
  unsigned hashv;
 
195
  int dirty;
 
196
  php_driver_map_entry *iter_curr;
 
197
  php_driver_map_entry *iter_temp;
 
198
PHP_DRIVER_END_OBJECT_TYPE(map)
 
199
 
 
200
typedef struct php_driver_set_entry_ php_driver_set_entry;
 
201
 
 
202
PHP_DRIVER_BEGIN_OBJECT_TYPE(set)
 
203
  php5to7_zval type;
 
204
  php_driver_set_entry *entries;
 
205
  unsigned hashv;
 
206
  int dirty;
 
207
  php_driver_set_entry *iter_curr;
 
208
  php_driver_set_entry *iter_temp;
 
209
  int iter_index;
 
210
PHP_DRIVER_END_OBJECT_TYPE(set)
 
211
 
 
212
PHP_DRIVER_BEGIN_OBJECT_TYPE(tuple)
 
213
  php5to7_zval type;
 
214
  HashTable values;
 
215
  HashPosition pos;
 
216
  unsigned hashv;
 
217
  int dirty;
 
218
PHP_DRIVER_END_OBJECT_TYPE(tuple)
 
219
 
 
220
PHP_DRIVER_BEGIN_OBJECT_TYPE(user_type_value)
 
221
  php5to7_zval type;
 
222
  HashTable values;
 
223
  HashPosition pos;
 
224
  unsigned hashv;
 
225
  int dirty;
 
226
PHP_DRIVER_END_OBJECT_TYPE(user_type_value)
 
227
 
 
228
PHP_DRIVER_BEGIN_OBJECT_TYPE(cluster)
 
229
  cass_byte_t *data;
 
230
  CassCluster *cluster;
 
231
  long default_consistency;
 
232
  int default_page_size;
 
233
  php5to7_zval default_timeout;
 
234
  cass_bool_t persist;
 
235
  char *hash_key;
 
236
  int hash_key_len;
 
237
PHP_DRIVER_END_OBJECT_TYPE(cluster)
 
238
 
 
239
typedef enum {
 
240
  PHP_DRIVER_SIMPLE_STATEMENT,
 
241
  PHP_DRIVER_PREPARED_STATEMENT,
 
242
  PHP_DRIVER_BATCH_STATEMENT
 
243
} php_driver_statement_type;
 
244
 
 
245
PHP_DRIVER_BEGIN_OBJECT_TYPE(statement)
 
246
  php_driver_statement_type type;
 
247
  union {
 
248
    struct {
 
249
      char *cql;
 
250
    } simple;
 
251
    struct {
 
252
      const CassPrepared *prepared;
 
253
    } prepared;
 
254
    struct {
 
255
      CassBatchType type;
 
256
      HashTable statements;
 
257
    } batch;
 
258
  } data;
 
259
PHP_DRIVER_END_OBJECT_TYPE(statement)
 
260
 
 
261
typedef struct {
 
262
  php5to7_zval statement;
 
263
  php5to7_zval arguments;
 
264
} php_driver_batch_statement_entry;
 
265
 
 
266
PHP_DRIVER_BEGIN_OBJECT_TYPE(execution_options)
 
267
  long consistency;
 
268
  long serial_consistency;
 
269
  int page_size;
 
270
  char *paging_state_token;
 
271
  size_t paging_state_token_size;
 
272
  php5to7_zval timeout;
 
273
  php5to7_zval arguments;
 
274
  php5to7_zval retry_policy;
 
275
  cass_int64_t timestamp;
 
276
PHP_DRIVER_END_OBJECT_TYPE(execution_options)
 
277
 
 
278
typedef enum {
 
279
  LOAD_BALANCING_DEFAULT = 0,
 
280
  LOAD_BALANCING_ROUND_ROBIN,
 
281
  LOAD_BALANCING_DC_AWARE_ROUND_ROBIN
 
282
} php_driver_load_balancing;
 
283
 
 
284
typedef void (*php_driver_free_function)(void *data);
 
285
 
 
286
typedef struct {
 
287
  size_t                  count;
 
288
  php_driver_free_function destruct;
 
289
  void                   *data;
 
290
} php_driver_ref;
 
291
 
 
292
PHP_DRIVER_BEGIN_OBJECT_TYPE(rows)
 
293
  php_driver_ref *statement;
 
294
  php_driver_ref *session;
 
295
  php5to7_zval rows;
 
296
  php5to7_zval next_rows;
 
297
  php_driver_ref *result;
 
298
  php_driver_ref *next_result;
 
299
  php5to7_zval future_next_page;
 
300
PHP_DRIVER_END_OBJECT_TYPE(rows)
 
301
 
 
302
PHP_DRIVER_BEGIN_OBJECT_TYPE(future_rows)
 
303
  php_driver_ref *statement;
 
304
  php_driver_ref *session;
 
305
  php5to7_zval rows;
 
306
  php_driver_ref *result;
 
307
  CassFuture *future;
 
308
PHP_DRIVER_END_OBJECT_TYPE(future_rows)
 
309
 
 
310
PHP_DRIVER_BEGIN_OBJECT_TYPE(cluster_builder)
 
311
  char *contact_points;
 
312
  int port;
 
313
  php_driver_load_balancing load_balancing_policy;
 
314
  char *local_dc;
 
315
  unsigned int used_hosts_per_remote_dc;
 
316
  cass_bool_t allow_remote_dcs_for_local_cl;
 
317
  cass_bool_t use_token_aware_routing;
 
318
  char *username;
 
319
  char *password;
 
320
  unsigned int connect_timeout;
 
321
  unsigned int request_timeout;
 
322
  php5to7_zval ssl_options;
 
323
  long default_consistency;
 
324
  int default_page_size;
 
325
  php5to7_zval default_timeout;
 
326
  cass_bool_t persist;
 
327
  int protocol_version;
 
328
  int io_threads;
 
329
  int core_connections_per_host;
 
330
  int max_connections_per_host;
 
331
  unsigned int reconnect_interval;
 
332
  cass_bool_t enable_latency_aware_routing;
 
333
  cass_bool_t enable_tcp_nodelay;
 
334
  cass_bool_t enable_tcp_keepalive;
 
335
  unsigned int tcp_keepalive_delay;
 
336
  php5to7_zval retry_policy;
 
337
  php5to7_zval timestamp_gen;
 
338
  cass_bool_t enable_schema;
 
339
  char *blacklist_hosts;
 
340
  char *whitelist_hosts;
 
341
  char *blacklist_dcs;
 
342
  char *whitelist_dcs;
 
343
  cass_bool_t enable_hostname_resolution;
 
344
  cass_bool_t enable_randomized_contact_points;
 
345
  unsigned int connection_heartbeat_interval;
 
346
PHP_DRIVER_END_OBJECT_TYPE(cluster_builder)
 
347
 
 
348
PHP_DRIVER_BEGIN_OBJECT_TYPE(future_prepared_statement)
 
349
  CassFuture *future;
 
350
  php5to7_zval prepared_statement;
 
351
PHP_DRIVER_END_OBJECT_TYPE(future_prepared_statement)
 
352
 
 
353
PHP_DRIVER_BEGIN_OBJECT_TYPE(future_value)
 
354
  php5to7_zval value;
 
355
PHP_DRIVER_END_OBJECT_TYPE(future_value)
 
356
 
 
357
PHP_DRIVER_BEGIN_OBJECT_TYPE(future_close)
 
358
  CassFuture *future;
 
359
PHP_DRIVER_END_OBJECT_TYPE(future_close)
 
360
 
 
361
PHP_DRIVER_BEGIN_OBJECT_TYPE(future_session)
 
362
  CassFuture *future;
 
363
  php_driver_ref *session;
 
364
  php5to7_zval default_session;
 
365
  cass_bool_t persist;
 
366
  char *hash_key;
 
367
  int hash_key_len;
 
368
  char *exception_message;
 
369
  CassError exception_code;
 
370
PHP_DRIVER_END_OBJECT_TYPE(future_session)
 
371
 
 
372
typedef struct {
 
373
  CassFuture *future;
 
374
  php_driver_ref *session;
 
375
} php_driver_psession;
 
376
 
 
377
PHP_DRIVER_BEGIN_OBJECT_TYPE(session)
 
378
  php_driver_ref *session;
 
379
  long default_consistency;
 
380
  int default_page_size;
 
381
  php5to7_zval default_timeout;
 
382
  cass_bool_t persist;
 
383
PHP_DRIVER_END_OBJECT_TYPE(session)
 
384
 
 
385
PHP_DRIVER_BEGIN_OBJECT_TYPE(ssl)
 
386
  CassSsl *ssl;
 
387
PHP_DRIVER_END_OBJECT_TYPE(ssl)
 
388
 
 
389
PHP_DRIVER_BEGIN_OBJECT_TYPE(ssl_builder)
 
390
  int flags;
 
391
  char **trusted_certs;
 
392
  int trusted_certs_cnt;
 
393
  char *client_cert;
 
394
  char *private_key;
 
395
  char *passphrase;
 
396
PHP_DRIVER_END_OBJECT_TYPE(ssl_builder)
 
397
 
 
398
PHP_DRIVER_BEGIN_OBJECT_TYPE(schema)
 
399
  php_driver_ref *schema;
 
400
PHP_DRIVER_END_OBJECT_TYPE(schema)
 
401
 
 
402
PHP_DRIVER_BEGIN_OBJECT_TYPE(keyspace)
 
403
  php_driver_ref *schema;
 
404
  const CassKeyspaceMeta *meta;
 
405
PHP_DRIVER_END_OBJECT_TYPE(keyspace)
 
406
 
 
407
PHP_DRIVER_BEGIN_OBJECT_TYPE(table)
 
408
  php5to7_zval name;
 
409
  php5to7_zval options;
 
410
  php5to7_zval partition_key;
 
411
  php5to7_zval primary_key;
 
412
  php5to7_zval clustering_key;
 
413
  php5to7_zval clustering_order;
 
414
  php_driver_ref *schema;
 
415
  const CassTableMeta *meta;
 
416
PHP_DRIVER_END_OBJECT_TYPE(table)
 
417
 
 
418
PHP_DRIVER_BEGIN_OBJECT_TYPE(materialized_view)
 
419
  php5to7_zval name;
 
420
  php5to7_zval options;
 
421
  php5to7_zval partition_key;
 
422
  php5to7_zval primary_key;
 
423
  php5to7_zval clustering_key;
 
424
  php5to7_zval clustering_order;
 
425
  php5to7_zval base_table;
 
426
  php_driver_ref *schema;
 
427
  const CassMaterializedViewMeta *meta;
 
428
PHP_DRIVER_END_OBJECT_TYPE(materialized_view)
 
429
 
 
430
PHP_DRIVER_BEGIN_OBJECT_TYPE(column)
 
431
  php5to7_zval name;
 
432
  php5to7_zval type;
 
433
  int reversed;
 
434
  int frozen;
 
435
  php_driver_ref *schema;
 
436
  const CassColumnMeta *meta;
 
437
PHP_DRIVER_END_OBJECT_TYPE(column)
 
438
 
 
439
PHP_DRIVER_BEGIN_OBJECT_TYPE(index)
 
440
  php5to7_zval name;
 
441
  php5to7_zval kind;
 
442
  php5to7_zval target;
 
443
  php5to7_zval options;
 
444
  php_driver_ref *schema;
 
445
  const CassIndexMeta *meta;
 
446
PHP_DRIVER_END_OBJECT_TYPE(index)
 
447
 
 
448
PHP_DRIVER_BEGIN_OBJECT_TYPE(function)
 
449
  php5to7_zval simple_name;
 
450
  php5to7_zval arguments;
 
451
  php5to7_zval return_type;
 
452
  php5to7_zval signature;
 
453
  php5to7_zval language;
 
454
  php5to7_zval body;
 
455
  php_driver_ref *schema;
 
456
  const CassFunctionMeta *meta;
 
457
PHP_DRIVER_END_OBJECT_TYPE(function)
 
458
 
 
459
PHP_DRIVER_BEGIN_OBJECT_TYPE(aggregate)
 
460
  php5to7_zval simple_name;
 
461
  php5to7_zval argument_types;
 
462
  php5to7_zval state_function;
 
463
  php5to7_zval final_function;
 
464
  php5to7_zval initial_condition;
 
465
  php5to7_zval state_type;
 
466
  php5to7_zval return_type;
 
467
  php5to7_zval signature;
 
468
  php_driver_ref *schema;
 
469
  const CassAggregateMeta *meta;
 
470
PHP_DRIVER_END_OBJECT_TYPE(aggregate)
 
471
 
 
472
PHP_DRIVER_BEGIN_OBJECT_TYPE(type)
 
473
  CassValueType type;
 
474
  CassDataType *data_type;
 
475
  union {
 
476
    struct {
 
477
      php5to7_zval value_type;
 
478
    } collection;
 
479
    struct {
 
480
      php5to7_zval value_type;
 
481
    } set;
 
482
    struct {
 
483
      php5to7_zval key_type;
 
484
      php5to7_zval value_type;
 
485
    } map;
 
486
    struct {
 
487
      char *class_name;
 
488
    } custom;
 
489
    struct {
 
490
      char *keyspace;
 
491
      char *type_name;
 
492
      HashTable types;
 
493
    } udt;
 
494
    struct {
 
495
      HashTable types;
 
496
    } tuple;
 
497
  } data;
 
498
PHP_DRIVER_END_OBJECT_TYPE(type)
 
499
 
 
500
PHP_DRIVER_BEGIN_OBJECT_TYPE(retry_policy)
 
501
  CassRetryPolicy *policy;
 
502
PHP_DRIVER_END_OBJECT_TYPE(retry_policy)
 
503
 
 
504
PHP_DRIVER_BEGIN_OBJECT_TYPE(timestamp_gen)
 
505
  CassTimestampGen *gen;
 
506
PHP_DRIVER_END_OBJECT_TYPE(timestamp_gen)
 
507
 
 
508
typedef unsigned (*php_driver_value_hash_t)(zval *obj TSRMLS_DC);
 
509
 
 
510
typedef struct {
 
511
  zend_object_handlers std;
 
512
  php_driver_value_hash_t hash_value;
 
513
} php_driver_value_handlers;
 
514
 
 
515
extern PHP_DRIVER_API zend_class_entry *php_driver_value_ce;
 
516
extern PHP_DRIVER_API zend_class_entry *php_driver_numeric_ce;
 
517
extern PHP_DRIVER_API zend_class_entry *php_driver_bigint_ce;
 
518
extern PHP_DRIVER_API zend_class_entry *php_driver_smallint_ce;
 
519
extern PHP_DRIVER_API zend_class_entry *php_driver_tinyint_ce;
 
520
extern PHP_DRIVER_API zend_class_entry *php_driver_blob_ce;
 
521
extern PHP_DRIVER_API zend_class_entry *php_driver_decimal_ce;
 
522
extern PHP_DRIVER_API zend_class_entry *php_driver_float_ce;
 
523
extern PHP_DRIVER_API zend_class_entry *php_driver_inet_ce;
 
524
extern PHP_DRIVER_API zend_class_entry *php_driver_timestamp_ce;
 
525
extern PHP_DRIVER_API zend_class_entry *php_driver_date_ce;
 
526
extern PHP_DRIVER_API zend_class_entry *php_driver_time_ce;
 
527
extern PHP_DRIVER_API zend_class_entry *php_driver_uuid_interface_ce;
 
528
extern PHP_DRIVER_API zend_class_entry *php_driver_uuid_ce;
 
529
extern PHP_DRIVER_API zend_class_entry *php_driver_timeuuid_ce;
 
530
extern PHP_DRIVER_API zend_class_entry *php_driver_varint_ce;
 
531
extern PHP_DRIVER_API zend_class_entry *php_driver_custom_ce;
 
532
extern PHP_DRIVER_API zend_class_entry *php_driver_duration_ce;
 
533
 
 
534
extern PHP_DRIVER_API zend_class_entry *php_driver_set_ce;
 
535
extern PHP_DRIVER_API zend_class_entry *php_driver_map_ce;
 
536
extern PHP_DRIVER_API zend_class_entry *php_driver_collection_ce;
 
537
extern PHP_DRIVER_API zend_class_entry *php_driver_tuple_ce;
 
538
extern PHP_DRIVER_API zend_class_entry *php_driver_user_type_value_ce;
 
539
 
 
540
/* Exceptions */
 
541
void php_driver_define_Exception(TSRMLS_D);
 
542
void php_driver_define_InvalidArgumentException(TSRMLS_D);
 
543
void php_driver_define_DomainException(TSRMLS_D);
 
544
void php_driver_define_LogicException(TSRMLS_D);
 
545
void php_driver_define_RuntimeException(TSRMLS_D);
 
546
void php_driver_define_TimeoutException(TSRMLS_D);
 
547
void php_driver_define_ExecutionException(TSRMLS_D);
 
548
void php_driver_define_ReadTimeoutException(TSRMLS_D);
 
549
void php_driver_define_WriteTimeoutException(TSRMLS_D);
 
550
void php_driver_define_UnavailableException(TSRMLS_D);
 
551
void php_driver_define_TruncateException(TSRMLS_D);
 
552
void php_driver_define_ValidationException(TSRMLS_D);
 
553
void php_driver_define_InvalidQueryException(TSRMLS_D);
 
554
void php_driver_define_InvalidSyntaxException(TSRMLS_D);
 
555
void php_driver_define_UnauthorizedException(TSRMLS_D);
 
556
void php_driver_define_UnpreparedException(TSRMLS_D);
 
557
void php_driver_define_ConfigurationException(TSRMLS_D);
 
558
void php_driver_define_AlreadyExistsException(TSRMLS_D);
 
559
void php_driver_define_AuthenticationException(TSRMLS_D);
 
560
void php_driver_define_ProtocolException(TSRMLS_D);
 
561
void php_driver_define_ServerException(TSRMLS_D);
 
562
void php_driver_define_IsBootstrappingException(TSRMLS_D);
 
563
void php_driver_define_OverloadedException(TSRMLS_D);
 
564
void php_driver_define_DivideByZeroException(TSRMLS_D);
 
565
void php_driver_define_RangeException(TSRMLS_D);
 
566
 
 
567
/* Types */
 
568
void php_driver_define_Value(TSRMLS_D);
 
569
void php_driver_define_Numeric(TSRMLS_D);
 
570
void php_driver_define_Bigint(TSRMLS_D);
 
571
void php_driver_define_Smallint(TSRMLS_D);
 
572
void php_driver_define_Tinyint(TSRMLS_D);
 
573
void php_driver_define_Blob(TSRMLS_D);
 
574
void php_driver_define_Collection(TSRMLS_D);
 
575
void php_driver_define_Decimal(TSRMLS_D);
 
576
void php_driver_define_Float(TSRMLS_D);
 
577
void php_driver_define_Inet(TSRMLS_D);
 
578
void php_driver_define_Map(TSRMLS_D);
 
579
void php_driver_define_Set(TSRMLS_D);
 
580
void php_driver_define_Timestamp(TSRMLS_D);
 
581
void php_driver_define_Date(TSRMLS_D);
 
582
void php_driver_define_Time(TSRMLS_D);
 
583
void php_driver_define_Tuple(TSRMLS_D);
 
584
void php_driver_define_UserTypeValue(TSRMLS_D);
 
585
void php_driver_define_UuidInterface(TSRMLS_D);
 
586
void php_driver_define_Uuid(TSRMLS_D);
 
587
void php_driver_define_Timeuuid(TSRMLS_D);
 
588
void php_driver_define_Varint(TSRMLS_D);
 
589
void php_driver_define_Custom(TSRMLS_D);
 
590
void php_driver_define_Duration(TSRMLS_D);
 
591
 
 
592
/* Classes */
 
593
extern PHP_DRIVER_API zend_class_entry *php_driver_core_ce;
 
594
extern PHP_DRIVER_API zend_class_entry *php_driver_cluster_ce;
 
595
extern PHP_DRIVER_API zend_class_entry *php_driver_default_cluster_ce;
 
596
extern PHP_DRIVER_API zend_class_entry *php_driver_cluster_builder_ce;
 
597
extern PHP_DRIVER_API zend_class_entry *php_driver_default_cluster_builder_ce;
 
598
extern PHP_DRIVER_API zend_class_entry *php_driver_ssl_ce;
 
599
extern PHP_DRIVER_API zend_class_entry *php_driver_ssl_builder_ce;
 
600
extern PHP_DRIVER_API zend_class_entry *php_driver_future_ce;
 
601
extern PHP_DRIVER_API zend_class_entry *php_driver_future_prepared_statement_ce;
 
602
extern PHP_DRIVER_API zend_class_entry *php_driver_future_rows_ce;
 
603
extern PHP_DRIVER_API zend_class_entry *php_driver_future_session_ce;
 
604
extern PHP_DRIVER_API zend_class_entry *php_driver_future_value_ce;
 
605
extern PHP_DRIVER_API zend_class_entry *php_driver_future_close_ce;
 
606
extern PHP_DRIVER_API zend_class_entry *php_driver_session_ce;
 
607
extern PHP_DRIVER_API zend_class_entry *php_driver_default_session_ce;
 
608
extern PHP_DRIVER_API zend_class_entry *php_driver_exception_ce;
 
609
extern PHP_DRIVER_API zend_class_entry *php_driver_runtime_exception_ce;
 
610
extern PHP_DRIVER_API zend_class_entry *php_driver_timeout_exception_ce;
 
611
extern PHP_DRIVER_API zend_class_entry *php_driver_logic_exception_ce;
 
612
extern PHP_DRIVER_API zend_class_entry *php_driver_domain_exception_ce;
 
613
extern PHP_DRIVER_API zend_class_entry *php_driver_invalid_argument_exception_ce;
 
614
extern PHP_DRIVER_API zend_class_entry *php_driver_server_exception_ce;
 
615
extern PHP_DRIVER_API zend_class_entry *php_driver_overloaded_exception_ce;
 
616
extern PHP_DRIVER_API zend_class_entry *php_driver_is_bootstrapping_exception_ce;
 
617
extern PHP_DRIVER_API zend_class_entry *php_driver_execution_exception_ce;
 
618
extern PHP_DRIVER_API zend_class_entry *php_driver_truncate_exception_ce;
 
619
extern PHP_DRIVER_API zend_class_entry *php_driver_write_timeout_exception_ce;
 
620
extern PHP_DRIVER_API zend_class_entry *php_driver_read_timeout_exception_ce;
 
621
extern PHP_DRIVER_API zend_class_entry *php_driver_truncate_exception_ce;
 
622
extern PHP_DRIVER_API zend_class_entry *php_driver_unavailable_exception_ce;
 
623
extern PHP_DRIVER_API zend_class_entry *php_driver_validation_exception_ce;
 
624
extern PHP_DRIVER_API zend_class_entry *php_driver_invalid_syntax_exception_ce;
 
625
extern PHP_DRIVER_API zend_class_entry *php_driver_unauthorized_exception_ce;
 
626
extern PHP_DRIVER_API zend_class_entry *php_driver_invalid_query_exception_ce;
 
627
extern PHP_DRIVER_API zend_class_entry *php_driver_configuration_exception_ce;
 
628
extern PHP_DRIVER_API zend_class_entry *php_driver_already_exists_exception_ce;
 
629
extern PHP_DRIVER_API zend_class_entry *php_driver_unprepared_exception_ce;
 
630
extern PHP_DRIVER_API zend_class_entry *php_driver_protocol_exception_ce;
 
631
extern PHP_DRIVER_API zend_class_entry *php_driver_authentication_exception_ce;
 
632
extern PHP_DRIVER_API zend_class_entry *php_driver_divide_by_zero_exception_ce;
 
633
extern PHP_DRIVER_API zend_class_entry *php_driver_range_exception_ce;
 
634
 
 
635
extern PHP_DRIVER_API zend_class_entry *php_driver_statement_ce;
 
636
extern PHP_DRIVER_API zend_class_entry *php_driver_simple_statement_ce;
 
637
extern PHP_DRIVER_API zend_class_entry *php_driver_prepared_statement_ce;
 
638
extern PHP_DRIVER_API zend_class_entry *php_driver_batch_statement_ce;
 
639
extern PHP_DRIVER_API zend_class_entry *php_driver_execution_options_ce;
 
640
extern PHP_DRIVER_API zend_class_entry *php_driver_rows_ce;
 
641
 
 
642
void php_driver_define_Core(TSRMLS_D);
 
643
void php_driver_define_Cluster(TSRMLS_D);
 
644
void php_driver_define_ClusterBuilder(TSRMLS_D);
 
645
void php_driver_define_DefaultCluster(TSRMLS_D);
 
646
void php_driver_define_Future(TSRMLS_D);
 
647
void php_driver_define_FuturePreparedStatement(TSRMLS_D);
 
648
void php_driver_define_FutureRows(TSRMLS_D);
 
649
void php_driver_define_FutureSession(TSRMLS_D);
 
650
void php_driver_define_FutureValue(TSRMLS_D);
 
651
void php_driver_define_FutureClose(TSRMLS_D);
 
652
void php_driver_define_Session(TSRMLS_D);
 
653
void php_driver_define_DefaultSession(TSRMLS_D);
 
654
void php_driver_define_SSLOptions(TSRMLS_D);
 
655
void php_driver_define_SSLOptionsBuilder(TSRMLS_D);
 
656
void php_driver_define_Statement(TSRMLS_D);
 
657
void php_driver_define_SimpleStatement(TSRMLS_D);
 
658
void php_driver_define_PreparedStatement(TSRMLS_D);
 
659
void php_driver_define_BatchStatement(TSRMLS_D);
 
660
void php_driver_define_ExecutionOptions(TSRMLS_D);
 
661
void php_driver_define_Rows(TSRMLS_D);
 
662
 
 
663
extern PHP_DRIVER_API zend_class_entry *php_driver_schema_ce;
 
664
extern PHP_DRIVER_API zend_class_entry *php_driver_default_schema_ce;
 
665
extern PHP_DRIVER_API zend_class_entry *php_driver_keyspace_ce;
 
666
extern PHP_DRIVER_API zend_class_entry *php_driver_default_keyspace_ce;
 
667
extern PHP_DRIVER_API zend_class_entry *php_driver_table_ce;
 
668
extern PHP_DRIVER_API zend_class_entry *php_driver_default_table_ce;
 
669
extern PHP_DRIVER_API zend_class_entry *php_driver_column_ce;
 
670
extern PHP_DRIVER_API zend_class_entry *php_driver_default_column_ce;
 
671
extern PHP_DRIVER_API zend_class_entry *php_driver_index_ce;
 
672
extern PHP_DRIVER_API zend_class_entry *php_driver_default_index_ce;
 
673
extern PHP_DRIVER_API zend_class_entry *php_driver_materialized_view_ce;
 
674
extern PHP_DRIVER_API zend_class_entry *php_driver_default_materialized_view_ce;
 
675
extern PHP_DRIVER_API zend_class_entry *php_driver_function_ce;
 
676
extern PHP_DRIVER_API zend_class_entry *php_driver_default_function_ce;
 
677
extern PHP_DRIVER_API zend_class_entry *php_driver_aggregate_ce;
 
678
extern PHP_DRIVER_API zend_class_entry *php_driver_default_aggregate_ce;
 
679
 
 
680
void php_driver_define_Schema(TSRMLS_D);
 
681
void php_driver_define_DefaultSchema(TSRMLS_D);
 
682
void php_driver_define_Keyspace(TSRMLS_D);
 
683
void php_driver_define_DefaultKeyspace(TSRMLS_D);
 
684
void php_driver_define_Table(TSRMLS_D);
 
685
void php_driver_define_DefaultTable(TSRMLS_D);
 
686
void php_driver_define_Column(TSRMLS_D);
 
687
void php_driver_define_DefaultColumn(TSRMLS_D);
 
688
void php_driver_define_Index(TSRMLS_D);
 
689
void php_driver_define_DefaultIndex(TSRMLS_D);
 
690
void php_driver_define_MaterializedView(TSRMLS_D);
 
691
void php_driver_define_DefaultMaterializedView(TSRMLS_D);
 
692
void php_driver_define_Function(TSRMLS_D);
 
693
void php_driver_define_DefaultFunction(TSRMLS_D);
 
694
void php_driver_define_Aggregate(TSRMLS_D);
 
695
void php_driver_define_DefaultAggregate(TSRMLS_D);
 
696
 
 
697
extern PHP_DRIVER_API zend_class_entry *php_driver_type_ce;
 
698
extern PHP_DRIVER_API zend_class_entry *php_driver_type_scalar_ce;
 
699
extern PHP_DRIVER_API zend_class_entry *php_driver_type_collection_ce;
 
700
extern PHP_DRIVER_API zend_class_entry *php_driver_type_set_ce;
 
701
extern PHP_DRIVER_API zend_class_entry *php_driver_type_map_ce;
 
702
extern PHP_DRIVER_API zend_class_entry *php_driver_type_tuple_ce;
 
703
extern PHP_DRIVER_API zend_class_entry *php_driver_type_user_type_ce;
 
704
extern PHP_DRIVER_API zend_class_entry *php_driver_type_custom_ce;
 
705
 
 
706
void php_driver_define_Type(TSRMLS_D);
 
707
void php_driver_define_TypeScalar(TSRMLS_D);
 
708
void php_driver_define_TypeCollection(TSRMLS_D);
 
709
void php_driver_define_TypeSet(TSRMLS_D);
 
710
void php_driver_define_TypeMap(TSRMLS_D);
 
711
void php_driver_define_TypeTuple(TSRMLS_D);
 
712
void php_driver_define_TypeUserType(TSRMLS_D);
 
713
void php_driver_define_TypeCustom(TSRMLS_D);
 
714
 
 
715
extern PHP_DRIVER_API zend_class_entry *php_driver_retry_policy_ce;
 
716
extern PHP_DRIVER_API zend_class_entry *php_driver_retry_policy_default_ce;
 
717
extern PHP_DRIVER_API zend_class_entry *php_driver_retry_policy_downgrading_consistency_ce;
 
718
extern PHP_DRIVER_API zend_class_entry *php_driver_retry_policy_fallthrough_ce;
 
719
extern PHP_DRIVER_API zend_class_entry *php_driver_retry_policy_logging_ce;
 
720
 
 
721
void php_driver_define_RetryPolicy(TSRMLS_D);
 
722
void php_driver_define_RetryPolicyDefault(TSRMLS_D);
 
723
void php_driver_define_RetryPolicyDowngradingConsistency(TSRMLS_D);
 
724
void php_driver_define_RetryPolicyFallthrough(TSRMLS_D);
 
725
void php_driver_define_RetryPolicyLogging(TSRMLS_D);
 
726
 
 
727
extern PHP_DRIVER_API zend_class_entry *php_driver_timestamp_gen_ce;
 
728
extern PHP_DRIVER_API zend_class_entry *php_driver_timestamp_gen_monotonic_ce;
 
729
extern PHP_DRIVER_API zend_class_entry *php_driver_timestamp_gen_server_side_ce;
 
730
 
 
731
void php_driver_define_TimestampGenerator(TSRMLS_D);
 
732
void php_driver_define_TimestampGeneratorMonotonic(TSRMLS_D);
 
733
void php_driver_define_TimestampGeneratorServerSide(TSRMLS_D);
 
734
 
 
735
extern int php_le_php_driver_cluster();
 
736
extern int php_le_php_driver_session();
 
737
 
 
738
#endif /* PHP_DRIVER_TYPES_H */