diff -r fd5765c5068c -r f210681d9dd0 src/server/daemon/resourcepool.h --- a/src/server/daemon/resourcepool.h Tue Jan 25 17:45:56 2022 +0100 +++ b/src/server/daemon/resourcepool.h Thu Jan 27 15:47:18 2022 +0100 @@ -39,13 +39,18 @@ extern "C" { #endif -typedef struct ResourcePool ResourcePool; typedef struct ResourceDataPrivate ResourceDataPrivate; struct ResourceDataPrivate { ResourceData data; - Request *rq; - ResourceType *type; + + /* + * the void* pointer returned by respool->type->createresource + * + * ResourceData.data contains the pointer returned by + * respool->type->getresourcedata(resdata)) + */ + void *resdata; }; struct ResourcePool { @@ -75,7 +80,7 @@ * Array of available resources * each entry is created with ResourceType.createresource */ - void **resources; + ResourceDataPrivate **resources; /* * Allocated size of the resources array @@ -87,6 +92,12 @@ */ size_t numresources; + + /* + * Number of created resources (in use + available) + */ + size_t numcreated; + /* * resource pool min parameter */ @@ -102,7 +113,7 @@ int resourcepool_new(ServerConfiguration *cfg, scstr_t type, scstr_t name, ConfigNode *node); -int resourcepool_create_resources(ResourcePool *pool, int num_res); +void resourcepool_destroy_resource(ResourceDataPrivate *res); void resourcepool_destroy(ResourcePool *respool);