public static ServiceBuilderFactory CreateServiceBuilderFactory <TService>(
            Func <HostSettings, TService> serviceFactory,
            Action <ServiceConfigurator> callback)
            where TService : class, ServiceControl
        {
            if (serviceFactory == null)
            {
                throw new ArgumentNullException("serviceFactory");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }

            var serviceConfigurator = new ControlServiceConfigurator <TService>(serviceFactory);

            callback(serviceConfigurator);

            ServiceBuilderFactory serviceBuilderFactory = x =>
            {
                ConfigurationResult configurationResult =
                    ValidateConfigurationResult.CompileResults(serviceConfigurator.Validate());
                if (configurationResult.Results.Any())
                {
                    throw new HostConfigurationException("The service was not properly configured");
                }

                ServiceBuilder serviceBuilder = serviceConfigurator.Build();

                return(serviceBuilder);
            };

            return(serviceBuilderFactory);
        }
        public RehabServiceHandle(HostSettings settings, ServiceBuilderFactory serviceBuilderFactory)
        {
            _settings = settings;
            _serviceBuilderFactory = serviceBuilderFactory;

            _service = CreateServiceInAppDomain();
        }
Example #3
0
        public ServiceHandleProxy(HostSettings settings, HostControl hostControl, ServiceBuilderFactory serviceBuilderFactory)
        {
            _settings = settings;
            _hostControl = new HostControlProxy(hostControl);
            _serviceBuilderFactory = serviceBuilderFactory;

            _service = CreateServiceInAppDomain();
        }
        public static HostConfigurator Service <T>(this HostConfigurator configurator,
                                                   ServiceBuilderFactory serviceBuilderFactory)
            where T : class
        {
            configurator.UseServiceBuilder(serviceBuilderFactory);

            return(configurator);
        }
Example #5
0
        public ServiceHandleProxy(HostSettings settings, HostControl hostControl, ServiceBuilderFactory serviceBuilderFactory)
        {
            _settings              = settings;
            _hostControl           = new HostControlProxy(hostControl);
            _serviceBuilderFactory = serviceBuilderFactory;

            _service = CreateServiceInAppDomain();
        }
        public static HostConfigurator RehabService <T>(this HostConfigurator configurator,
                                                        ServiceBuilderFactory serviceBuilderFactory)
            where T : class
        {
            ServiceBuilderFactory rehabFactory = settings => new RehabServiceBuilder <T>(serviceBuilderFactory);

            configurator.UseServiceBuilder(rehabFactory);

            return(configurator);
        }
Example #7
0
        public void Create(ServiceBuilderFactory serviceBuilderFactory, HostSettings settings,
                           HostLoggerConfigurator loggerConfigurator)
        {
            AppDomain.CurrentDomain.UnhandledException += CatchUnhandledException;

            HostLogger.UseLogger(loggerConfigurator);

            ServiceBuilder serviceBuilder = serviceBuilderFactory(settings);

            _serviceHandle = serviceBuilder.Build(settings);
        }
        public void Create(ServiceBuilderFactory serviceBuilderFactory, HostSettings settings,
            HostLoggerConfigurator loggerConfigurator)
        {
            AppDomain.CurrentDomain.UnhandledException += CatchUnhandledException;

            HostLogger.UseLogger(loggerConfigurator);

            ServiceBuilder serviceBuilder = serviceBuilderFactory(settings);

            _serviceHandle = serviceBuilder.Build(settings);
        }
Example #9
0
        public SuperviseService(HostSettings settings, ServiceBuilderFactory serviceBuilderFactory)
        {
            _settings = settings;
            _serviceBuilderFactory = serviceBuilderFactory;
            _serviceAvailability   = new List <ServiceAvailability>();

            _fiber     = new PoolFiber();
            _scheduler = new TimerScheduler(new PoolFiber());

            _commandHandlers = CreateCommandHandlers();
        }
Example #10
0
        public SuperviseService(HostSettings settings, ServiceBuilderFactory serviceBuilderFactory)
        {
            _settings = settings;
            _serviceBuilderFactory = serviceBuilderFactory;
            _serviceAvailability = new List<ServiceAvailability>();

            _fiber = new PoolFiber();
            _scheduler = new TimerScheduler(new PoolFiber());

            _commandHandlers = CreateCommandHandlers();
        }
        public static HostConfigurator RehabService <T>(this HostConfigurator configurator, Func <HostSettings, T> factory)
            where T : class, ServiceControl
        {
            if (configurator == null)
            {
                throw new ArgumentNullException("configurator");
            }

            ServiceBuilderFactory serviceBuilderFactory = ServiceExtensions.CreateServiceBuilderFactory(factory,
                                                                                                        NoCallback);

            return(RehabService <T>(configurator, serviceBuilderFactory));
        }
        public static HostConfigurator RehabService <T>(this HostConfigurator configurator)
            where T : class, ServiceControl, new()
        {
            if (configurator == null)
            {
                throw new ArgumentNullException("configurator");
            }

            ServiceBuilderFactory serviceBuilderFactory = ServiceExtensions.CreateServiceBuilderFactory(x => new T(),
                                                                                                        NoCallback);

            return(RehabService <T>(configurator, serviceBuilderFactory));
        }
        public static HostConfigurator Service <T>(this HostConfigurator configurator, Func <T> serviceFactory)
            where T : class, ServiceControl
        {
            if (configurator == null)
            {
                throw new ArgumentNullException("configurator");
            }

            ServiceBuilderFactory factory = settings => new ControlServiceBuilder <T>(x => serviceFactory());

            configurator.UseServiceBuilder(factory);

            return(configurator);
        }
Example #14
0
        public static HostConfigurator Service <TService>(this HostConfigurator configurator,
                                                          Func <HostSettings, TService> serviceFactory, Action <ServiceConfigurator> callback)
            where TService : class, ServiceControl
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            ServiceBuilderFactory serviceBuilderFactory = CreateServiceBuilderFactory(serviceFactory, callback);

            configurator.UseServiceBuilder(serviceBuilderFactory);

            return(configurator);
        }
        public static SuperviseConfigurator Service <TService>(this SuperviseConfigurator configurator,
                                                               Action <ServiceConfigurator <TService> > callback)
            where TService : class
        {
            if (configurator == null)
            {
                throw new ArgumentNullException("configurator");
            }

            ServiceBuilderFactory serviceBuilderFactory = ServiceExtensions.CreateServiceBuilderFactory(callback);

            configurator.UseServiceBuilder(serviceBuilderFactory);

            return(configurator);
        }
Example #16
0
        public static HostConfigurator Service <TService>(this HostConfigurator configurator,
                                                          Action <ServiceConfigurator <TService> > callback)
            where TService : class
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            ServiceBuilderFactory serviceBuilderFactory = CreateServiceBuilderFactory(callback);

            configurator.UseServiceBuilder(serviceBuilderFactory);

            return(configurator);
        }
        public static SuperviseConfigurator Service <T>(this SuperviseConfigurator configurator, Func <T> serviceFactory)
            where T : class, ServiceControl
        {
            if (configurator == null)
            {
                throw new ArgumentNullException("configurator");
            }

            ServiceBuilderFactory serviceBuilderFactory =
                ServiceExtensions.CreateServiceBuilderFactory(x => serviceFactory(), NoCallback);

            configurator.UseServiceBuilder(serviceBuilderFactory);

            return(configurator);
        }
Example #18
0
        public static HostConfigurator RehabService <T>(this HostConfigurator configurator)
            where T : class, ServiceControl, new()
        {
            if (configurator == null)
            {
                throw new ArgumentNullException("configurator");
            }

            ServiceBuilderFactory factory = settings => new ControlServiceBuilder <T>(x => new T());

            ServiceBuilderFactory updaterFactory = settings => new RehabServiceBuilder <T>(factory);

            configurator.UseServiceBuilder(updaterFactory);

            return(configurator);
        }
Example #19
0
 public void UseServiceBuilder(ServiceBuilderFactory serviceBuilderFactory)
 {
     _serviceBuilderFactory = serviceBuilderFactory;
 }
 public SuperviseServiceBuilder(ServiceBuilderFactory serviceBuilderFactory, ServiceEvents serviceEvents)
 {
     _serviceBuilderFactory = serviceBuilderFactory;
     _serviceEvents = serviceEvents;
 }
Example #21
0
 public void UseServiceBuilder(ServiceBuilderFactory serviceBuilderFactory)
 {
     _serviceBuilderFactory = serviceBuilderFactory;
 }
 public RehabServiceBuilder(ServiceBuilderFactory serviceBuilderFactory)
 {
     _serviceBuilderFactory = serviceBuilderFactory;
 }
 public void UseServiceBuilder(ServiceBuilderFactory serviceBuilderFactory)
 {
     throw new NotImplementedException();
 }
 public SuperviseServiceBuilder(ServiceBuilderFactory serviceBuilderFactory, ServiceEvents serviceEvents)
 {
     _serviceBuilderFactory = serviceBuilderFactory;
     _serviceEvents         = serviceEvents;
 }