measure.h
1 /***************************************************************************
2  Copyright (C) 2002-2015 Kentaro Kitagawa
3  kitagawa@phys.s.u-tokyo.ac.jp
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  You should have received a copy of the GNU Library General
11  Public License and a list of authors along with this program;
12  see the files COPYING and AUTHORS.
13  ***************************************************************************/
14 //! Class XMeasure
15 //! The root node of KAME
16 //---------------------------------------------------------------------------
17 #ifndef measureH
18 #define measureH
19 
20 #include "xnode.h"
21 #include "xnodeconnector.h"
22 
23 class XThermometerList;
24 class XDriverList;
25 class XInterfaceList;
26 class XStatusPrinter;
27 class XDriverList;
28 class XScalarEntryList;
29 class XGraphList;
30 class XChartList;
31 class XTextWriter;
32 class XRawStreamRecorder;
34 class XRuby;
35 
36 /*! The root object of KAME.
37  */
38 class DECLSPEC_KAME XMeasure : public XNode {
39 public:
40  XMeasure(const char *name, bool runtime);
41  virtual ~XMeasure();
42 
43  //! call me before loading a measurement file.
44  void initialize();
45  //! clean all drivers, thermometers.
46  void terminate();
47  //! stop all drivers.
48  void stop();
49 
50  const shared_ptr<XThermometerList> &thermometers() const {return m_thermometers;}
51  const shared_ptr<XDriverList> &drivers() const {return m_drivers;}
52  const shared_ptr<XInterfaceList> &interfaces() const {return m_interfaces;}
53  const shared_ptr<XScalarEntryList> &scalarEntries() const {return m_scalarEntries;}
54  const shared_ptr<XGraphList> &graphs() const {return m_graphList;}
55  const shared_ptr<XChartList> &charts() const {return m_chartList;}
56  const shared_ptr<XTextWriter> &textWriter() const {return m_textWriter;}
57  const shared_ptr<XRawStreamRecorder> &rawStreamRecorder() const {return m_rawStreamRecorder;}
58  const shared_ptr<XRawStreamRecordReader> &rawStreamRecordReader() const {return m_rawStreamRecordReader;}
59 
60  const shared_ptr<XRuby> &ruby() const {return m_ruby;}
61 private:
62  shared_ptr<XRuby> m_ruby;
63 
64  const shared_ptr<XThermometerList> m_thermometers;
65  const shared_ptr<XScalarEntryList> m_scalarEntries;
66  const shared_ptr<XGraphList> m_graphList;
67  const shared_ptr<XChartList> m_chartList;
68  const shared_ptr<XInterfaceList> m_interfaces;
69  const shared_ptr<XDriverList> m_drivers;
70  const shared_ptr<XTextWriter> m_textWriter;
71  const shared_ptr<XRawStreamRecorder> m_rawStreamRecorder;
72  const shared_ptr<XRawStreamRecordReader> m_rawStreamRecordReader;
73 
74  const xqcon_ptr m_conRecordReader,
75  m_conDrivers, m_conInterfaces, m_conEntries, m_conGraphs,
76  m_conTextWrite, m_conTextURL, m_conTextLastLine,
77  m_conLogURL, m_conLogWrite, m_conLogEvery,
78  m_conBinURL, m_conBinWrite, m_conUrlRubyThread,
79  m_conCalTable, m_conNodeBrowser;
80  shared_ptr<XListener> m_lsnOnReleaseDriver;
81  void onReleaseDriver(const Snapshot &shot, const XListNodeBase::Payload::ReleaseEvent &e);
82 };
83 
84 //! use this to show a floating information at the front of the main window.
85 //! \sa XStatusPrinter
86 extern DECLSPEC_KAME shared_ptr<XStatusPrinter> g_statusPrinter;
87 
88 //---------------------------------------------------------------------------
89 #endif

Generated for KAME4 by  doxygen 1.8.3