public static NngResult <ISubAsyncContext <T> > CreateAsyncContext <T>(this ISubSocket socket, IAPIFactory <T> factory) => factory.CreateSubAsyncContext(socket);
/// <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)); }
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())); } }
public NngResult <ISubAsyncContext <INngMsg> > CreateSubAsyncContext(ISubSocket socket) { return(SubAsyncCtx <INngMsg> .Create(this, socket)); }