Example #1
0
 public FiberKeyedCollection(Func <T, TKey> keyGen, IExecutor executor = null)
 {
     _keyGen = keyGen;
     _fiber  = new Fiber(executor);
     _channel.ReplyToPrimingRequest(_fiber, Reply);
     _request.SetRequestHandler(_fiber, OnRequest);
 }
Example #2
0
 public ChannelRequestAgent(IRequestChannel <TRequest, TReply> channel,
                            Action <IRequest <TRequest, TReply> > handler,
                            FiberType type = FiberType.Pool)
 {
     Fiber = Fibrous.Fiber.StartNew(type);
     channel.SetRequestHandler(Fiber, handler);
 }
Example #3
0
 public FiberCollection()
 {
     _fiber = Fiber.StartNew(FiberType.Pool);
     _channel.ReplyToPrimingRequest(_fiber, Reply);
     _add.Subscribe(_fiber, AddItem);
     _remove.Subscribe(_fiber, RemoveItem);
     _request.SetRequestHandler(_fiber, OnRequest);
 }
Example #4
0
 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);
 }
Example #5
0
 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);
 }
Example #7
0
 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);
 }
Example #8
0
        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));
 }
Example #10
0
 protected UntypedActor(FiberType type = FiberType.Pool)
 {
     Fiber = Fibrous.Fiber.StartNew(type, new ExceptionHandlingExecutor(OnError));
     Fiber.Subscribe(_tellChannel, Receive);
     _askChannel.SetRequestHandler(Fiber, OnRequest);
 }
Example #11
0
 public FiberCollection(IExecutor executor = null)
 {
     _fiber = new Fiber(executor);
     _channel.ReplyToPrimingRequest(_fiber, Reply);
     _request.SetRequestHandler(_fiber, OnRequest);
 }