Akka.Cluster.Sharding.Serialization.ClusterShardingMessageSerializer.CoordinatorStateFromBinary C# (CSharp) Method

CoordinatorStateFromBinary() private method

private CoordinatorStateFromBinary ( byte binary ) : object
binary byte
return object
        private object CoordinatorStateFromBinary(byte[] binary)
        {
            using (var stream = Decompress(binary))
            {
                var state = CoordinatorState.ParseFrom(stream);
                var shards = ImmutableDictionary.CreateRange(state.ShardsList.Select(entry => new KeyValuePair<string, IActorRef>(entry.ShardId, ResolveActorRef(entry.RegionRef))));
                var regionsZero = ImmutableDictionary.CreateRange(state.RegionsList.Select(region => new KeyValuePair<IActorRef, IImmutableList<string>>(ResolveActorRef(region), ImmutableList<string>.Empty)));
                var regions = shards.Aggregate(regionsZero, (acc, entry) => acc.SetItem(entry.Value, acc[entry.Value].Add(entry.Key)));
                var proxies = state.RegionProxiesList.Select(ResolveActorRef).ToImmutableHashSet();
                var unallocatedShards = state.UnallocatedShardsList.ToImmutableHashSet();

                return new PersistentShardCoordinator.State(
                    shards: shards,
                    regions: regions,
                    regionProxies: proxies,
                    unallocatedShards: unallocatedShards);
            }
        }