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
51
|
#include <pch.hpp>
#include "appEngine.h"
#include "logger.h"
#include "presenter.h"
#include <stdexcept>
#include <boost/foreach.hpp>
ApplicationEngine * ApplicationEngine::currentEngine = NULL;
ApplicationEngine::ApplicationEngine()
{
if (currentEngine) {
throw std::runtime_error("One application at a time, please");
}
currentEngine = this;
}
ApplicationEngine::~ApplicationEngine()
{
currentEngine = NULL;
}
void
ApplicationEngine::logMessage(bool writeLog, const Glib::ustring & g, const Glib::ustring & m)
{
if (writeLog) {
Logger()->messagef(LOG_NOTICE, "%s: %s: %s", __PRETTY_FUNCTION__, g.c_str(), m.c_str());
}
appMessages.push_back(new Message(g, m));
}
void
ApplicationEngine::addCoreAppData(const MultiRowSetPresenter * p) const
{
// Message log
p->addNewRowSet("messages", env()->scriptNamespacePrefix);
BOOST_FOREACH(const Messages::value_type & m, appMessages) {
p->addNewRow("message");
p->addAttribute("group", m->group);
p->addAttribute("text", m->message);
p->finishRow();
}
p->finishRowSet();
}
ApplicationEngine::Message::Message(const Glib::ustring & g, const Glib::ustring & m) :
group(g),
message(m)
{
}
|