private static ModulesManager ManagerFromIni(string receiverHost, int receiverPort, string rpcHost, int rpcPort, IDictionary <string, string> configuration, RSA rsa, ZMI zmi) { if (!configuration.TryGetInt("queryInterval", out var queryInterval)) { queryInterval = 5; } if (!configuration.TryGetInt("gossipInterval", out var gossipInterval)) { gossipInterval = 5; } if (!configuration.TryGetInt("purgeInterval", out var purgeInterval)) { purgeInterval = 60; } if (!configuration.TryGetInt("receiverTimeout", out var receiverTimeout)) { receiverTimeout = 3000; } if (!configuration.TryGetInt("retryInterval", out var retryInterval)) { retryInterval = 2; } if (!configuration.TryGetInt("maxRetriesCount", out var maxRetriesCount)) { maxRetriesCount = 5; } if (!configuration.TryGetInt("maxPacketSize", out var maxPacketSize)) { maxPacketSize = 2000; } if (!configuration.TryGetValue("gossipStrategy", out var gossipStrategyStr) || !TryGetGossipStrategy(gossipStrategyStr, out var gossipStrategy)) { gossipStrategy = new RandomGossipStrategy(); } if (!configuration.TryGetValue("loggerLevel", out var loggerLevelStr) || !TryGetLoggerLevel(loggerLevelStr, out var loggerLevel)) { loggerLevel = LoggerLevel.All; } if (!configuration.TryGetValue("loggerVerbosity", out var loggerVerbosityStr) || !TryGetLoggerVerbosity(loggerVerbosityStr, out var loggerVerbosity)) { loggerVerbosity = LoggerVerbosity.WithFileName; } receiverHost = receiverHost.Trim(' '); rpcHost = rpcHost.Trim(' '); Logger.LoggerLevel = loggerLevel; Logger.LoggerVerbosity = loggerVerbosity; return(new ModulesManager(maxPacketSize, receiverHost, receiverPort, receiverTimeout, rpcHost, rpcPort, queryInterval, purgeInterval, rsa, gossipStrategy, gossipInterval, retryInterval, maxRetriesCount, zmi)); }
private static bool TryGetGossipStrategy(string strategyName, out IGossipStrategy gossipStrategy) { switch (strategyName) { case "random": gossipStrategy = new RandomGossipStrategy(); return(true); case "randomExp": gossipStrategy = new RandomExponentialGossipStrategy(); return(true); case "roundRobin": gossipStrategy = new RoundRobinGossipStrategy(); return(true); case "roundRobinExp": gossipStrategy = new RoundRobinExponentialGossipStrategy(); return(true); } gossipStrategy = null; return(false); }