X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=html%2Fphp__raphf_8c.html;fp=html%2Fphp__raphf_8c.html;h=0000000000000000000000000000000000000000;hb=2bc39f5c43ada90ec138c77406af2cb4205e7864;hp=653292b5ba7f17cfbc47fdcdcb51ed35844f1428;hpb=81a621e4317ff8dca39d22e91e8a26d1d2cf89cc;p=m6w6%2Fext-raphf diff --git a/html/php__raphf_8c.html b/html/php__raphf_8c.html deleted file mode 100644 index 653292b..0000000 --- a/html/php__raphf_8c.html +++ /dev/null @@ -1,956 +0,0 @@ - - - - - - -Resource and persistent handle factory API: php_raphf.c File Reference - - - - - - - - - -
-
- - - - - - - -
-
Resource and persistent handle factory API -
-
A facility to manage possibly persistent resources with a comprehensible API. Provides simliar functionality like the zend_list API, but with more flexiblity and freedom.
-
-
- - - - - - -
- All Data Structures Files Functions Variables Typedefs Macros
- - -
- -
- -
-
-
-Macros | -Typedefs | -Functions | -Variables
-
-
php_raphf.c File Reference
-
-
-
#include "php.h"
-#include "php_ini.h"
-#include "ext/standard/info.h"
-#include "php_raphf.h"
-
- - - - - -

-Macros

#define PHP_RAPHF_G   (&raphf_globals)
 
#define PHP_RAPHF_DEBUG_PHANDLES   0
 
- - - -

-Typedefs

typedef int STATUS
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

php_resource_factory_tphp_resource_factory_init (php_resource_factory_t *f, php_resource_factory_ops_t *fops, void *data, void(*dtor)(void *data))
 Initialize a resource factory. More...
 
unsigned php_resource_factory_addref (php_resource_factory_t *rf)
 Increase the refcount of the resource factory. More...
 
void php_resource_factory_dtor (php_resource_factory_t *f)
 Destroy the resource factory. More...
 
void php_resource_factory_free (php_resource_factory_t **f)
 Destroy and free the resource factory. More...
 
void * php_resource_factory_handle_ctor (php_resource_factory_t *f, void *init_arg)
 Construct a resource by the resource factory f. More...
 
void * php_resource_factory_handle_copy (php_resource_factory_t *f, void *handle)
 Create a copy of the resource handle. More...
 
void php_resource_factory_handle_dtor (php_resource_factory_t *f, void *handle)
 Destroy (and free) the resource. More...
 
PHP_RAPHF_API STATUS php_persistent_handle_provide (const char *name_str, size_t name_len, php_resource_factory_ops_t *fops, void *data, void(*dtor)(void *))
 Register a persistent handle provider in MINIT. More...
 
php_persistent_handle_factory_tphp_persistent_handle_concede (php_persistent_handle_factory_t *a, const char *name_str, size_t name_len, const char *ident_str, size_t ident_len, php_persistent_handle_wakeup_t wakeup, php_persistent_handle_retire_t retire)
 Retrieve a persistent handle factory at runtime. More...
 
PHP_RAPHF_API void php_persistent_handle_abandon (php_persistent_handle_factory_t *a)
 Abandon the persistent handle factory. More...
 
void * php_persistent_handle_acquire (php_persistent_handle_factory_t *a, void *init_arg)
 Acquire a persistent handle. More...
 
void * php_persistent_handle_accrete (php_persistent_handle_factory_t *a, void *handle)
 
void php_persistent_handle_release (php_persistent_handle_factory_t *a, void *handle)
 Release a persistent handle. More...
 
void php_persistent_handle_cleanup (const char *name_str, size_t name_len, const char *ident_str, size_t ident_len)
 
HashTable * php_persistent_handle_statall (HashTable *ht)
 
php_resource_factory_ops_tphp_persistent_handle_get_resource_factory_ops (void)
 
 ZEND_END_ARG_INFO ()
 
 STD_PHP_INI_ENTRY ("raphf.persistent_handle.limit","-1", PHP_INI_SYSTEM, OnUpdateLong, persistent_handle.limit, zend_raphf_globals, raphf_globals) static HashTable *php_persistent_handles_global_hash
 
 PHP_MINIT_FUNCTION (raphf)
 
 PHP_MSHUTDOWN_FUNCTION (raphf)
 
 PHP_MINFO_FUNCTION (raphf)
 
- - - - - -

-Variables

struct
-php_persistent_handle_globals 
persistent_handle
 
zend_module_entry raphf_module_entry
 
-

Macro Definition Documentation

- -
-
- - - - -
#define PHP_RAPHF_DEBUG_PHANDLES   0
-
- -
-
- -
-
- - - - -
#define PHP_RAPHF_G   (&raphf_globals)
-
-
-

Typedef Documentation

- -
-
- - - - -
typedef int STATUS
-
- -
-
-

Function Documentation

- -
-
- - - - - - - - -
PHP_MINFO_FUNCTION (raphf )
-
- -
-
- -
-
- - - - - - - - -
PHP_MINIT_FUNCTION (raphf )
-
- -
-
- -
-
- - - - - - - - -
PHP_MSHUTDOWN_FUNCTION (raphf )
-
- -
-
- -
-
- - - - - - - - -
PHP_RAPHF_API void php_persistent_handle_abandon (php_persistent_handle_factory_ta)
-
- -

Abandon the persistent handle factory.

-

Destroy a php_persistent_handle_factory created by php_persistent_handle_concede(). If the memory for the factory was allocated, it will automatically be free'd.

-
Parameters
- - -
athe persistent handle factory to destroy
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void* php_persistent_handle_accrete (php_persistent_handle_factory_ta,
void * handle 
)
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void* php_persistent_handle_acquire (php_persistent_handle_factory_ta,
void * init_arg 
)
-
- -

Acquire a persistent handle.

-

That is, either re-use a resource from the free list or create a new handle.

-

If a handle is acquired from the free list, the php_persistent_handle_wakeup() callback attached to this persistent handle factory is executed for that handle.

-
Parameters
- - - -
athe persistent handle factory
init_argthe init_arg for php_resource_factory_handle_ctor()
-
-
-
Returns
the acquired resource
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void php_persistent_handle_cleanup (const char * name_str,
size_t name_len,
const char * ident_str,
size_t ident_len 
)
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
php_persistent_handle_factory_t* php_persistent_handle_concede (php_persistent_handle_factory_ta,
const char * name_str,
size_t name_len,
const char * ident_str,
size_t ident_len,
php_persistent_handle_wakeup_t wakeup,
php_persistent_handle_retire_t retire 
)
-
- -

Retrieve a persistent handle factory at runtime.

-

If a persistent handle provider has been registered for name_str, a new php_persistent_handle_factory creating resources in the ident_str namespace will be constructed.

-

The wakeup routine wakeup and the retire routine retire will be assigned to the new php_persistent_handle_factory.

-
Parameters
- - - - - - - - -
apointer to a factory; allocated on the heap if NULL
name_strthe provider name, e.g. "http\Client\Curl"
name_lenthe provider name length, e.g. strlen("http\Client\Curl")
ident_strthe subsidiary namespace, e.g. "php.net:80"
ident_lenthe subsidiary namespace lenght, e.g. strlen("php.net:80")
wakeupany persistent handle wakeup routine
retireany persistent handle retire routine
-
-
-
Returns
a or an allocated persistent handle factory
- -
-
- -
-
- - - - - - - - -
php_resource_factory_ops_t* php_persistent_handle_get_resource_factory_ops (void )
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PHP_RAPHF_API STATUS php_persistent_handle_provide (const char * name_str,
size_t name_len,
php_resource_factory_ops_tfops,
void * data,
void(*)(void *) dtor 
)
-
- -

Register a persistent handle provider in MINIT.

-

Registers a factory provider for name_str with fops resource factory ops. Call this in your MINIT.

-

A php_resource_factory will be created with fops, data and dtor and will be stored together with a php_persistent_handle_list in the global raphf hash.

-

A php_persistent_handle_factory can then be retrieved by php_persistent_handle_concede() at runtime.

-
Parameters
- - - - - - -
name_strthe provider name, e.g. "http\Client\Curl"
name_lenthe provider name length, e.g. strlen("http\Client\Curl")
fopsthe resource factory ops
dataopaque user data
dtordata destructor
-
-
-
Returns
SUCCESS/FAILURE
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void php_persistent_handle_release (php_persistent_handle_factory_ta,
void * handle 
)
-
- -

Release a persistent handle.

-

That is, either put it back into the free list for later re-use or clean it up with php_resource_factory_handle_dtor().

-

If a handle is put back into the free list, the php_persistent_handle_retire() callback attached to this persistent handle factory is executed for that handle.

-
Parameters
- - - -
athe persistent handle factory
handlethe handle to release
-
-
- -
-
- -
-
- - - - - - - - -
HashTable* php_persistent_handle_statall (HashTable * ht)
-
- -
-
- -
-
- - - - - - - - -
unsigned php_resource_factory_addref (php_resource_factory_trf)
-
- -

Increase the refcount of the resource factory.

-
Parameters
- - -
rfthe resource factory
-
-
-
Returns
the new refcount
- -
-
- -
-
- - - - - - - - -
void php_resource_factory_dtor (php_resource_factory_tf)
-
- -

Destroy the resource factory.

-

If the factory's refcount reaches 0, the dtor for data is called.

-
Parameters
- - -
fthe resource factory
-
-
- -

Referenced by php_persistent_handle_provide(), and php_resource_factory_free().

- -
-
- -
-
- - - - - - - - -
void php_resource_factory_free (php_resource_factory_t ** f)
-
- -

Destroy and free the resource factory.

-

Calls php_resource_factory_dtor() and frees \æ f if the factory's refcount reached 0.

-
Parameters
- - -
fthe resource factory
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void* php_resource_factory_handle_copy (php_resource_factory_tf,
void * handle 
)
-
- -

Create a copy of the resource handle.

-
Parameters
- - - -
fthe resource factory
handlethe resource to copy
-
-
-
Returns
the copy
- -

Referenced by php_persistent_handle_accrete().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void* php_resource_factory_handle_ctor (php_resource_factory_tf,
void * init_arg 
)
-
- -

Construct a resource by the resource factory f.

-
Parameters
- - - -
fthe resource factory
init_argfor the resource constructor
-
-
-
Returns
the new resource
- -

Referenced by php_persistent_handle_acquire().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void php_resource_factory_handle_dtor (php_resource_factory_tf,
void * handle 
)
-
- -

Destroy (and free) the resource.

-
Parameters
- - - -
fthe resource factory
handlethe resource to destroy
-
-
- -

Referenced by php_persistent_handle_release().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
php_resource_factory_t* php_resource_factory_init (php_resource_factory_tf,
php_resource_factory_ops_tfops,
void * data,
void(*)(void *data) dtor 
)
-
- -

Initialize a resource factory.

-

Usually called by php_http_persistent_handle_provide().

-
Parameters
- - - - - -
fthe factory to initialize; if NULL allocated on the heap
fopsthe resource ops to assign to the factory
dataopaque user data; may be NULL
dtora destructor for the data; may be NULL
-
-
-
Returns
f or an allocated resource factory
- -

Referenced by php_persistent_handle_provide().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STD_PHP_INI_ENTRY ("raphf.persistent_handle.limit" ,
"-1" ,
PHP_INI_SYSTEM ,
OnUpdateLong ,
persistent_handle. limit,
zend_raphf_globals ,
raphf_globals  
)
-
- -
-
- -
-
- - - - - - - -
ZEND_END_ARG_INFO ()
-
- -
-
-

Variable Documentation

- -
-
- - - - -
struct php_persistent_handle_globals persistent_handle
-
- -
-
- -
-
- - - - -
zend_module_entry raphf_module_entry
-
-Initial value:
= {
-
STANDARD_MODULE_HEADER,
-
"raphf",
-
raphf_functions,
-
PHP_MINIT(raphf),
-
PHP_MSHUTDOWN(raphf),
-
NULL,
-
NULL,
-
PHP_MINFO(raphf),
-
PHP_RAPHF_VERSION,
-
ZEND_MODULE_GLOBALS(raphf),
-
PHP_GINIT(raphf),
-
PHP_GSHUTDOWN(raphf),
-
NULL,
-
STANDARD_MODULE_PROPERTIES_EX
-
}
-
-
-
-
- - - -