Table of Contents

Class RuntimeTrackingMemberEmitter<TOriginal>

Namespace
Rinku.Tracking.Runtime
Assembly
Rinku.dll

Per-member emitter selected during configuration. The final emitter determines whether the member is snapshot-backed, direct TEdit state, read-only original state, nested draft state, or something custom.

public abstract class RuntimeTrackingMemberEmitter<TOriginal>

Type Parameters

TOriginal
Inheritance
RuntimeTrackingMemberEmitter<TOriginal>
Derived
Inherited Members
Extension Methods

Properties

CanRead

Gets whether the member can be read.

public abstract bool CanRead { get; }

Property Value

bool

CanWrite

Gets whether the member can be written.

public abstract bool CanWrite { get; }

Property Value

bool

UsesSnapshot

Gets whether the member uses snapshot storage.

public abstract bool UsesSnapshot { get; }

Property Value

bool

Methods

DefineStorage(RuntimeTrackingMemberEmitContext<TOriginal>)

Defines storage for the member.

protected abstract void DefineStorage(RuntimeTrackingMemberEmitContext<TOriginal> context)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>

EmitConfirm(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)

Emits member confirmation.

protected virtual void EmitConfirm(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>
il ILGenerator

EmitEditValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)

Emits the edited value as an object.

protected virtual void EmitEditValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>
il ILGenerator

EmitGet(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)

Emits a member read.

protected abstract void EmitGet(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>
il ILGenerator

EmitHasChange(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)

Emits a change check.

protected virtual void EmitHasChange(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>
il ILGenerator

EmitInitializeSnapshot(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)

Emits snapshot initialization.

protected virtual void EmitInitializeSnapshot(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>
il ILGenerator

EmitOriginalValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)

Emits the accepted value as an object.

protected virtual void EmitOriginalValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>
il ILGenerator

EmitSet(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)

Emits a member write.

protected virtual void EmitSet(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)

Parameters

context RuntimeTrackingMemberEmitContext<TOriginal>
il ILGenerator

GetNestedRuntimePathMembers()

Gets nested members exposed through runtime paths.

protected virtual IReadOnlyList<MemberInfo> GetNestedRuntimePathMembers()

Returns

IReadOnlyList<MemberInfo>