public FiberKeyedCollection(Func <T, TKey> keyGen, IExecutor executor = null) { _keyGen = keyGen; _fiber = new Fiber(executor); _channel.ReplyToPrimingRequest(_fiber, Reply); _request.SetRequestHandler(_fiber, OnRequest); }
public ChannelRequestAgent(IRequestChannel <TRequest, TReply> channel, Action <IRequest <TRequest, TReply> > handler, FiberType type = FiberType.Pool) { Fiber = Fibrous.Fiber.StartNew(type); channel.SetRequestHandler(Fiber, handler); }
public FiberCollection() { _fiber = Fiber.StartNew(FiberType.Pool); _channel.ReplyToPrimingRequest(_fiber, Reply); _add.Subscribe(_fiber, AddItem); _remove.Subscribe(_fiber, RemoveItem); _request.SetRequestHandler(_fiber, OnRequest); }
public FiberDictionary(IExecutor executor = null) { _fiber = new Fiber(executor); _channel.ReplyToPrimingRequest(_fiber, Reply); _add.Subscribe(_fiber, AddItem); _remove.Subscribe(_fiber, RemoveItem); _request.SetRequestHandler(_fiber, OnRequest); }
public void Setup() { _fiber = new Fiber(); _fiberReply = new Fiber(); _asyncFiber = new AsyncFiber(); _requestChannel.SetRequestHandler(_fiberReply, r => r.Reply(1)); _asyncRequestChannel.SetRequestHandler(_asyncFiber, async r => r.Reply(1)); }
public FiberKeyedCollection(Func <T, TKey> keyGen) { _keyGen = keyGen; _fiber = Fiber.StartNew(FiberType.Pool); _channel.ReplyToPrimingRequest(_fiber, Reply); _add.Subscribe(_fiber, AddItem); _remove.Subscribe(_fiber, RemoveItem); _request.SetRequestHandler(_fiber, OnRequest); }
public RequestSocket(NetMQContext context, string address, Func <TRequest, byte[]> requestMarshaller, Func <byte[], TReply> replyUnmarshaller) { _requestMarshaller = requestMarshaller; _replyUnmarshaller = replyUnmarshaller; _socket = context.CreateSocket(ZmqSocketType.Req); _socket.Connect(address); _internalChannel.SetRequestHandler(StubFiber.StartNew(), InternalSendRequest); }
public AsyncRequestSocket(NetMQContext context, string address, Func <TRequest, byte[]> requestMarshaller, Func <byte[], TReply> replyUnmarshaller, IFiber fiber) { _requestMarshaller = requestMarshaller; _replyUnmarshaller = replyUnmarshaller; _fiber = fiber; _internalChannel.SetRequestHandler(_fiber, OnRequest); _replyContext = context; int basePort = int.Parse(address.Split(':')[2]); _replySocket = _replyContext.CreateSocket(ZmqSocketType.Sub); _replySocket.Connect(address.Substring(0, address.LastIndexOf(":")) + ":" + (basePort + 1)); _replySocket.Subscribe(_id); _requestSocket = _replyContext.CreateSocket(ZmqSocketType.Push); _requestSocket.Connect(address); _fiber.Start(); Task.Factory.StartNew(Run, TaskCreationOptions.LongRunning); }
public IDisposable SetRequestHandler(IFiber fiber, Action <IRequest <TRequest, TReply> > onRequest) { return(_internalChannel.SetRequestHandler(fiber, onRequest)); }
protected UntypedActor(FiberType type = FiberType.Pool) { Fiber = Fibrous.Fiber.StartNew(type, new ExceptionHandlingExecutor(OnError)); Fiber.Subscribe(_tellChannel, Receive); _askChannel.SetRequestHandler(Fiber, OnRequest); }
public FiberCollection(IExecutor executor = null) { _fiber = new Fiber(executor); _channel.ReplyToPrimingRequest(_fiber, Reply); _request.SetRequestHandler(_fiber, OnRequest); }