File: aoqplotcontroller.h

package info (click to toggle)
aoflagger 3.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,688 kB
  • sloc: cpp: 83,116; python: 10,187; sh: 260; makefile: 178
file content (50 lines) | stat: -rw-r--r-- 1,376 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef AOQPLOT_CONTROLLER_H
#define AOQPLOT_CONTROLLER_H

#include "../../structures/antennainfo.h"

#include "../../quality/qualitytablesformatter.h"

#include <memory>
#include <string>
#include <utility>
#include <vector>

class AOQPlotController {
 public:
  AOQPlotController();
  ~AOQPlotController();

  void Attach(class AOQPlotWindow* window) { _window = window; }

  void ReadStatistics(const std::vector<std::string>& files) {
    ReadStatistics(files, true, true, 1000, 1000, false);
  }

  void ReadStatistics(const std::vector<std::string>& files,
                      bool downsampleTime, bool downsampleFreq, size_t timeSize,
                      size_t freqSize, bool correctHistograms);

  struct PlotSavingData {
    QualityTablesFormatter::StatisticKind statisticKind;
    std::string filenamePrefix;
  };

  void Save(const PlotSavingData& data, size_t width, size_t height);

  void Initialize(class AOQPageController* controller, bool averagedStats);

 private:
  void close();
  void readMetaInfoFromMS(const std::string& filename);

  bool _isOpen;
  std::unique_ptr<class StatisticsCollection> _statCollection;
  std::unique_ptr<class HistogramCollection> _histCollection;
  std::unique_ptr<class StatisticsCollection> _fullStats;
  std::vector<class AntennaInfo> _antennas;
  size_t _polarizationCount;
  class AOQPlotWindow* _window;
};

#endif