1 #ifndef PHP_HTTP_REQUEST_DATASHARE_H
2 #define PHP_HTTP_REQUEST_DATASHARE_H
5 typedef struct php_http_request_datashare_lock
{
8 } php_http_request_datashare_lock_t
;
11 typedef union php_http_request_datashare_handle
{
14 php_http_request_datashare_lock_t
*locks
;
16 } php_http_request_datashare_handle_t
;
18 typedef struct php_http_request_datashare_t
{
20 php_http_request_datashare_handle_t handle
;
21 unsigned persistent
:1;
25 } php_http_request_datashare_t
;
27 struct php_http_request_datashare_globals
{
35 #define PHP_HTTP_RSHARE_HANDLES(s) ((s)->persistent ? &PHP_HTTP_G->request_datashare.handles : (s)->handle.list)
37 extern php_http_request_datashare_t
*php_http_request_datashare_global_get(void);
39 extern PHP_MINIT_FUNCTION(http_request_datashare
);
40 extern PHP_MSHUTDOWN_FUNCTION(http_request_datashare
);
41 extern PHP_RINIT_FUNCTION(http_request_datashare
);
42 extern PHP_RSHUTDOWN_FUNCTION(http_request_datashare
);
44 PHP_HTTP_API php_http_request_datashare_t
*php_http_request_datashare_init(php_http_request_datashare_t
*share
, zend_bool persistent TSRMLS_DC
);
45 PHP_HTTP_API STATUS
php_http_request_datashare_attach(php_http_request_datashare_t
*share
, zval
*request
);
46 PHP_HTTP_API STATUS
php_http_request_datashare_detach(php_http_request_datashare_t
*share
, zval
*request
);
47 PHP_HTTP_API
void php_http_request_datashare_detach_all(php_http_request_datashare_t
*share
);
48 PHP_HTTP_API
void php_http_request_datashare_dtor(php_http_request_datashare_t
*share
);
49 PHP_HTTP_API
void php_http_request_datashare_free(php_http_request_datashare_t
**share
);
50 PHP_HTTP_API STATUS
php_http_request_datashare_set(php_http_request_datashare_t
*share
, const char *option
, size_t option_len
, zend_bool enable
);
52 typedef struct php_http_request_datashare_object
{
54 php_http_request_datashare_t
*share
;
55 } php_http_request_datashare_object_t
;
57 extern zend_class_entry
*php_http_request_datashare_class_entry
;
58 extern zend_function_entry php_http_request_datashare_method_entry
[];
60 extern zend_object_value
php_http_request_datashare_object_new(zend_class_entry
*ce TSRMLS_DC
);
61 extern zend_object_value
php_http_request_datashare_object_new_ex(zend_class_entry
*ce
, php_http_request_datashare_t
*share
, php_http_request_datashare_object_t
**ptr TSRMLS_DC
);
62 extern void php_http_request_datashare_object_free(void *object TSRMLS_DC
);
64 PHP_METHOD(HttpRequestDataShare
, __destruct
);
65 PHP_METHOD(HttpRequestDataShare
, count
);
66 PHP_METHOD(HttpRequestDataShare
, attach
);
67 PHP_METHOD(HttpRequestDataShare
, detach
);
68 PHP_METHOD(HttpRequestDataShare
, reset
);
69 PHP_METHOD(HttpRequestDataShare
, getGlobalInstance
);
71 #endif /* PHP_HTTP_REQUEST_DATASHARE_H */