public void AdaptiveLoadBalancingPool_Should_be_serializable() { var simplePool = new AdaptiveLoadBalancingPool(); CheckSerialization(simplePool); var complicatedPool = new AdaptiveLoadBalancingPool( metricsSelector: new MixMetricsSelector(new CapacityMetricsSelector[] { CpuMetricsSelector.Instance, MemoryMetricsSelector.Instance, }.ToImmutableArray()), nrOfInstances: 7, routerDispatcher: "my-dispatcher", usePoolDispatcher: true ); CheckSerialization(complicatedPool); }
private byte[] AdaptiveLoadBalancingPoolToBinary(Metrics.AdaptiveLoadBalancingPool pool) { var proto = new AdaptiveLoadBalancingPool() { NrOfInstances = (uint)pool.NrOfInstances, UsePoolDispatcher = pool.UsePoolDispatcher }; if (!pool.MetricsSelector.Equals(Metrics.MixMetricsSelector.Instance)) { proto.MetricsSelector = MetricsSelectorToProto(pool.MetricsSelector); } if (pool.RouterDispatcher != Dispatchers.DefaultDispatcherId) { proto.RouterDispatcher = pool.RouterDispatcher; } return(proto.ToByteArray()); }