public StreamStuff(IAPIFactory <INngMsg> factory)
        {
            var url = UrlIpc();

            laio     = factory.CreateAio().Unwrap();
            daio     = factory.CreateAio().Unwrap();
            listener = factory.StreamListenerCreate(url).Unwrap();
            dialer   = factory.StreamDialerCreate(url).Unwrap();

            laio.SetTimeout(Util.DelayShortMs);
            daio.SetTimeout(Util.DelayShortMs);

            listener.Listen().Unwrap();
            listener.Accept(laio);
            dialer.Dial(daio);
            laio.Wait();
            daio.Wait();

            // Connected nng_stream is stored as aio output 0 and shouldn't be NULL
            Assert.NotEqual(IntPtr.Zero, laio.GetOutput(0));
            Assert.NotEqual(IntPtr.Zero, daio.GetOutput(0));

            lstream = factory.StreamFrom(laio).Unwrap();
            dstream = factory.StreamFrom(daio).Unwrap();
        }
Exemple #2
0
        protected NngResult <Unit> InitAio()
        {
            var res = NngAio.Create(callback);

            if (res.IsOk())
            {
                Aio = res.Ok();
                return(Unit.Ok);
            }
            else
            {
                return(Unit.Err(res.Err()));
            }
        }
Exemple #3
0
        public static NngResult <INngStream> From(INngAio aio)
        {
            var ptr = aio.GetOutput(0);

            if (ptr == IntPtr.Zero)
            {
                return(NngResult <INngStream> .Fail(-1));
            }
            else
            {
                var stream = new Stream {
                    stream = new nng_stream(ptr)
                };
                return(NngResult <INngStream> .Ok(stream));
            }
        }
Exemple #4
0
 public void Accept(INngAio aio) => nng_stream_listener_accept(listener, aio.NativeNngStruct);
Exemple #5
0
 public void Recv(INngAio aio) => nng_stream_recv(stream, aio.NativeNngStruct);
Exemple #6
0
 public void Send(INngAio aio) => nng_stream_send(stream, aio.NativeNngStruct);
Exemple #7
0
 public void Dial(INngAio aio) => nng_stream_dialer_dial(dialer, aio.NativeNngStruct);
Exemple #8
0
 public void Recv(INngAio aio) =>
 nng_ctx_recv(NativeNngStruct, aio.NativeNngStruct);
Exemple #9
0
 public void Send(INngAio aio) =>
 nng_ctx_send(NativeNngStruct, aio.NativeNngStruct);
Exemple #10
0
 public void Recv(INngAio aio)
 {
     nng_recv_aio(NativeNngStruct, aio.NativeNngStruct);
 }
Exemple #11
0
 public void Send(INngAio aio)
 {
     nng_send_aio(NativeNngStruct, aio.NativeNngStruct);
 }
Exemple #12
0
 public NngResult <INngStream> StreamFrom(INngAio aio)
 {
     return(Stream.From(aio));
 }