public static IAgentDistribution <T> NewDistribution <T>(DistributionStrategy strategy) where T : AbstractAgent { return(strategy switch { DistributionStrategy.Uniform => new UniformAgentDistribution <T>(), _ => throw new StrategyNotImplementedException <DistributionStrategy>(strategy), });
public void ShouldDistributeBySize(int size, int chunkSize, int[] expected) { // Act var distribution = DistributionStrategy.BySize(size, chunkSize); // Assert distribution.Should().BeEquivalentTo(expected); }
/// <summary> /// Sets a distribution strategy for a given endpoint. /// </summary> /// <param name="config">Config object.</param> /// <param name="distributionStrategy">The instance of a distribution strategy.</param> public static void SetMessageDistributionStrategy(this RoutingSettings <MsmqTransport> config, DistributionStrategy distributionStrategy) { Guard.AgainstNull(nameof(config), config); Guard.AgainstNull(nameof(distributionStrategy), distributionStrategy); config.Settings.GetOrCreate <List <DistributionStrategy> >().Add(distributionStrategy); }
/// <summary> /// Sets a distribution strategy for a given endpoint. /// </summary> /// <param name="config">Config object.</param> /// <param name="distributionStrategy">The instance of a distribution strategy.</param> public static void SetMessageDistributionStrategy(this RoutingSettings <MsmqTransport> config, DistributionStrategy distributionStrategy) { config.Settings.GetOrCreate <DistributionPolicy>().SetDistributionStrategy(distributionStrategy); }
/// <summary> /// Sets a distribution strategy for a given endpoint. /// </summary> /// <param name="config">Config object.</param> /// <param name="distributionStrategy">The instance of a distribution strategy.</param> public static void SetMessageDistributionStrategy(this RoutingSettings<MsmqTransport> config, DistributionStrategy distributionStrategy) { config.Settings.GetOrCreate<DistributionPolicy>().SetDistributionStrategy(distributionStrategy); }
/// <summary> /// Sets the distribution strategy for a given endpoint. /// </summary> /// <param name="distributionStrategy">Distribution strategy to be used.</param> public void SetDistributionStrategy(DistributionStrategy distributionStrategy) { Guard.AgainstNull(nameof(distributionStrategy), distributionStrategy); configuredStrategies[Tuple.Create(distributionStrategy.Endpoint, distributionStrategy.Scope)] = distributionStrategy; }