internal void Delete(long index) { AssertState(); _index = index; _state = CompareExchangeValueState.Deleted; }
internal void UpdateState(long index) { _index = index; _state = CompareExchangeValueState.None; if (_originalValue != null) { _originalValue.Index = index; } if (_value != null) { _value.Index = index; } }
internal CompareExchangeValue <T> Create <T>(T item) { AssertState(); if (_value != null) { throw new InvalidOperationException($"The compare exchange value with key '{_key}' is already tracked."); } _index = 0; var value = new CompareExchangeValue <T>(_key, _index, item); _value = value; _state = CompareExchangeValueState.Created; return(value); }
internal void UpdateValue(CompareExchangeValue <BlittableJsonReaderObject> value, InMemoryDocumentSessionOperations session) { _index = value.Index; _state = value.Index >= 0 ? CompareExchangeValueState.None : CompareExchangeValueState.Missing; _originalValue = value; if (_value != null) { _value.Index = _index; if (_value.Value != null) { session.JsonConverter.PopulateEntity(_value.Value, value.Value, session.JsonSerializer); } } }
public CompareExchangeSessionValue(string key, long index, CompareExchangeValueState state) { _key = key ?? throw new ArgumentNullException(nameof(key)); _index = index; _state = state; }