public ClusterRouterGroup(Group local, ClusterRouterGroupSettings settings)
 {
     Settings = settings;
     Local = local;
     Paths = settings.AllowLocalRoutees ? settings.RouteesPaths.ToArray() : null;
     RouterDispatcher = local.RouterDispatcher;
 }
 public RouterConfig Copy(Group local = null, ClusterRouterGroupSettings settings = null)
 {
     return new ClusterRouterGroup(local ?? (Group)Local, settings ?? (ClusterRouterGroupSettings)Settings);
 }
 internal RouterConfig Copy(Group local = null, ClusterRouterGroupSettings settings = null)
 {
     return new ClusterRouterGroup(local ?? Local, settings ?? Settings);
 }
        public ClusterRouterGroupActor(ClusterRouterGroupSettings settings) : base(settings)
        {
            Settings = settings;
            var groupConfig = Cell.RouterConfig as Group;
            if (groupConfig != null)
            {
                _group = groupConfig;
            }
            else
            {
                throw new ActorInitializationException(string.Format("ClusterRouterGroupActor can only be used with group, not {0}", Cell.RouterConfig.GetType()));
            }

            UsedRouteePaths = Settings.AllowLocalRoutees
                ? ImmutableDictionary<Address, ImmutableHashSet<string>>.Empty.Add(Cluster.SelfAddress, settings.RouteesPaths.ToImmutableHashSet())
                : ImmutableDictionary<Address, ImmutableHashSet<string>>.Empty;
        }
 public ClusterRouterGroup(Group local, ClusterRouterGroupSettings settings)
     : base(settings.AllowLocalRoutees ? settings.RouteesPaths.ToArray() : Enumerable.Empty<string>(), local.RouterDispatcher)
 {
     Settings = settings;
     Local = local;
 }