/// <summary> /// Subscribe to a channel from the fiber. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fiber"></param> /// <param name="channel"></param> /// <param name="handler"></param> /// <returns></returns> public static IDisposable Subscribe <T>(this IAsyncFiber fiber, ISubscriberPort <T> channel, Func <T, Task> handler) => channel.Subscribe(fiber, handler);
public IDisposable Subscribe(IFiber fiber, Action <TOut> receive) => _output.Subscribe(fiber, receive);
protected AsyncBatchSubscriberBase(ISubscriberPort <T> channel, IAsyncFiber fiber, TimeSpan interval) { _sub = channel.Subscribe(fiber, OnMessageAsync); Fiber = fiber; Interval = interval; }
/// <summary> /// Subscribe to a channel from the fiber. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fiber"></param> /// <param name="channel"></param> /// <param name="handler"></param> /// <returns></returns> public static IDisposable Subscribe <T>(this IFiber fiber, ISubscriberPort <T> channel, Action <T> handler) { return(channel.Subscribe(fiber, handler)); }
/// <summary> /// Quick way to connect a Subscriber port to a Publisher port. Useful connecting channels and Agents /// </summary> /// <typeparam name="T"></typeparam> /// <param name="port"></param> /// <param name="fiber"></param> /// <param name="receive"></param> /// <returns></returns> public static IDisposable Connect <T>(this ISubscriberPort <T> port, IFiber fiber, IPublisherPort <T> receive) { return(port.Subscribe(StubFiber.StartNew(), x => receive.Publish(x))); }
/// <summary> /// Quick way to connect a Subscriber port to a Publisher port. Useful connecting channels and Agents /// </summary> /// <typeparam name="T"></typeparam> /// <param name="port"></param> /// <param name="receive"></param> /// <returns></returns> public static IDisposable Connect <T>(this ISubscriberPort <T> port, IPublisherPort <T> receive) => port.Subscribe(receive.Publish);
public void SetUpSubscribe(ISubscriberPort <T> port) => port.Subscribe(_fiber, OnReceive);