Abstract class that implements IAtomicRefCounted. Should be used over IAtomicRefCounted when practicable to avoid code duplication in the final executable.
compile time check that T can be ref counted atomically.
Counts the number of references of a single object.
Dispose GC allocated associative array of resources
Dispose GC allocated array of resources
Dispose and nullify a single object, that might be null
Decreases the reference count of a single object without disposing it. Use this to move an object out of a scope (typically return at the end of a function)
Locks a single object.
Reinitialises a GC allocated associative array of struct. Useful if the struct release resource in its destructor.
Reinitialises a GC allocated array of struct. Useful if the struct release resource in its destructor.
Reinitialises a single struct Useful if the struct release resource in its destructor.
Release GC allocated associative array of ref-counted resources
Release GC allocated array of ref-counted resources
Releases and nullify a single object. The object may be null.
Retain GC allocated associative array of ref-counted resources
Retain GC allocated array of ref-counted resources
Retains a single object.
A resource that can be disposed
A atomic reference counted resource. Objects implementing this interface can be safely manipulated as shared. Implementing class should mixin atomicRcCode to use the provided implementation.
A string that can be mixed-in a class declaration to implement IAtomicRefCounted. dispose is not implemented of course, but is called by release while the object is locked. Classes implementing it are free to do it in a non-thread safe manner as long as dispose does not manipulate external state.
Produces an Rc!T holding a null object
Helper struct that manages the reference count of an object using RAII.
Helper struct that keeps a weak reference to a Resource.
Helper that build a new instance of T and returns it within a Rc!T
Helper that places an instance of T within a Rc!T
Reference counting module