resource.h
const fiftyoneDegreesResourceManager * manager
Pointer to the manager the handle relates to.
Definition: resource.h:179
fiftyoneDegreesResourceHandleCounter counter
Tracks active use count of the resource.
Definition: resource.h:176
const void * resource
Pointer to the resource being managed.
Definition: resource.h:178
void fiftyoneDegreesResourceReplace(fiftyoneDegreesResourceManager *manager, void *newResource, fiftyoneDegreesResourceHandle **newResourceHandle)
Replaces the resource with the new resource.
int32_t inUse
Active use count of the resource.
Definition: resource.h:164
void fiftyoneDegreesResourceHandleDecUse(fiftyoneDegreesResourceHandle *handle)
Decrements the usage counter.
void fiftyoneDegreesResourceManagerFree(fiftyoneDegreesResourceManager *manager)
Frees any data associated with the manager and releases the resource making it eligible for freeing.
Tracks the number of active uses of the resource within the manager.
Definition: resource.h:174
Manager structure used to provide access to a shared and changing resource.
Definition: resource.h:188
Contains the number of active uses of the resource.
Definition: resource.h:163
fiftyoneDegreesResourceHandle * fiftyoneDegreesResourceHandleIncUse(fiftyoneDegreesResourceManager *manager)
Increments the usage counter for the resource and returns a handle that can be used to reference it.
void fiftyoneDegreesResourceManagerInit(fiftyoneDegreesResourceManager *manager, void *resource, fiftyoneDegreesResourceHandle **resourceHandle, void(*freeResource)(void *))
Initialise a preallocated resource manager structure with a resource for it to manage access to.
void * padding
Pads the union to the size of a pointer.
Definition: resource.h:165
fiftyoneDegreesResourceHandle volatile * active
Current handle for resource used by the manager.
Definition: resource.h:190