/
githubmirror
/
shadowsocks-windows
Обзор
Документация
Войти
/
githubmirror
/
shadowsocks-windows
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
4.1.5
shadowsocks-csharp/Model/StatisticsStrategyConfiguration.cs
68 строк
2 KB
kimw
Disable StatisticsStrategy by default.
02 май 2016, 01:35
02 май 2016, 01:35
5b1cf36
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using Newtonsoft.Json; using Shadowsocks.Controller; namespace Shadowsocks.Model { [Serializable] public class StatisticsStrategyConfiguration { public static readonly string ID = "com.shadowsocks.strategy.statistics"; public bool StatisticsEnabled { get; set; } = false; public bool ByHourOfDay { get; set; } = true; public bool Ping { get; set; } public int ChoiceKeptMinutes { get; set; } = 10; public int DataCollectionMinutes { get; set; } = 10; public int RepeatTimesNum { get; set; } = 4; private const string ConfigFile = "statistics-config.json"; public static StatisticsStrategyConfiguration Load() { try { var content = File.ReadAllText(ConfigFile); var configuration = JsonConvert.DeserializeObject<StatisticsStrategyConfiguration>(content); return configuration; } catch (FileNotFoundException) { var configuration = new StatisticsStrategyConfiguration(); Save(configuration); return configuration; } catch (Exception e) { Logging.LogUsefulException(e); return new StatisticsStrategyConfiguration(); } } public static void Save(StatisticsStrategyConfiguration configuration) { try { var content = JsonConvert.SerializeObject(configuration, Formatting.Indented); File.WriteAllText(ConfigFile, content); } catch (Exception e) { Logging.LogUsefulException(e); } } public Dictionary<string, float> Calculations; public StatisticsStrategyConfiguration() { var properties = typeof(StatisticsRecord).GetFields(BindingFlags.Instance | BindingFlags.Public); Calculations = properties.ToDictionary(p => p.Name, _ => (float)0); } } }