Example #1
0
        protected override IEnumerable <EndpointAssignment> DoGetEndpointsForCall(string remoteAddress, string contract, ShardKey shardKey, Atom network, Atom binding)
        {
            var shard = ((int)shardKey.GetDistributedStableHash()) & CoreConsts.ABS_HASH_MASK;

            var shards = DoGetEndpointsForAllShardsArray(remoteAddress, contract, network, binding);

            if (shards == null || shards.Length == 0)
            {
                return(Enumerable.Empty <EndpointAssignment>());
            }

            var result = shards[shard % shards.Length];

            return(result);
        }