refs #316 Application context relays messages over DBus between the CLogHandler instances of different processes.

This commit is contained in:
Mathew Sutcliffe
2014-09-25 22:07:19 +01:00
parent eceb67c38f
commit ebab95dd06
6 changed files with 52 additions and 0 deletions

View File

@@ -6,6 +6,7 @@
#include "blackcore/context_application_proxy.h"
#include "blackcore/input_manager.h"
#include "blackmisc/blackmiscfreefunctions.h"
#include "blackmisc/loghandler.h"
#include <QObject>
#include <QMetaEnum>
#include <QDBusConnection>
@@ -25,6 +26,14 @@ namespace BlackCore
CInputManager *inputManager = CInputManager::getInstance();
connect(inputManager, &CInputManager::hotkeyFuncEvent, this, &CContextApplicationProxy::processHotkeyFuncEvent);
inputManager->setEventForwarding(true);
connect(this, &IContextApplication::messageLogged, this, [](const CStatusMessage &message, const Event::COriginator &origin)
{
if (!origin.isFromSameProcess())
{
CLogHandler::instance()->logRemoteMessage(message);
}
});
}
/*
@@ -34,11 +43,22 @@ namespace BlackCore
{
// signals originating from impl side
bool s = connection.connect(serviceName, IContextApplication::ObjectPath(), IContextApplication::InterfaceName(),
"messageLogged", this, SIGNAL(messageLogged(BlackMisc::CStatusMessage,BlackMisc::Event::COriginator)));
Q_ASSERT(s);
s = connection.connect(serviceName, IContextApplication::ObjectPath(), IContextApplication::InterfaceName(),
"componentChanged", this, SIGNAL(componentChanged(uint, uint)));
Q_ASSERT(s);
}
/*
* Log a message
*/
void CContextApplicationProxy::logMessage(const CStatusMessage &message, const Event::COriginator &origin)
{
this->m_dBusInterface->callDBus(QLatin1Literal("logMessage"), message, origin);
}
/*
* Ping, is DBus alive?
*/