Пример #1
0
        static QFile hamsterfyMetricsFile(int id, QFile metricsFile)
        {
            var hamster = hamsterMetricsFile(id, metricsFile);

            info("starting write to hamster db: " + hamster);
            var db = new Database();

            db.Create(hamster.path());
            var metricCsv       = new CsvStreamer(metricsFile, true);
            var fileMetricNames = rest(list <string>(metricCsv.header()));
            var runs            = new List <int>();

            eachUntilNull(() => metricCsv.next(), jRecord => {
                var record = list <string>(jRecord);
                var run    = int.Parse(first(record));
                runs.Add(run);
                var doubles = array(convert(rest(record), s => STOMetricsWriter.fromMetricCsv(s)));
                var bytes   = new byte[doubles.Length * 8];
                Buffer.BlockCopy(doubles, 0, bytes, 0, bytes.Length);
                db.Insert(runKey(run), bytes);
            });
            db.Insert(METRICS_KEY, serialize(list(fileMetricNames)));
            db.Insert(RUNS_KEY, serialize(runs));
            insertMetricSortedRuns(db);
            db.Close();
            info("done hamster write");
            return(hamster);
        }
Пример #2
0
        IEnumerable <string> metricsFromExistingFile()
        {
            var csv = new CsvStreamer(allFile(), true);

            try {
                return(rest(list <string>(csv.header())));
            } finally {
                csv.close();
            }
        }
Пример #3
0
        public List <int> completedRuns()
        {
            var all = allFile();

            if (!all.exists())
            {
                return(new List <int>());
            }
            var csv    = new CsvStreamer(all, true);
            var result = new List <int>();

            while (trueDat())
            {
                var next = csv.next();
                if (next == null)
                {
                    break;
                }
                var record = list <string>(next);
                result.Add(int.Parse(first(record)));
            }
            return(result);
        }
Пример #4
0
        static void hamsterfyParametersFile(int id, QFile paramsFile)
        {
            var hamster = hamsterParametersFile(id, paramsFile);

            info("starting write to hamster db: " + hamster);
            var db = new Database();

            db.Create(hamster.path());
            var paramCsv       = new CsvStreamer(paramsFile, true);
            var fileParamNames = rest(list <string>(paramCsv.header()));
            var runs           = new List <int>();

            eachUntilNull(() => paramCsv.next(), jRecord => {
                var record = list <string>(jRecord);
                var run    = int.Parse(first(record));
                runs.Add(run);
                db.Insert(runKey(run), serialize(list(rest(record))));
            });
            db.Insert(PARAMS_KEY, serialize(list(fileParamNames)));
            db.Insert(RUNS_KEY, serialize(runs));
            insertParameterSortedRuns(db);
            db.Close();
            info("done hamster write");
        }