Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }