public VBucketServerMap(VBucketServerMapDto serverMapDto)
        {
            // ReSharper disable once ConditionIsAlwaysTrueOrFalse
            if (serverMapDto == null)
            {
                ThrowHelper.ThrowArgumentNullException(nameof(serverMapDto));
            }

            HashAlgorithm     = serverMapDto.HashAlgorithm;
            NumReplicas       = serverMapDto.NumReplicas;
            ServerList        = serverMapDto.ServerList;
            VBucketMap        = serverMapDto.VBucketMap;
            VBucketMapForward = serverMapDto.VBucketMapForward;

            EndPoints = new ReadOnlyCollection <HostEndpointWithPort>(
                serverMapDto.ServerList.Select(HostEndpointWithPort.Parse).ToArray());
        }
        public VBucketServerMap(VBucketServerMapDto serverMapDto, IList <IPEndPoint> ipEndPoints)
        {
            if (serverMapDto == null)
            {
                throw new ArgumentNullException(nameof(serverMapDto));
            }
            if (ipEndPoints == null)
            {
                throw new ArgumentNullException(nameof(ipEndPoints));
            }

            HashAlgorithm     = serverMapDto.HashAlgorithm;
            NumReplicas       = serverMapDto.NumReplicas;
            ServerList        = serverMapDto.ServerList;
            VBucketMap        = serverMapDto.VBucketMap;
            VBucketMapForward = serverMapDto.VBucketMapForward;

            IPEndPoints = new ReadOnlyCollection <IPEndPoint>(ipEndPoints);
        }
Exemple #3
0
 public async Task <VBucketServerMap> CreateAsync(VBucketServerMapDto serverMapDto,
                                                  CancellationToken cancellationToken = default) =>
 new VBucketServerMap(serverMapDto,
                      await GetIpEndPointsAsync(serverMapDto.ServerList, cancellationToken).ToListAsync(cancellationToken)
                      .ConfigureAwait(false));