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 #include "php_http_api.h"
15 PHP_HTTP_API php_http_resource_factory_t
*php_http_resource_factory_init(php_http_resource_factory_t
*f
, php_http_resource_factory_ops_t
*fops
, void *data
, void (*dtor
)(void *data
))
18 f
= emalloc(sizeof(*f
));
20 memset(f
, 0, sizeof(*f
));
22 memcpy(&f
->fops
, fops
, sizeof(*fops
));
32 PHP_HTTP_API
unsigned php_http_resource_factory_addref(php_http_resource_factory_t
*rf
)
34 return ++rf
->refcount
;
37 PHP_HTTP_API
void php_http_resource_factory_dtor(php_http_resource_factory_t
*f
)
48 PHP_HTTP_API
void php_http_resource_factory_free(php_http_resource_factory_t
**f
)
51 php_http_resource_factory_dtor(*f
);
52 if (!(*f
)->refcount
) {
59 PHP_HTTP_API
void *php_http_resource_factory_handle_ctor(php_http_resource_factory_t
*f TSRMLS_DC
)
62 return f
->fops
.ctor(f
->data TSRMLS_CC
);
67 PHP_HTTP_API
void *php_http_resource_factory_handle_copy(php_http_resource_factory_t
*f
, void *handle TSRMLS_DC
)
70 return f
->fops
.copy(f
->data
, handle TSRMLS_CC
);
75 PHP_HTTP_API
void php_http_resource_factory_handle_dtor(php_http_resource_factory_t
*f
, void *handle TSRMLS_DC
)
78 f
->fops
.dtor(f
->data
, handle TSRMLS_CC
);
87 * vim600: noet sw=4 ts=4 fdm=marker
88 * vim<600: noet sw=4 ts=4