Struct UInt64LinksTransactionsLayer.Transition

Namespace
Platform.Data.Doublets
Assembly
Platform.Data.Doublets.dll

Records a transaction transition between two link states.

public struct UInt64LinksTransactionsLayer.Transition : IEquatable<UInt64LinksTransactionsLayer.Transition>
Implements
Inherited Members

Remarks

Альтернативные варианты хранения трансформации (элемента транзакции):

private enum TransitionType { Creation, UpdateOf, UpdateTo, Deletion }

private struct Transition { public TLinkAddress TransactionId; public UniqueTimestamp Timestamp; public TransactionItemType Type; public Link Source; public Link Linker; public Link Target; }

Или

public struct TransitionHeader { public TLinkAddress TransactionIdCombined; public TLinkAddress TimestampCombined;

public TLinkAddress TransactionId
{
    get
    {
        return (TLinkAddress) mask & TransactionIdCombined;
    }
}

public UniqueTimestamp Timestamp
{
    get
    {
        return (UniqueTimestamp)mask & TransactionIdCombined;
    }
}

public TransactionItemType Type
{
    get
    {
        // Использовать по одному биту из TransactionId и Timestamp,
        // для значения в 2 бита, которое представляет тип операции
        throw new NotImplementedException();
    }
}

}

private struct Transition { public TransitionHeader Header; public Link Source; public Link Linker; public Link Target; }

Constructors

Transition(UniqueTimestampFactory, ulong)

Initializes a new UInt64LinksTransactionsLayer.Transition instance.

public Transition(UniqueTimestampFactory uniqueTimestampFactory, ulong transactionId)

Parameters

uniqueTimestampFactory UniqueTimestampFactory

A unique timestamp factory.

transactionId ulong

A transaction id.

Initializes a new UInt64LinksTransactionsLayer.Transition instance.

public Transition(UniqueTimestampFactory uniqueTimestampFactory, ulong transactionId, Link<ulong> before)

Parameters

uniqueTimestampFactory UniqueTimestampFactory

A unique timestamp factory.

transactionId ulong

A transaction id.

before Link<ulong>

A before.

Initializes a new UInt64LinksTransactionsLayer.Transition instance.

public Transition(UniqueTimestampFactory uniqueTimestampFactory, ulong transactionId, Link<ulong> before, Link<ulong> after)

Parameters

uniqueTimestampFactory UniqueTimestampFactory

A unique timestamp factory.

transactionId ulong

A transaction id.

before Link<ulong>

A before.

after Link<ulong>

A after.

Transition(UniqueTimestampFactory, ulong, IList<ulong>?, IList<ulong>?)

public Transition(UniqueTimestampFactory uniqueTimestampFactory, ulong transactionId, IList<ulong>? before, IList<ulong>? after)

Parameters

uniqueTimestampFactory UniqueTimestampFactory
transactionId ulong
before IList<ulong>
after IList<ulong>

Fields

After

The after.

public readonly Link<ulong> After

Field Value

Link<ulong>

Before

The before.

public readonly Link<ulong> Before

Field Value

Link<ulong>

Size

The size.

public static readonly long Size

Field Value

long

Timestamp

The timestamp.

public readonly Timestamp Timestamp

Field Value

Timestamp

TransactionId

The transaction id.

public readonly ulong TransactionId

Field Value

ulong

Methods

Equals(Transition)

Determines whether this instance equals.

public bool Equals(UInt64LinksTransactionsLayer.Transition other)

Parameters

other UInt64LinksTransactionsLayer.Transition

The other.

Returns

bool

The bool

Equals(object?)

Determines whether this instance equals.

public override bool Equals(object? obj)

Parameters

obj object

The obj.

Returns

bool

The bool

GetHashCode()

Gets the hash code.

public override int GetHashCode()

Returns

int

The int

ToString()

Returns the string.

public override string ToString()

Returns

string

The string

Operators

operator ==(Transition, Transition)

public static bool operator ==(UInt64LinksTransactionsLayer.Transition left, UInt64LinksTransactionsLayer.Transition right)

Parameters

left UInt64LinksTransactionsLayer.Transition
right UInt64LinksTransactionsLayer.Transition

Returns

bool

operator !=(Transition, Transition)

public static bool operator !=(UInt64LinksTransactionsLayer.Transition left, UInt64LinksTransactionsLayer.Transition right)

Parameters

left UInt64LinksTransactionsLayer.Transition
right UInt64LinksTransactionsLayer.Transition

Returns

bool