#include <InterViews/resource.h>
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.
- 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.
- 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.
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.