NAME

OTC_CResPtr - Const version of a smart pointer to help manage a resource.

SYNOPSIS


#include <OTC/refcnt/cresptr.hh>

template<class T>
class OTC_CResPtr
{
  public:
    OTC_CResPtr();
    OTC_CResPtr(T const* theItem);
    OTC_CResPtr(OTC_CResPtr<T> const& theRP);
    ~OTC_CResPtr();
    inline T const* item() const;
    inline T const* operator->() const;
    inline operator T const*() const;
    inline T const& operator*() const;
    inline OTC_Boolean operator!() const;
    inline OTC_Boolean operator==(int theItem) const;
    inline OTC_Boolean operator!=(int theItem) const;
    inline OTC_Boolean operator==(T const* theItem) const;
    inline OTC_Boolean operator!=(T const* theItem) const;
    void setItem(OTC_CResPtr<T> const& theRP);
    void setItem(T const* theItem);
    OTC_CResPtr<T>& operator=(OTC_CResPtr<T> const& theRP);
    OTC_CResPtr<T>& operator=(T const* theItem);
    u_int numRefs() const;
  protected:
    inline T* _item() const;
    T* _itemNoNull() const;
};

CLASS TYPE

Concrete

DESCRIPTION

Designed to manage classes which contain the ability to keep a reference count, such as classes derived from OTC_Resource.

CONSTRUCTION

OTC_CResPtr();
OTC_CResPtr(T const* theItem);
OTC_CResPtr(OTC_CResPtr<T> const& theRP);

DESTRUCTION

~OTC_CResPtr();

ACCESS

inline T const* item() const;
inline T const* operator->() const;
inline operator T const*() const;
inline T const& operator*() const;
inline OTC_Boolean operator!() const;
inline OTC_Boolean operator==(int theItem) const;
inline OTC_Boolean operator!=(int theItem) const;
inline OTC_Boolean operator==(T const* theItem) const;
inline OTC_Boolean operator!=(T const* theItem) const;

ASSIGNMENT

With all the following, the object being assigned to this class will have its reference count incremented, the count on the currently held object will be decremented and if it is no longer required, it will be deleted.
void setItem(OTC_CResPtr<T> const& theRP);
void setItem(T const* theItem);
OTC_CResPtr<T>& operator=(OTC_CResPtr<T> const& theRP);
OTC_CResPtr<T>& operator=(T const* theItem);

QUERY

u_int numRefs() const;

SEE ALSO

OTC_Resource

LIBRARY

OTC

AUTHOR(S)

Graham Dumpleton

COPYRIGHT

Copyright 1991 OTC LIMITED
Copyright 1994 DUMPLETON SOFTWARE CONSULTING PTY LIMITED