Continueed playing around with the buildsystem.
[aesalon.git] / include / monitor / Coordinator.h
blob95f3face6ca86b88d935693faf393984890153ef
1 /**
2 Aesalon, a tool to visualize a program's behaviour at run-time.
3 Copyright (C) 2010, Aesalon Development Team.
5 Aesalon is distributed under the terms of the GNU GPLv3. For more
6 licensing information, see the file LICENSE included with the distribution.
8 @file include/monitor/Coordinator.h
12 #ifndef AesalonMonitor_Coordinator_H
13 #define AesalonMonitor_Coordinator_H
15 #include "config/Vault.h"
16 #include "module/List.h"
17 #include "vcommunication/GeneralSink.h"
19 namespace Monitor {
21 class Coordinator {
22 private:
23 static Coordinator *m_instance;
24 char **m_argv;
25 int m_argcOffset;
26 Config::Vault *m_vault;
27 Module::List *m_moduleList;
28 VCommunication::GeneralSink *m_generalDataSink;
29 int m_returnValue;
30 public:
31 static Coordinator *instance() { return m_instance; }
32 Coordinator(char **argv);
33 ~Coordinator();
35 char **argv() const { return m_argv; }
36 Config::Vault *vault() const { return m_vault; }
37 int argcOffset() const { return m_argcOffset; }
38 Module::List *moduleList() const { return m_moduleList; }
39 int returnValue() const { return m_returnValue; }
40 void setReturnValue(int newValue) { m_returnValue = newValue; }
42 void run();
43 private:
44 void parseConfigs();
45 void usage(bool displayHelp);
48 } // namespace Monitor
50 #endif