/// <summary> /// Construct my default state. /// </summary> /// <param name="id">The unique identity of this entity</param> protected StatefulEntity(string?id) { Id = id ?? Address.IdString; _currentVersion = 0; _info = Info(); _readInterest = SelfAs <IReadResultInterest>(); _writeInterest = SelfAs <IWriteResultInterest>(); }
/// <summary> /// Construct my final state with the <see cref="IStateStore"/>, which must /// be provided by my concrete extenders, as well as with a /// <see cref="IStateAdapter"/> and a <see cref="IEntryAdapter{TSource,TEntry}"/>. /// </summary> /// <param name="stateStore">The <see cref="IStateStore"/> from which previous state is read and merged current state is written</param> /// <param name="stateAdapter">The <see cref="IStateAdapter"/> used by my extenders to adapt persistent state</param> /// <param name="entryAdapter">The <see cref="IEntryAdapter{TSource,TEntry}"/> used by my extenders to adapt persistent entries</param> public StateStoreProjectionActor(IStateStore stateStore, IStateAdapter stateAdapter, IEntryAdapter entryAdapter) { _stateStore = stateStore; _stateAdapter = stateAdapter; _entryAdapter = entryAdapter; _readInterest = SelfAs <IReadResultInterest>(); _writeInterest = SelfAs <IWriteResultInterest>(); _adaptedSources = new List <ISource>(); }
public void Write <TState>(string id, TState state, int stateVersion, IWriteResultInterest interest, object @object) { if (!_actor.IsStopped) { Action <IStateStore> cons128873 = __ => __.Write <TState>(id, state, stateVersion, interest, @object); if (_mailbox.IsPreallocated) { _mailbox.Send(_actor, cons128873, null, WriteRepresentation8); } else { _mailbox.Send( new LocalMessage <IStateStore>(_actor, cons128873, WriteRepresentation8)); } } else { _actor.DeadLetters?.FailedDelivery(new DeadLetter(_actor, WriteRepresentation8)); } }
public void Write <TState, TSource>(string id, TState state, int stateVersion, IEnumerable <TSource> sources, Metadata metadata, IWriteResultInterest interest) { if (!_actor.IsStopped) { Action <IStateStore> cons128873 = __ => __.Write <TState, TSource>(id, state, stateVersion, sources, metadata, interest); if (_mailbox.IsPreallocated) { _mailbox.Send(_actor, cons128873, null, WriteRepresentation7); } else { _mailbox.Send( new LocalMessage <IStateStore>(_actor, cons128873, WriteRepresentation7)); } } else { _actor.DeadLetters?.FailedDelivery(new DeadLetter(_actor, WriteRepresentation7)); } }
public void Write <TState1, TSource>(string id, TState1 state, int stateVersion, IEnumerable <TSource> sources, Metadata metadata, IWriteResultInterest interest, object @object) => _results.PutIncrementWrite(id, _totalPartitions);
public void Write <TState1>(string id, TState1 state, int stateVersion, IWriteResultInterest interest, object @object) => _results.PutIncrementWrite(id, _totalPartitions);
public void Write <TState>(string id, TState state, int stateVersion, Metadata metadata, IWriteResultInterest interest) => Write(id, state, stateVersion, Source <TState> .None(), metadata, interest, null);
public void Write <TState, TSource>(string id, TState state, int stateVersion, IEnumerable <TSource> sources, IWriteResultInterest interest) => Write(id, state, stateVersion, sources, Metadata.NullMetadata(), interest, null);
public void Write <TState, TSource>(string id, TState state, int stateVersion, IEnumerable <TSource> sources, Metadata metadata, IWriteResultInterest interest, object? @object) => WriteWith(id, state, stateVersion, sources, metadata, interest, @object);
public void Write <TState>(string id, TState state, int stateVersion, IWriteResultInterest interest, object? @object) => Write(id, state, stateVersion, Source <TState> .None(), Metadata.NullMetadata(), interest, @object);