Ejemplo n.º 1
0
 public static NngResult <ISubAsyncContext <T> > CreateAsyncContext <T>(this ISubSocket socket, IAPIFactory <T> factory) => factory.CreateSubAsyncContext(socket);
Ejemplo n.º 2
0
 /// <summary>
 /// Unsubscribe from the specified topic.
 /// </summary>
 /// <returns>The unsubscribe.</returns>
 /// <param name="socket">Socket.</param>
 /// <param name="topic">Topic.</param>
 public static int Unsubscribe(this ISubSocket socket, byte[] topic)
 {
     return(socket.Socket.SetOpt(NNG_OPT_SUB_UNSUBSCRIBE, topic));
 }
Ejemplo n.º 3
0
        public static NngResult <ISubAsyncContext <T> > Create(IMessageFactory <T> factory, ISubSocket socket)
        {
            var context = new SubAsyncCtx <T> {
                Factory = factory, socket = socket
            };
            var res = context.InitAio();

            if (res.IsOk())
            {
                //TODO: when get default interface methods in C#8 move this to ICtx
                var ctx = NngCtx.Create(socket);
                if (ctx.IsOk())
                {
                    context.Ctx = ctx.Ok();
                    return(NngResult <ISubAsyncContext <T> > .Ok(context));
                }
                return(NngResult <ISubAsyncContext <T> > .Err(ctx.Err()));
            }
            else
            {
                return(NngResult <ISubAsyncContext <T> > .Fail(res.Err()));
            }
        }
Ejemplo n.º 4
0
 public NngResult <ISubAsyncContext <INngMsg> > CreateSubAsyncContext(ISubSocket socket)
 {
     return(SubAsyncCtx <INngMsg> .Create(this, socket));
 }