Пример #1
0
        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));
        }
Пример #2
0
        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();
        }