private static ReactiveServiceType[][] Validate(params ReactiveServiceType[][] groups) { if (groups == null) { groups = Array.Empty <ReactiveServiceType[]>(); } var roles = new HashSet <ReactiveServiceType>(); var missingRoles = new List <ReactiveServiceType>(); foreach (var group in groups) { foreach (var role in group) { if (!roles.Add(role)) { throw new ArgumentException( string.Format(CultureInfo.InvariantCulture, "More than one role for '{0}' specified.", role)); } } } if (!roles.Contains(ReactiveServiceType.MessagingService)) { missingRoles.Add(ReactiveServiceType.MessagingService); } if (!roles.Contains(ReactiveServiceType.MetadataService)) { missingRoles.Add(ReactiveServiceType.MetadataService); } if (!roles.Contains(ReactiveServiceType.StateStoreService)) { missingRoles.Add(ReactiveServiceType.StateStoreService); } if (!roles.Contains(ReactiveServiceType.KeyValueStoreService)) { missingRoles.Add(ReactiveServiceType.KeyValueStoreService); } if (!roles.Contains(ReactiveServiceType.QueryEvaluator)) { missingRoles.Add(ReactiveServiceType.QueryEvaluator); } if (!roles.Contains(ReactiveServiceType.QueryCoordinator)) { missingRoles.Add(ReactiveServiceType.QueryCoordinator); } if (missingRoles.Count > 0) { var newGroups = new ReactiveServiceType[groups.Length + 1][]; Array.Copy(groups, newGroups, groups.Length); newGroups[groups.Length] = missingRoles.ToArray(); groups = newGroups; } return(groups); }
protected ReactivePlatformServiceBase(IReactivePlatform platform, IRunnable runnable, ReactiveServiceType serviceType) : base(runnable, serviceType) { Platform = platform; }
protected ReactiveServiceBase(IRunnable runnable, ReactiveServiceType serviceType) { Runnable = runnable; ServiceType = serviceType; }
protected ReactiveQueryEvaluatorBase(IReactivePlatform platform, IRunnable runnable, ReactiveServiceType serviceType) : base(platform, runnable, serviceType) { }