resource.h
const fiftyoneDegreesResourceManager * manager
Pointer to the manager the handle relates to.
Definition: resource.h:153
const void * resource
Pointer to the resource being managed.
Definition: resource.h:152
EXTERNAL 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.
Definition: resource.c:64
EXTERNAL fiftyoneDegreesResourceHandle * fiftyoneDegreesResourceHandleIncUse(fiftyoneDegreesResourceManager *manager)
Increments the usage counter for the resource and returns a handle that can be used to reference it.
Definition: resource.c:102
EXTERNAL void fiftyoneDegreesResourceReplace(fiftyoneDegreesResourceManager *manager, void *newResource, fiftyoneDegreesResourceHandle **newResourceHandle)
Replaces the resource with the new resource.
Definition: resource.c:120
Tracks the number of active uses of the resource within the manager.
Definition: resource.h:151
volatile long inUse
Tracks active use count of the resource.
Definition: resource.h:157
EXTERNAL void fiftyoneDegreesResourceHandleDecUse(fiftyoneDegreesResourceHandle *handle)
Decrements the usage counter.
Definition: resource.c:86
EXTERNAL void fiftyoneDegreesResourceManagerFree(fiftyoneDegreesResourceManager *manager)
Frees any data associated with the manager and releases the resource making it eligible for freeing.
Definition: resource.c:75
Manager structure used to provide access to a shared and changing resource.
Definition: resource.h:163
fiftyoneDegreesResourceHandle volatile * active
Current handle for resource used by the manager.
Definition: resource.h:165
