/// <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>();
        }
Exemple #3
0
 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));
     }
 }
Exemple #4
0
 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);
Exemple #7
0
 public void Write <TState>(string id, TState state, int stateVersion, Metadata metadata, IWriteResultInterest interest) =>
 Write(id, state, stateVersion, Source <TState> .None(), metadata, interest, null);
Exemple #8
0
 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);
Exemple #9
0
 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);
Exemple #10
0
 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);