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
uniqueTimestampFactoryUniqueTimestampFactoryA unique timestamp factory.
transactionIdulongA transaction id.
Transition(UniqueTimestampFactory, ulong, Link<ulong>)
Initializes a new UInt64LinksTransactionsLayer.Transition instance.
public Transition(UniqueTimestampFactory uniqueTimestampFactory, ulong transactionId, Link<ulong> before)
Parameters
uniqueTimestampFactoryUniqueTimestampFactoryA unique timestamp factory.
transactionIdulongA transaction id.
beforeLink<ulong>A before.
Transition(UniqueTimestampFactory, ulong, Link<ulong>, Link<ulong>)
Initializes a new UInt64LinksTransactionsLayer.Transition instance.
public Transition(UniqueTimestampFactory uniqueTimestampFactory, ulong transactionId, Link<ulong> before, Link<ulong> after)
Parameters
uniqueTimestampFactoryUniqueTimestampFactoryA unique timestamp factory.
transactionIdulongA transaction id.
beforeLink<ulong>A before.
afterLink<ulong>A after.
Transition(UniqueTimestampFactory, ulong, IList<ulong>?, IList<ulong>?)
public Transition(UniqueTimestampFactory uniqueTimestampFactory, ulong transactionId, IList<ulong>? before, IList<ulong>? after)
Parameters
uniqueTimestampFactoryUniqueTimestampFactorytransactionIdulongbeforeIList<ulong>afterIList<ulong>
Fields
After
The after.
public readonly Link<ulong> After
Field Value
Before
The before.
public readonly Link<ulong> Before
Field Value
Size
The size.
public static readonly long Size
Field Value
Timestamp
The timestamp.
public readonly Timestamp Timestamp
Field Value
- Timestamp
TransactionId
The transaction id.
public readonly ulong TransactionId
Field Value
Methods
Equals(Transition)
Determines whether this instance equals.
public bool Equals(UInt64LinksTransactionsLayer.Transition other)
Parameters
otherUInt64LinksTransactionsLayer.TransitionThe other.
Returns
- bool
The bool
Equals(object?)
Determines whether this instance equals.
public override bool Equals(object? obj)
Parameters
objobjectThe 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
Returns
operator !=(Transition, Transition)
public static bool operator !=(UInt64LinksTransactionsLayer.Transition left, UInt64LinksTransactionsLayer.Transition right)