public override Task OnActivateAsync() { base.OnActivateAsync(); StreamConsumer = new TransactionalStreamConsumer(GetStreamProvider(StreamProviderNamespace), TearDown); StreamSender = new StreamMessageSender <TOut>(GetStreamProvider(StreamProviderNamespace), this.GetPrimaryKey()); RegisterMessages(); return(TaskDone.Done); }
public override async Task OnActivateAsync() { OutputProducer = new StreamMessageSender <ContainerElement <T> >(GetStreamProvider(StreamProviderName), this.GetPrimaryKey()); StreamMessageDispatchReceiver = new StreamMessageDispatchReceiver(GetStreamProvider(StreamProviderName), GetLogger(), TearDown); _streamTransactionReceiver = new StreamTransactionReceiver(StreamMessageDispatchReceiver); StreamMessageDispatchReceiver.Register <ItemMessage <T> >(ProcessItemMessage); Elements = new ContainerElementList <T>(this.GetPrimaryKey(), this, this.AsReference <IContainerNodeGrain <T> >()); await base.OnActivateAsync(); }
public virtual async Task TearDown() { if (StreamConsumer != null) { await StreamConsumer.TearDown(); StreamConsumer = null; } if (StreamSender != null) { await StreamSender.TearDown(); StreamSender = null; } DeactivateOnIdle(); }
protected StreamMessageSender <ContainerElement <T> > SetupSenderStream(StreamIdentity streamIdentity) { var transactionalSender = new StreamMessageSender <ContainerElement <T> >(GetStreamProvider(StreamProviderName), streamIdentity); return(transactionalSender); }