/// <summary> /// Constructor. /// </summary> /// <param name="streamProvider">Stream provider to be used.</.param> /// <param name="streamMessageVisitor">Owning consumer to call on message arrival.</param> /// <param name="tearDownFunc">Asynchronous function to be executed on tear down.</param> public SingleStreamConsumer(IStreamProvider streamProvider, IStreamMessageVisitor <TIn> streamMessageVisitor, Func <Task> tearDownFunc = null) { _streamProvider = streamProvider; _tearDownFunc = tearDownFunc; _awaitedTransactions = new Dictionary <int, TaskCompletionSource <Task> >(); _streamMessageVisitor = streamMessageVisitor; }
public async Task Accept(IStreamMessageVisitor visitor) { var messageVisitor = visitor as IStreamMessageVisitor <T>; if (messageVisitor != null) { await messageVisitor.Visit(this); } else { throw new InvalidOperationException(); } }
public async Task Accept(IStreamMessageVisitor visitor) { await visitor.Visit(this); }