resource (3I)
NAME
Resource - shared objectSYNOPSIS
#include <InterViews/resource.h>DESCRIPTION
Resource is a class that provides a simple form of reference counting for shared objects. Every resource has a reference count that is initially set to zero and must be explicitly incremented through a call to Reference. A resource should not be deleted like other objects; instead, the static member function unref should be used to unreference the object.When a resource is unreferenced, the reference count is decremented unless it is already zero. If the count is zero, the object is destroyed.
PUBLIC OPERATIONS
- Resource()
- Create a new resource object with its reference count set to zero.
- void ref()
- Increment the resource's reference count.
- void unref()
- Decrement the resource's reference count, if it is positive, and delete this if the count is zero.
- static void ref(Resource*)
- If the resource is not nil, call ref on it. Otherwise do nothing.
- static void unref(Resource*)
- If the resource is not nil, call unref on it. Otherwise do nothing.
- void Reference()
- This function is equivalent to ref and is provided solely for backward compatibility. It will be removed in a future version.
- void Unreference()
- This function is equivalent to unref and is provided solely for backward compatibility. It will be removed in a future version.
FRIEND OPERATIONS
- void Unref(Resource*)
- This function is equivalent to static unref and is provided solely for backward compatibility. It will be removed in a future version.
BUGS
This scheme relies on manual referencing, which is more efficient, but also more dangerous.When garbage collection is supported by the runtime system, resources will be unnecessary.