/// <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 NngResult <TSocket> DialOrListen <TSocket, TMsg>(this IAPIFactory <TMsg> factory, NngResult <TSocket> socketRes, string url, bool isListener) where TSocket : ISocket { if (socketRes.IsOk()) { if (isListener) { return(factory.Listen <TSocket>(socketRes, url)); } else { return(factory.Dial <TSocket>(socketRes, url)); } } return(socketRes); }
/// <summary> /// Create subscribe node for publish/subscribe protocol /// </summary> /// <returns>The create.</returns> /// <param name="factory">Factory.</param> /// <param name="url">URL.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public static NngResult <ISubSocket> SubscriberCreate <T>(this IAPIFactory <T> factory, string url) => factory.Dial(factory.SubscriberOpen(), url);
/// <summary> /// Create request node for request/reply protocol /// </summary> /// <returns>The create.</returns> /// <param name="factory">Factory.</param> /// <param name="url">URL.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public static NngResult <IReqSocket> RequesterCreate <T>(this IAPIFactory <T> factory, string url) => factory.Dial(factory.RequesterOpen(), url);