2#include <QLoggingCategory>
5#include "PluginWakeOnLan.h"
6#include "OperateWakeOnLan.h"
8#ifdef HAVE_PCAPPLUSPLUS
9 #include "PcapPlusPlusVersion.h"
10 #include "PcapDevice.h"
12 static Q_LOGGING_CATEGORY(logPcpp,
"WOL.PCPP")
13 void Pcpp_Logger(pcpp::Logger::LogLevel logLevel,
14 const std::
string& logMessage,
15 const std::
string& file,
16 const std::
string& method,
21 case pcpp::Logger::LogLevel::Debug:
22 qDebug(logPcpp) << logMessage.c_str();
24 case pcpp::Logger::LogLevel::Info:
25 qInfo(logPcpp) << logMessage.c_str();
27 case pcpp::Logger::LogLevel::Error:
28 qCritical(logPcpp) << logMessage.c_str();
34static Q_LOGGING_CATEGORY(log,
"WakeOnLan.Plugin")
39#ifdef HAVE_PCAPPLUSPLUS
40 pcpp::Logger::getInstance().setLogPrinter(Pcpp_Logger);
41 pcpp::Logger::getInstance().setAllModulesToLogLevel(
42 pcpp::Logger::LogLevel::Debug);
44 pcpp::Logger::getInstance().enableLogs();
45 pcpp::Logger::getInstance().setLogLevel(
46 pcpp::LogModule::PcapLogModuleLiveDevice, pcpp::Logger::Info);
50CPluginWakeOnLan::~CPluginWakeOnLan()
52 qDebug(log) <<
"CPluginWakeOnLan::~CPluginWakeOnLan()";
55const CPlugin::TYPE CPluginWakeOnLan::Type()
const
57 return TYPE::NetworkTools;
67 return tr(
"Wake on lan");
72 return tr(
"Wake on lan");
75const QIcon CPluginWakeOnLan::Icon()
const
77 return QIcon::fromTheme(
"lan");
82 return PluginWakeOnLan_VERSION;
88#ifdef HAVE_PCAPPLUSPLUS
89 szDetails =
"- PcapPlusPlus";
91 szDetails +=
" - " + tr(
"version: ")
92 + pcpp::getPcapPlusPlusVersionFull().c_str();
94 szDetails +=
" - " + tr(
"Pcap lib version info: ")
95 + pcpp::IPcapDevice::getPcapLibVersionInfo().c_str();
104 if(!m_pOperate)
return m_pOperate;
106 QString szFile = m_pOperate->GetSettingsFile();
108 if(!d.exists(szFile))
return m_pOperate;
111 bool bRet = QMetaObject::invokeMethod(
114 Qt::DirectConnection,
115 Q_RETURN_ARG(
int, nRet),
116 Q_ARG(QString, szFile));
118 qCritical(log) <<
"Call" << m_pOperate->metaObject()->className()
119 + QString(
"::") +
"Load(QString szFile) fail." << szFile;
123 qCritical(log) <<
"Load parameter fail" << nRet;
131COperate* CPluginWakeOnLan::OnCreateOperate(
const QString &szId)
133 qDebug(log) << Q_FUNC_INFO;
143 qDebug(log) << Q_FUNC_INFO;
144 Q_ASSERT(m_pOperate == p);
145 m_pOperate =
nullptr;
virtual const QString Details() const override
显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述
virtual const QString Protocol() const override
协议
virtual int DeleteOperate(COperate *p) override
Delete COperate
virtual const QString DisplayName() const override
在界面上显示的名称
virtual const QString Name() const override
插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
virtual const QString Version() const override
Version
virtual const QString Description() const override
描述
virtual COperate * CreateOperate(const QString &szId, CParameterPlugin *para) override
新建 COperate 实例。仅由 CClient 调用
virtual Q_INVOKABLE int DeleteOperate(COperate *p)
Delete COperate
virtual const QString Id()
标识。默认: Type() + ":" + Protocol() + ":" + Name()
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
新建 COperate 实例。仅由 CClient 调用