oracular (3) Resource.3I.gz

Provided by: ivtools-dev_2.0.11d.a1-3build6_amd64 bug

NAME

       Resource - shared object

SYNOPSIS

       #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.