Diana Software
QGuiSession.cc
Go to the documentation of this file.
1 #include "QGuiSession.hh"
2 #include <iostream>
3 #include <sstream>
4 
5 using std::endl;
6 using std::map;
7 using std::string;
8 using std::stringstream;
9 
11 
12 QGuiSession::QGuiSession(const std::string& name)
13  : fUseReaderFileList(false)
14 {
15  SetName(name);
16 }
17 
19 {
20 }
21 
23 {
24  if (fCalibrationWindow.find(name) == fCalibrationWindow.end()) {
25  QGuiCalibrationWindow calibrationWindow;
26  calibrationWindow.SetName(name);
27  fCalibrationWindow.insert(map<string, QGuiCalibrationWindow>::value_type(name, calibrationWindow));
28  }
29  return fCalibrationWindow.find(name)->second;
30 }
31 
32 void QGuiSession::Dump(std::ostream& o) const
33 {
34  stringstream sessionDump;
35 
36  map<string, QGuiHistogram>::const_iterator histogramIter;
37  for (histogramIter = fHistogram.begin(); histogramIter != fHistogram.end(); ++histogramIter) {
38  sessionDump << histogramIter->second.Dump();
39  sessionDump << CANVAS_WINDOW_NAME_KEY << " " << GetName() << endl;
40  sessionDump << endl;
41  }
42 
43  map<string, QGuiScatterPlot>::const_iterator scatterPlotIter;
44  for (scatterPlotIter = fScatterPlot.begin(); scatterPlotIter != fScatterPlot.end(); ++scatterPlotIter) {
45  sessionDump << scatterPlotIter->second.Dump();
46  sessionDump << CANVAS_WINDOW_NAME_KEY << " " << GetName() << endl;
47  sessionDump << endl;
48  }
49 
50  map<string, QGuiCalibrationWindow>::const_iterator calWindowIter;
51  for ( calWindowIter = fCalibrationWindow.begin();
52  calWindowIter != fCalibrationWindow.end();
53  ++calWindowIter ) {
54  sessionDump << calWindowIter->second.Dump();
55  sessionDump << endl;
56  }
57 
58  o<<sessionDump.str();
59 }
60 
62 {
63  if (fHistogram.find(name) == fHistogram.end()) {
64  QGuiHistogram histogram;
65  histogram.SetName(name);
66  fHistogram.insert(map<string, QGuiHistogram>::value_type(name, histogram));
67  }
68  return fHistogram.find(name)->second;
69 }
70 
72 {
73  if (fScatterPlot.find(name) == fScatterPlot.end()) {
74  QGuiScatterPlot scatterPlot;
75  scatterPlot.SetName(name);
76  fScatterPlot.insert(map<string, QGuiScatterPlot>::value_type(name, scatterPlot));
77  }
78  return fScatterPlot.find(name)->second;
79 }
#define CANVAS_WINDOW_NAME_KEY
QObjectImp(QGuiSession)
Calibration window for GUI session.
Histogram data for GUI session.
Scatter plot data for GUI session.
void SetName(const std::string &name)
Set name.
Class to generate session files for the GUI from a Diana module.
Definition: QGuiSession.hh:69
QGuiScatterPlot & ScatterPlot(std::string name)
Access scatter plot.
Definition: QGuiSession.cc:71
std::map< std::string, QGuiCalibrationWindow > fCalibrationWindow
Calibration windows.
Definition: QGuiSession.hh:109
QGuiSession(const std::string &name="GUI Session")
Default constructor.
Definition: QGuiSession.cc:12
std::map< std::string, QGuiHistogram > fHistogram
Histograms.
Definition: QGuiSession.hh:112
virtual ~QGuiSession()
Default destructor.
Definition: QGuiSession.cc:18
QGuiHistogram & Histogram(std::string name)
Access histogram.
Definition: QGuiSession.cc:61
void SetName(const std::string &name)
Set name of session, becomes canvas window name.
Definition: QGuiSession.hh:102
QGuiCalibrationWindow & CalibrationWindow(std::string name)
Access calibration window.
Definition: QGuiSession.cc:22
void Dump(std::ostream &o) const
Dump session to string to be written to file.
Definition: QGuiSession.cc:32
std::map< std::string, QGuiScatterPlot > fScatterPlot
Scatter plots.
Definition: QGuiSession.hh:118