public INngResult <TSocket> Listen <TSocket>(INngResult <TSocket> socketRes, string url) where TSocket : ISocket { if (socketRes is NngOk <TSocket> ok) { var res = nng_listen(ok.Result.NngSocket, url, 0); if (res != 0) { return(NngResult.Fail <TSocket>(res)); } } return(socketRes); }
/// <summary> /// Creates a dialer or listener associated with a socket and starts it. /// </summary> /// <returns>The or listen.</returns> /// <param name="factory">Factory used to dial/listen.</param> /// <param name="socketRes">Socket the dialer/listener is associated with</param> /// <param name="url">URL used by dialer/listener</param> /// <param name="isListener">If set to <c>true</c> is listener, else is dialer</param> /// <typeparam name="TSocket">The 1st type parameter.</typeparam> /// <typeparam name="TMsg">The 2nd type parameter.</typeparam> public static INngResult <TSocket> DialOrListen <TSocket, TMsg>(this IAPIFactory <TMsg> factory, INngResult <TSocket> socketRes, string url, bool isListener) where TSocket : ISocket { if (socketRes is NngOk <TSocket> ok) { if (isListener) { return(factory.Listen <TSocket>(socketRes, url)); } else { return(factory.Dial <TSocket>(socketRes, url)); } } return(socketRes); }