/// <summary> /// Internal helper /// </summary> /// <param name="client"></param> /// <param name="server"></param> /// <param name="opc"></param> /// <param name="logger"></param> private PublisherServices(IPublisherClient client, IPublisherServer server, IEndpointServices opc, ILogger logger) { _opc = opc ?? throw new ArgumentNullException(nameof(opc)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _server = server; _client = client; }
/// <summary> /// Create services connecting to publisher server /// </summary> /// <param name="server"></param> /// <param name="opc"></param> /// <param name="logger"></param> public PublisherServices(IPublisherServer server, IEndpointServices opc, ILogger logger) : this(null, server, opc, logger) { if (server == null) { throw new ArgumentNullException(nameof(server)); } // // Give it 10 seconds in which we are expecting StartAsync to be // called. If it is not called within 10 seconds start is called // from timer thread. This allows startup to await publisher // finding without module processing begins and publish calls // initially fail. // _pnp = new Timer(OnReconnectTimer, null, 10000, Timeout.Infinite); }