2 +--------------------------------------------------------------------+
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted provided that the conditions mentioned |
7 | in the accompanying LICENSE file are met. |
8 +--------------------------------------------------------------------+
9 | Copyright (c) 2004-2011, Michael Wallner <mike@php.net> |
10 +--------------------------------------------------------------------+
13 #ifndef PHP_HTTP_CLIENT_DATASHARE_H
14 #define PHP_HTTP_CLIENT_DATASHARE_H
16 typedef enum php_http_client_datashare_setopt_opt
{
17 PHP_HTTP_CLIENT_DATASHARE_OPT_COOKIES
,
18 PHP_HTTP_CLIENT_DATASHARE_OPT_RESOLVER
,
19 PHP_HTTP_CLIENT_DATASHARE_OPT_SSLSESSIONS
,
20 } php_http_client_datashare_setopt_opt_t
;
22 typedef struct php_http_client_datashare
*(*php_http_client_datashare_init_func_t
)(struct php_http_client_datashare
*h
, void *init_arg
);
23 typedef struct php_http_client_datashare
*(*php_http_client_datashare_copy_func_t
)(struct php_http_client_datashare
*from
, struct php_http_client_datashare
*to
);
24 typedef void (*php_http_client_datashare_dtor_func_t
)(struct php_http_client_datashare
*h
);
25 typedef void (*php_http_client_datashare_reset_func_t
)(struct php_http_client_datashare
*h
);
26 typedef STATUS (*php_http_client_datashare_attach_func_t
)(struct php_http_client_datashare
*h
, php_http_client_t
*client
);
27 typedef STATUS (*php_http_client_datashare_detach_func_t
)(struct php_http_client_datashare
*h
, php_http_client_t
*client
);
28 typedef STATUS (*php_http_client_datashare_setopt_func_t
)(struct php_http_client_datashare
*h
, php_http_client_datashare_setopt_opt_t opt
, void *arg
);
30 typedef struct php_http_client_datashare_ops
{
31 php_http_resource_factory_ops_t
*rsrc
;
32 php_http_client_datashare_init_func_t init
;
33 php_http_client_datashare_copy_func_t copy
;
34 php_http_client_datashare_dtor_func_t dtor
;
35 php_http_client_datashare_reset_func_t reset
;
36 php_http_client_datashare_attach_func_t attach
;
37 php_http_client_datashare_detach_func_t detach
;
38 php_http_client_datashare_setopt_func_t setopt
;
39 php_http_new_t create_object
;
40 zend_class_entry
*(*class_entry
)(void);
41 } php_http_client_datashare_ops_t
;
43 typedef struct php_http_client_datashare
{
45 php_http_resource_factory_t
*rf
;
46 php_http_client_datashare_ops_t
*ops
;
51 } php_http_client_datashare_t
;
53 PHP_MINIT_FUNCTION(http_client_datashare
);
55 PHP_HTTP_API php_http_client_datashare_t
*php_http_client_datashare_init(php_http_client_datashare_t
*h
, php_http_client_datashare_ops_t
*ops
, php_http_resource_factory_t
*rf
, void *init_arg TSRMLS_DC
);
56 PHP_HTTP_API php_http_client_datashare_t
*php_http_client_datashare_copy(php_http_client_datashare_t
*from
, php_http_client_datashare_t
*to
);
57 PHP_HTTP_API
void php_http_client_datashare_dtor(php_http_client_datashare_t
*h
);
58 PHP_HTTP_API
void php_http_client_datashare_free(php_http_client_datashare_t
**h
);
59 PHP_HTTP_API STATUS
php_http_client_datashare_attach(php_http_client_datashare_t
*h
, zval
*client
);
60 PHP_HTTP_API STATUS
php_http_client_datashare_detach(php_http_client_datashare_t
*h
, zval
*client
);
61 PHP_HTTP_API STATUS
php_http_client_datashare_setopt(php_http_client_datashare_t
*h
, php_http_client_datashare_setopt_opt_t opt
, void *arg
);
62 PHP_HTTP_API
void php_http_client_datashare_reset(php_http_client_datashare_t
*h
);
64 typedef struct php_http_client_datashare_object
{
66 php_http_client_datashare_t
*share
;
67 } php_http_client_datashare_object_t
;
69 zend_object_value
php_http_client_datashare_object_new(zend_class_entry
*ce TSRMLS_DC
);
70 zend_object_value
php_http_client_datashare_object_new_ex(zend_class_entry
*ce
, php_http_client_datashare_t
*share
, php_http_client_datashare_object_t
**ptr TSRMLS_DC
);
71 void php_http_client_datashare_object_free(void *object TSRMLS_DC
);
73 zend_class_entry
*php_http_client_datashare_get_class_entry();
74 zend_object_handlers
*php_http_client_datashare_get_object_handlers(void);
76 PHP_METHOD(HttpClientDataShare
, __destruct
);
77 PHP_METHOD(HttpClientDataShare
, count
);
78 PHP_METHOD(HttpClientDataShare
, attach
);
79 PHP_METHOD(HttpClientDataShare
, detach
);
80 PHP_METHOD(HttpClientDataShare
, reset
);
82 #endif /* PHP_HTTP_CLIENT_DATASHARE_H */
89 * vim600: noet sw=4 ts=4 fdm=marker
90 * vim<600: noet sw=4 ts=4