qBittorrent
LogController Class Referencefinal

#include <logcontroller.h>

Inheritance diagram for LogController:
Collaboration diagram for LogController:

Public Member Functions

 APIController (ISessionManager *sessionManager, QObject *parent=nullptr)
 
- Public Member Functions inherited from APIController
 APIController (ISessionManager *sessionManager, QObject *parent=nullptr)
 
QVariant run (const QString &action, const StringMap &params, const DataMap &data={})
 
ISessionManagersessionManager () const
 

Private Slots

void mainAction ()
 
void peersAction ()
 

Additional Inherited Members

- Protected Member Functions inherited from APIController
const StringMapparams () const
 
const DataMapdata () const
 
void requireParams (const QVector< QString > &requiredParams) const
 
void setResult (const QString &result)
 
void setResult (const QJsonArray &result)
 
void setResult (const QJsonObject &result)
 

Detailed Description

Definition at line 33 of file logcontroller.h.

Member Function Documentation

◆ APIController()

APIController::APIController
explicit

Definition at line 53 of file apicontroller.cpp.

41  : QObject {parent}
43 {
44 }
ISessionManager * m_sessionManager
Definition: apicontroller.h:69
ISessionManager * sessionManager() const

◆ mainAction

void LogController::mainAction ( )
privateslot

Definition at line 60 of file logcontroller.cpp.

61 {
63 
64  const bool isNormal = parseBool(params()["normal"]).value_or(true);
65  const bool isInfo = parseBool(params()["info"]).value_or(true);
66  const bool isWarning = parseBool(params()["warning"]).value_or(true);
67  const bool isCritical = parseBool(params()["critical"]).value_or(true);
68 
69  bool ok = false;
70  int lastKnownId = params()["last_known_id"].toInt(&ok);
71  if (!ok)
72  lastKnownId = -1;
73 
74  Logger *const logger = Logger::instance();
75  QJsonArray msgList;
76 
77  for (const Log::Msg &msg : asConst(logger->getMessages(lastKnownId)))
78  {
79  if (!(((msg.type == Log::NORMAL) && isNormal)
80  || ((msg.type == Log::INFO) && isInfo)
81  || ((msg.type == Log::WARNING) && isWarning)
82  || ((msg.type == Log::CRITICAL) && isCritical)))
83  continue;
84 
85  msgList.append(QJsonObject
86  {
87  {QLatin1String(KEY_LOG_ID), msg.id},
88  {QLatin1String(KEY_LOG_TIMESTAMP), msg.timestamp},
89  {QLatin1String(KEY_LOG_MSG_TYPE), msg.type},
90  {QLatin1String(KEY_LOG_MSG_MESSAGE), msg.message}
91  });
92  }
93 
94  setResult(msgList);
95 }
const StringMap & params() const
void setResult(const QString &result)
Definition: logger.h:73
QVector< Log::Msg > getMessages(int lastKnownId=-1) const
Definition: logger.cpp:93
static Logger * instance()
Definition: logger.cpp:56
constexpr std::add_const_t< T > & asConst(T &t) noexcept
Definition: global.h:42
const char KEY_LOG_TIMESTAMP[]
const char KEY_LOG_MSG_MESSAGE[]
const char KEY_LOG_ID[]
const char KEY_LOG_MSG_TYPE[]
@ WARNING
Definition: logger.h:47
@ NORMAL
Definition: logger.h:45
@ CRITICAL
Definition: logger.h:48
@ INFO
Definition: logger.h:46
std::optional< bool > parseBool(const QString &string)
Definition: string.cpp:72

References asConst(), Log::CRITICAL, Logger::getMessages(), Log::INFO, Logger::instance(), KEY_LOG_ID, KEY_LOG_MSG_MESSAGE, KEY_LOG_MSG_TYPE, KEY_LOG_TIMESTAMP, Log::NORMAL, APIController::params(), Utils::String::parseBool(), APIController::setResult(), and Log::WARNING.

Here is the call graph for this function:

◆ peersAction

void LogController::peersAction ( )
privateslot

Definition at line 107 of file logcontroller.cpp.

108 {
109  bool ok = false;
110  int lastKnownId = params()["last_known_id"].toInt(&ok);
111  if (!ok)
112  lastKnownId = -1;
113 
114  Logger *const logger = Logger::instance();
115  QJsonArray peerList;
116 
117  for (const Log::Peer &peer : asConst(logger->getPeers(lastKnownId)))
118  {
119  peerList.append(QJsonObject
120  {
121  {QLatin1String(KEY_LOG_ID), peer.id},
122  {QLatin1String(KEY_LOG_TIMESTAMP), peer.timestamp},
123  {QLatin1String(KEY_LOG_PEER_IP), peer.ip},
124  {QLatin1String(KEY_LOG_PEER_BLOCKED), peer.blocked},
125  {QLatin1String(KEY_LOG_PEER_REASON), peer.reason}
126  });
127  }
128 
129  setResult(peerList);
130 }
QVector< Log::Peer > getPeers(int lastKnownId=-1) const
Definition: logger.cpp:109
const char KEY_LOG_PEER_REASON[]
const char KEY_LOG_PEER_BLOCKED[]
const char KEY_LOG_PEER_IP[]

References asConst(), Logger::getPeers(), Logger::instance(), KEY_LOG_ID, KEY_LOG_PEER_BLOCKED, KEY_LOG_PEER_IP, KEY_LOG_PEER_REASON, KEY_LOG_TIMESTAMP, APIController::params(), and APIController::setResult().

Here is the call graph for this function:

The documentation for this class was generated from the following files: