public Galilei(string configPath) { srv = new Server(); config = new Configurator(configPath, srv); builder = new TreeBuilder(srv); builder.ConfigChange += new TreeBuilder.ConfigChangeHandler(OnConfig); queueToSave = new Queue<Node>(); listener = new HttpListener(); workFlow = new Thread(new ThreadStart(WorkFlow)); }
public void Load() { if (!File.Exists(configPath)) return; StreamReader file = File.OpenText(configPath); using(JsonTextReader jsonReader = new JsonTextReader(file)) { while(jsonReader.Read()) { if (jsonReader.TokenType == JsonToken.PropertyName) { string fullName = (string)jsonReader.Value; if (jsonReader.Read() && jsonReader.TokenType == JsonToken.StartObject) { NameValueCollection parms = new NameValueCollection(); while(jsonReader.Read() && jsonReader.TokenType != JsonToken.EndObject) { if (jsonReader.TokenType == JsonToken.PropertyName) { string key = (string)jsonReader.Value; if (jsonReader.Read()) { string value = (String)jsonReader.Value; parms.Add(key, value); } } } TreeBuilder builder = new TreeBuilder(srv); try { builder.Update(fullName, parms); } catch (XpcaPathError) { builder.Build(fullName, parms); } } } } } file.Close(); }