Report a bug
If you spot a problem with this page, click here to create a GitHub issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
mir.rc.context
Thread-safe reference-counted context implementation
.- struct
mir_rc_context
; -
- void function(mir_rc_context*) pure nothrow @nogc @system
deallocator
; - immutable(mir_type_info)*
typeInfo
; - shared size_t
counter
; - size_t
length
;
- export pure nothrow @nogc @system void
mir_rc_increase_counter
(ref mir_rc_contextcontext
); - Increase counter by 1.Parameters:
mir_rc_context context
shared_ptr context (not null) - export pure nothrow @nogc @system void
mir_rc_decrease_counter
(ref mir_rc_contextcontext
); - Decrease counter by 1. Destroys data if counter decreased from 1 to 0.Parameters:
mir_rc_context context
shared_ptr context (not null) - export pure nothrow @nogc @system void
mir_rc_delete
(ref mir_rc_contextcontext
); - export pure nothrow @nogc @system mir_rc_context*
mir_rc_create
(ref immutable(mir_type_info)typeInfo
, size_tlength
, scope const void*payload
= null, boolinitialize
= true, booldeallocate
= true); - template
CommonRCImpl
() -
- const nothrow @nogc @property scope @trusted ThisTemplate!(const(T))
lightConst
()() return;
immutable nothrow @nogc @property scope @trusted ThisTemplate!(immutable(T))lightImmutable
()() return; - nothrow @nogc @property scope @trusted ThisTemplate!(const(Unqual!T))
moveToConst
()() return; - const pure nothrow @nogc @property scope @trusted size_t
_counter
(); - const C
opCast
(C)()
if (is(Unqual!C == bool)); - pure nothrow @nogc ref @trusted C
opCast
(C : ThisTemplate!Q, Q)()
if (isImplicitlyConvertible!(T*, Q*));
const pure nothrow @nogc @trusted CopCast
(C : ThisTemplate!Q, Q)()
if (isImplicitlyConvertible!(const(T)*, Q*));
immutable pure nothrow @nogc @trusted CopCast
(C : ThisTemplate!Q, Q)()
if (isImplicitlyConvertible!(immutable(T)*, Q*));
const pure nothrow @nogc @system CopCast
(C : ThisTemplate!Q, Q)()
if (isImplicitlyConvertible!(immutable(T)*, Q*) && !isImplicitlyConvertible!(const(T)*, Q*));
Copyright © 2016-2022 by Ilya Yaroshenko | Page generated by
Ddoc on Tue Jan 11 06:37:12 2022