public static Dispatcher Create(Action <DispatcherConfig> configurator) { var config = new DispatcherConfig(); configurator(config); Dispatcher instance = Dispatcher.Create(config); return(instance); }
public static void RegisterComponents() { var container = new UnityContainer(); // register all your components with the container here // it is NOT necessary to register your controllers // e.g. container.RegisterType<ITestService, TestService>(); container.RegisterInstance <IDispatcher>(DispatcherConfig.RegisterComponents()); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); }
//--- Constructors --- public DekiDispatcher(DispatcherConfig config, IPubSubDispatchQueueRepository repository) : base(config, repository) { _authtoken = config.ServiceConfig["authtoken"].AsText; var dekiUri = config.ServiceConfig["uri.deki"].AsUri; if (config.ServiceCookies != null) { _cookieJar.Update(config.ServiceCookies.Fetch(dekiUri), null); } _deki = Plug.New(dekiUri).WithCookieJar(_cookieJar); }
static void Main(string[] args) { // Begin composition root var containerBuilder = new ContainerBuilder(); var config1 = new ConsumerConfig(); var config2 = new DispatcherConfig(); containerBuilder.RegisterInstance(config1).AsSelf().SingleInstance(); containerBuilder.RegisterInstance(config2).AsSelf().SingleInstance(); containerBuilder.RegisterGeneric(typeof(MessageQueue <>)) .As(typeof(IMessageQueue <>)).SingleInstance(); containerBuilder.RegisterGeneric(typeof(MessageService <>)) .As(typeof(IMessageService <>)).SingleInstance(); containerBuilder.RegisterType <TopLevelMessageConsumer>() .AsSelf().SingleInstance(); containerBuilder.RegisterType <TopLevelMessageDispatcher>() .AsSelf().SingleInstance(); var container = containerBuilder.Build(); // End composition root var dispatcher = container.Resolve <TopLevelMessageDispatcher>(); var consumer = container.Resolve <TopLevelMessageConsumer>(); }
static void Main(string[] args) { var config = new DispatcherConfig(); if (args.Length > 0) { config.CoordinatorAddress = args[0]; Console.WriteLine($"CoordinatorAddress: http://{config.CoordinatorAddress}/"); } using (var dispatcher = new Dispatcher(config)) { var shutdown = new CancellationTokenSource(); Task.Run(() => { var taskProvider = new StdInTaskProvider(); dispatcher.AddJob(taskProvider); while (true) { var line = Console.ReadLine(); if (line.Length == 0) { shutdown.Cancel(); break; } else { taskProvider.AddWork(line); } } }); Task.Delay(-1, shutdown.Token).ContinueWith(t => { }).Wait(); } }