|
The Pedigree Project 0.1
|
#include <UniqueResource.h>
Inheritance diagram for UniqueResource< T, Releaser >:
Collaboration diagram for UniqueResource< T, Releaser >:Public Member Functions | |
| UniqueResource (UniqueResource &&other) noexcept | |
| UniqueResource & | operator= (UniqueResource &&other) noexcept |
| T * | get () const |
| T * | operator-> () const |
| T & | operator* () const |
| operator bool () const | |
| MUST_USE_RESULT T * | release () noexcept |
| void | reset (T *replacement=nullptr) noexcept |
Static Public Member Functions | |
| static MUST_USE_RESULT UniqueResource | adopt (T *resource) |
Private Member Functions | |
| UniqueResource (T *resource) | |
| UniqueResource (const UniqueResource &)=delete | |
| UniqueResource & | operator= (const UniqueResource &)=delete |
Private Attributes | |
| T * | m_Resource |
Owns one resource released by a stateless, compile-time policy.
Releaser must provide static void release(T *) and must consume the resource on every return; a fallible release must escalate or use another ownership type. The policy is not stored, so this wrapper has the same representation as the pointer it owns. It is intended for lexical ownership of C handles and similar resources. Release runs synchronously and must be legal in the destruction context; any wider protocol shutdown or concurrent drain remains an explicit operation.
Definition at line 26 of file UniqueResource.h.
|
inline |
Definition at line 28 of file UniqueResource.h.
|
inlinenoexcept |
Definition at line 30 of file UniqueResource.h.
|
inline |
Definition at line 32 of file UniqueResource.h.
|
inlineexplicitprivate |
Definition at line 86 of file UniqueResource.h.
|
inlinestatic |
Takes ownership of a resource returned by an acquisition API.
Definition at line 45 of file UniqueResource.h.
|
inline |
Definition at line 49 of file UniqueResource.h.
|
inlineexplicit |
Definition at line 61 of file UniqueResource.h.
|
inline |
Definition at line 57 of file UniqueResource.h.
|
inline |
Definition at line 53 of file UniqueResource.h.
|
inlinenoexcept |
Definition at line 36 of file UniqueResource.h.
|
inlinenoexcept |
Transfers ownership to a caller or another lifetime domain.
Definition at line 66 of file UniqueResource.h.
|
inlinenoexcept |
Releases the current resource, then adopts its replacement.
Definition at line 73 of file UniqueResource.h.
|
private |
Definition at line 91 of file UniqueResource.h.