Esempio n. 1
0
        /// <inheritdoc cref="ITouchPortalClientFactory" />
        ITouchPortalClient ITouchPortalClientFactory.Create(ITouchPortalEventHandler eventHandler)
        {
            if (eventHandler is null)
            {
                throw new ArgumentNullException(nameof(eventHandler));
            }

            return(new TouchPortalClient(eventHandler, this, _loggerFactory));
        }
Esempio n. 2
0
        /// <inheritdoc cref="ITouchPortalClientFactory" />
        public ITouchPortalClient Create(ITouchPortalEventHandler eventHandler)
        {
            if (eventHandler is null)
            {
                throw new ArgumentNullException(nameof(eventHandler));
            }

            return(ActivatorUtilities.CreateInstance <TouchPortalClient>(_serviceProvider, eventHandler));
        }
Esempio n. 3
0
        public TouchPortalClient(ITouchPortalEventHandler eventHandler,
                                 ITouchPortalSocketFactory socketFactory,
                                 ILoggerFactory loggerFactory = null)
        {
            if (string.IsNullOrWhiteSpace(eventHandler?.PluginId))
            {
                throw new InvalidOperationException($"{nameof(ITouchPortalEventHandler)}: PluginId cannot be null or empty.");
            }

            _eventHandler      = eventHandler;
            _touchPortalSocket = socketFactory.Create(this);
            _logger            = loggerFactory?.CreateLogger <TouchPortalClient>();

            _infoWaitHandle = new ManualResetEvent(false);
        }
Esempio n. 4
0
        /// <summary>
        /// Factory for creating the Touch Portal client.
        /// </summary>
        /// <param name="eventHandler">Handler the events from Touch Portal, normally the plugin instance.</param>
        /// <param name="options">Optional options, if null, default values are selected.</param>
        /// <param name="loggerFactory">Optional logger factory, if null, no logger is created.</param>
        /// <returns></returns>
        public static ITouchPortalClient CreateClient(ITouchPortalEventHandler eventHandler, TouchPortalOptions options = null, ILoggerFactory loggerFactory = null)
        {
            ITouchPortalClientFactory factory = new TouchPortalFactory(options, loggerFactory);

            return(factory.Create(eventHandler));
        }