1 #ifndef PHP_HTTP_REQUEST_DATASHARE_H
2 #define PHP_HTTP_REQUEST_DATASHARE_H
7 typedef struct php_http_request_datashare_lock
{
10 } php_http_request_datashare_lock_t
;
13 typedef union php_http_request_datashare_handle
{
16 php_http_request_datashare_lock_t
*locks
;
18 } php_http_request_datashare_handle_t
;
20 typedef struct php_http_request_datashare_t
{
22 php_http_request_datashare_handle_t handle
;
23 unsigned persistent
:1;
27 } php_http_request_datashare_t
;
29 struct php_http_request_datashare_globals
{
37 #define PHP_HTTP_RSHARE_HANDLES(s) ((s)->persistent ? &PHP_HTTP_G->request_datashare.handles : (s)->handle.list)
39 extern php_http_request_datashare_t
*php_http_request_datashare_global_get(void);
41 extern PHP_MINIT_FUNCTION(http_request_datashare
);
42 extern PHP_MSHUTDOWN_FUNCTION(http_request_datashare
);
43 extern PHP_RINIT_FUNCTION(http_request_datashare
);
44 extern PHP_RSHUTDOWN_FUNCTION(http_request_datashare
);
46 PHP_HTTP_API php_http_request_datashare_t
*php_http_request_datashare_init(php_http_request_datashare_t
*share
, zend_bool persistent TSRMLS_DC
);
47 PHP_HTTP_API STATUS
php_http_request_datashare_attach(php_http_request_datashare_t
*share
, zval
*request
);
48 PHP_HTTP_API STATUS
php_http_request_datashare_detach(php_http_request_datashare_t
*share
, zval
*request
);
49 PHP_HTTP_API
void php_http_request_datashare_detach_all(php_http_request_datashare_t
*share
);
50 PHP_HTTP_API
void php_http_request_datashare_dtor(php_http_request_datashare_t
*share
);
51 PHP_HTTP_API
void php_http_request_datashare_free(php_http_request_datashare_t
**share
);
52 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
);
54 typedef struct php_http_request_datashare_object
{
56 php_http_request_datashare_t
*share
;
57 } php_http_request_datashare_object_t
;
59 extern zend_class_entry
*php_http_request_datashare_class_entry
;
60 extern zend_function_entry php_http_request_datashare_method_entry
[];
62 extern zend_object_value
php_http_request_datashare_object_new(zend_class_entry
*ce TSRMLS_DC
);
63 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
);
64 extern void php_http_request_datashare_object_free(void *object TSRMLS_DC
);
66 PHP_METHOD(HttpRequestDataShare
, __destruct
);
67 PHP_METHOD(HttpRequestDataShare
, count
);
68 PHP_METHOD(HttpRequestDataShare
, attach
);
69 PHP_METHOD(HttpRequestDataShare
, detach
);
70 PHP_METHOD(HttpRequestDataShare
, reset
);
71 PHP_METHOD(HttpRequestDataShare
, getGlobalInstance
);
73 #endif /* PHP_HTTP_REQUEST_DATASHARE_H */