public AsyncRequestAgent(Func <IRequest <TRequest, TReply>, Task> handler, Action <Exception> callback) { Fiber = new AsyncFiber(callback); _channel = Fiber.NewRequestPort(handler); }
public AsyncRequestAgent(IFiberFactory factory, Func <IRequest <TRequest, TReply>, Task> handler, Action <Exception> callback) { Fiber = factory.CreateAsyncFiber(callback); _channel = Fiber.NewRequestPort(handler); }
public RequestAgent(Action <IRequest <TRequest, TReply> > handler, Action <Exception> errorHandler = null) { Fiber = errorHandler == null ? new Fiber() : new Fiber(errorHandler); _channel = Fiber.NewRequestPort(handler); }
public RequestAgent(IFiberFactory factory, Action <IRequest <TRequest, TReply> > handler, Action <Exception> errorHandler = null) { Fiber = factory.CreateFiber(errorHandler); _channel = Fiber.NewRequestPort(handler); }
public RequestAgent(Action <IRequest <TRequest, TReply> > handler, FiberType type = FiberType.Pool) { Fiber = Fibrous.Fiber.StartNew(type); _channel = Fiber.NewRequestPort(handler); }
public Calculator() { _fiber = new Fiber(OnError); Messages = _fiber.NewChannel <Message>(OnMessage); Requests = _fiber.NewRequestPort <object, double>(OnRequest); }
protected UntypedActor(IFiberFactory factory = null) { Fiber = factory?.CreateFiber(OnError) ?? new Fiber(OnError); _tellChannel = Fiber.NewChannel <object>(Receive); _askChannel = Fiber.NewRequestPort <object, object>(OnRequest); }
protected RequestAgentBase(FiberType type = FiberType.Pool) { _fiber = Fiber.StartNew(type); _channel = _fiber.NewRequestPort <TRequest, TReply>(Handle); }
/// <summary> /// Send a request with infinite timeout /// </summary> /// <typeparam name="TRequest"></typeparam> /// <typeparam name="TReply"></typeparam> /// <param name="port"></param> /// <param name="request"></param> /// <returns></returns> public static TReply SendRequest <TRequest, TReply>(this IRequestPort <TRequest, TReply> port, TRequest request) { return(port.SendRequest(request).Receive(TimeSpan.MaxValue).Value); }