DCMTK Version 3.6.9 OFFIS DICOM Toolkit

Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
OFshared_ptr< T > Class Template Reference

OFshared_ptr is a smart pointer that retains shared ownership of an object through a pointer. More...

## Classes
class | Data
| Helper class containing the reference to the managed object and the reference counter. More...

## Public Member Functions
| OFshared_ptr (T *const pt=OFnullptr)
| Constructs a shared_ptr with pt as the managed object.
| OFshared_ptr (const OFshared_ptr &other)
| Constructs a shared_ptr which shares ownership of the object managed by other.
OFshared_ptr & | operator= (const OFshared_ptr &other)
| Replaces the managed object with the one managed by other.
| ~OFshared_ptr ()
| If *this owns an object and it is the last shared_ptr owning it, the object is destroyed.
| operator OFBool () const
| Checks if *this manages an object, i.e.
OFBool | operator! () const
| Checks if *this does not manage an object, i.e.
T & | operator* () const
| Dereferences pointer to the managed object.
T * | operator-> () const
| Dereferences pointer to the managed object.
T * | get () const
| Returns a pointer to the managed object.
void | reset (T *const pt=OFnullptr)
| Replaces the managed object with an object pointed to by pt.

## Private Member Functions
void | destroy ()
| decrement the reference counter, destroy the managed object and the counter if the counter reached zero.

## Private Attributes
Data * | m_pData
| A pointer to the management data structure containing the actual reference to the managed object and the reference counter.

## Detailed Description

template<typename T>
class OFshared_ptr< T >

OFshared_ptr is a smart pointer that retains shared ownership of an object through a pointer.

Several OFshared_ptr objects may own the same object; the object is destroyed when the last remaining OFshared_ptr referring to it is destroyed or reset.

An OFshared_ptr may also own no objects, in which case it is called empty.

OFshared_ptr meets the requirements of CopyConstructible and CopyAssignable.

Template Parameters

  T | the type of the managed object, e.g. int for an OFshared_ptr behaving like an int*.

Note
  this implementation is meant to be a subset of the c++11's std::shared_ptr that lacks the following features: swap support, support for weak references, atomic access to the managed object, custom deleters and some functions like comparing OFshared_ptrs or read access to the reference counter. see http://en.cppreference.com/w/cpp/memory/shared_ptr to compare OFshared_ptr against std::shared_ptr.

## Constructor & Destructor Documentation

## ◆ OFshared_ptr() [1/2]

template<typename T>

OFshared_ptr< T >::OFshared_ptr | ( | T *const | pt = OFnullptr | ) |
| inline

Constructs a shared_ptr with pt as the managed object.

Parameters

  pt | the managed object that this shared_ptr takes the ownership to.

## ◆ OFshared_ptr() [2/2]

template<typename T>

OFshared_ptr< T >::OFshared_ptr | ( | const OFshared_ptr< T > & | other | ) |
| inline

Constructs a shared_ptr which shares ownership of the object managed by other.

If other manages no object, *this manages no object too.

Parameters

  other | another shared_ptr that this one will be copy constructed from.

## ◆ ~OFshared_ptr()

template<typename T>

OFshared_ptr< T >::~OFshared_ptr | ( |  | ) |
| inline

If *this owns an object and it is the last shared_ptr owning it, the object is destroyed.

Otherwise does nothing.

## Member Function Documentation

## ◆ get()

template<typename T>

T * OFshared_ptr< T >::get | ( |  | ) | const
| inline

Returns a pointer to the managed object.

Returns
  a pointer to the managed object.

## ◆ operator OFBool()

template<typename T>

OFshared_ptr< T >::operator OFBool | ( |  | ) | const
| inline

Checks if *this manages an object, i.e.

whether get() != 0.

Returns
  OFTrue if *this manages an object, OFFalse otherwise.

## ◆ operator!()

template<typename T>

OFBool OFshared_ptr< T >::operator! | ( |  | ) | const
| inline

Checks if *this does not manage an object, i.e.

whether get() == 0.

Returns
  OFFalse if *this manages an object, OFTrue otherwise.

## ◆ operator*()

template<typename T>

T & OFshared_ptr< T >::operator* | ( |  | ) | const
| inline

Dereferences pointer to the managed object.

Returns
  a reference to the managed object.

## ◆ operator->()

template<typename T>

T * OFshared_ptr< T >::operator-> | ( |  | ) | const
| inline

Dereferences pointer to the managed object.

Returns
  a pointer to the managed object.

## ◆ operator=()

template<typename T>

OFshared_ptr & OFshared_ptr< T >::operator= | ( | const OFshared_ptr< T > & | other | ) |
| inline

Replaces the managed object with the one managed by other.

Parameters

  other | another shared_ptr that this one will be copy assigned from.

## ◆ reset()

template<typename T>

void OFshared_ptr< T >::reset | ( | T *const | pt = OFnullptr | ) |
| inline

Replaces the managed object with an object pointed to by pt.

Parameters

  pt | pointer to an object to acquire ownership of.

The documentation for this class was generated from the following file:

- ofstd/include/dcmtk/ofstd/ofmem.h

Generated on Sat Mar 1 2025 for DCMTK Version 3.6.9 by Doxygen 1.13.2