Fix php_http_message.c:136:14: warning: comparison between 'enum <anonymous>' and...
[m6w6/ext-http] / php_http_persistent_handle.h
index 075fe9295636a51275f64e3f52ccff02360711ac..b94cafe70e15556454e952889e9f4a1678810a6d 100644 (file)
@@ -6,18 +6,23 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2011, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
-/* $Id: php_http_persistent_handle_api.h 292841 2009-12-31 08:48:57Z mike $ */
-
 #ifndef PHP_HTTP_PERSISTENT_HANDLE_H
 #define PHP_HTTP_PERSISTENT_HANDLE_H
 
-typedef void *(*php_http_persistent_handle_ctor_t)(void);
-typedef void (*php_http_persistent_handle_dtor_t)(void *handle);
-typedef void *(*php_http_persistent_handle_copy_t)(void *handle);
+typedef struct php_http_persistent_handle_factory {
+       void *provider;
+
+       struct {
+               char *str;
+               size_t len;
+       } ident;
+
+       unsigned free_on_abandon:1;
+} php_http_persistent_handle_factory_t;
 
 struct php_http_persistent_handle_globals {
        ulong limit;
@@ -31,12 +36,17 @@ struct php_http_persistent_handle_globals {
 PHP_MINIT_FUNCTION(http_persistent_handle);
 PHP_MSHUTDOWN_FUNCTION(http_persistent_handle);
 
-PHP_HTTP_API STATUS php_http_persistent_handle_provide(const char *name_str, size_t name_len, php_http_persistent_handle_ctor_t ctor, php_http_persistent_handle_dtor_t dtor, php_http_persistent_handle_copy_t copy);
-PHP_HTTP_API void php_http_persistent_handle_cleanup(const char *name_str, size_t name_len, int current_ident_only TSRMLS_DC);
+PHP_HTTP_API STATUS php_http_persistent_handle_provide(const char *name_str, size_t name_len, php_http_resource_factory_ops_t *fops, void *data, void (*dtor)(void *));
+PHP_HTTP_API php_http_persistent_handle_factory_t *php_http_persistent_handle_concede(php_http_persistent_handle_factory_t *a, const char *name_str, size_t name_len, const char *ident_str, size_t ident_len TSRMLS_DC);
+PHP_HTTP_API void php_http_persistent_handle_abandon(php_http_persistent_handle_factory_t *a);
+PHP_HTTP_API void *php_http_persistent_handle_acquire(php_http_persistent_handle_factory_t *a TSRMLS_DC);
+PHP_HTTP_API void php_http_persistent_handle_release(php_http_persistent_handle_factory_t *a, void *handle TSRMLS_DC);
+PHP_HTTP_API void *php_http_persistent_handle_accrete(php_http_persistent_handle_factory_t *a, void *handle TSRMLS_DC);
+
+PHP_HTTP_API php_http_resource_factory_ops_t *php_http_persistent_handle_resource_factory_ops(void);
+
+PHP_HTTP_API void php_http_persistent_handle_cleanup(const char *name_str, size_t name_len, const char *ident_str, size_t ident_len TSRMLS_DC);
 PHP_HTTP_API HashTable *php_http_persistent_handle_statall(HashTable *ht TSRMLS_DC);
-PHP_HTTP_API STATUS php_http_persistent_handle_acquire(const char *name_str, size_t name_len, void **handle TSRMLS_DC);
-PHP_HTTP_API STATUS php_http_persistent_handle_release(const char *name_str, size_t name_len, void **handle TSRMLS_DC);
-PHP_HTTP_API STATUS php_http_persistent_handle_accrete(const char *name_str, size_t name_len, void *old_handle, void **new_handle TSRMLS_DC);
 
 #endif /* PHP_HTTP_PERSISTENT_HANDLE_H */