File indexing completed on 2024-05-26 05:14:35

0001 /***************************************************************************
0002  *   SPDX-FileCopyrightText: 2006 Tobias Koenig <tokoe@kde.org>            *
0003  *                                                                         *
0004  *   SPDX-License-Identifier: LGPL-2.0-or-later                            *
0005  ***************************************************************************/
0006 
0007 #pragma once
0008 
0009 #include <QObject>
0010 
0011 #include "tracerinterface.h"
0012 
0013 namespace Akonadi
0014 {
0015 namespace Server
0016 {
0017 /**
0018  * A tracer which forwards all tracing information as dbus signals.
0019  */
0020 class DBusTracer : public QObject, public TracerInterface
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     DBusTracer();
0026     ~DBusTracer() override;
0027 
0028     void beginConnection(const QString &identifier, const QString &msg) override;
0029     void endConnection(const QString &identifier, const QString &msg) override;
0030     void connectionInput(const QString &identifier, const QByteArray &msg) override;
0031     void connectionOutput(const QString &identifier, const QByteArray &msg) override;
0032     void signal(const QString &signalName, const QString &msg) override;
0033     void warning(const QString &componentName, const QString &msg) override;
0034     void error(const QString &componentName, const QString &msg) override;
0035 
0036     TracerInterface::ConnectionFormat connectionFormat() const override
0037     {
0038         return TracerInterface::Json;
0039     }
0040 
0041 Q_SIGNALS:
0042     void connectionStarted(const QString &identifier, const QString &msg);
0043     void connectionEnded(const QString &identifier, const QString &msg);
0044     void connectionDataInput(const QString &identifier, const QString &msg);
0045     void connectionDataOutput(const QString &identifier, const QString &msg);
0046     void signalEmitted(const QString &signalName, const QString &msg);
0047     void warningEmitted(const QString &componentName, const QString &msg);
0048     void errorEmitted(const QString &componentName, const QString &msg);
0049 };
0050 
0051 } // namespace Server
0052 } // namespace Akonadi