3#ifdef HAVE_PCAPPLUSPLUS
4 #include "PcapPlusPlusVersion.h"
5 #include "PcapDevice.h"
7 #include <QLoggingCategory>
8 static Q_LOGGING_CATEGORY(logPcpp,
"WOL.PCPP")
9 void Pcpp_Logger(pcpp::Logger::LogLevel logLevel,
10 const std::
string& logMessage,
11 const std::
string& file,
12 const std::
string& method,
17 case pcpp::Logger::LogLevel::Debug:
18 qDebug(logPcpp) << logMessage.c_str();
20 case pcpp::Logger::LogLevel::Info:
21 qInfo(logPcpp) << logMessage.c_str();
23 case pcpp::Logger::LogLevel::Error:
24 qCritical(logPcpp) << logMessage.c_str();
32#include <QLoggingCategory>
35#include "PluginWakeOnLan.h"
36#include "OperateWakeOnLan.h"
38static Q_LOGGING_CATEGORY(log,
"WakeOnLan.Plugin")
43#ifdef HAVE_PCAPPLUSPLUS
44 pcpp::Logger::getInstance().setLogPrinter(Pcpp_Logger);
45 pcpp::Logger::getInstance().setAllModulesToLogLevel(
46 pcpp::Logger::LogLevel::Debug);
48 pcpp::Logger::getInstance().enableLogs();
49 pcpp::Logger::getInstance().setLogLevel(
50 pcpp::LogModule::PcapLogModuleLiveDevice, pcpp::Logger::LogLevel::Info);
54CPluginWakeOnLan::~CPluginWakeOnLan()
56 qDebug(log) <<
"CPluginWakeOnLan::~CPluginWakeOnLan()";
59const CPlugin::TYPE CPluginWakeOnLan::Type()
const
61 return TYPE::NetworkTools;
71 return tr(
"Wake on lan");
76 return tr(
"Wake on lan");
79const QIcon CPluginWakeOnLan::Icon()
const
81 return QIcon::fromTheme(
"lan");
86 return PluginWakeOnLan_VERSION;
92#ifdef HAVE_PCAPPLUSPLUS
93 szDetails =
"- PcapPlusPlus";
95 szDetails +=
" - " + tr(
"version: ")
96 + pcpp::getPcapPlusPlusVersionFull().c_str();
98 szDetails +=
" - " + tr(
"Pcap lib version info: ")
99 + pcpp::IPcapDevice::getPcapLibVersionInfo().c_str();
108 if(!m_pOperate)
return m_pOperate;
110 QString szFile = m_pOperate->GetSettingsFile();
112 if(!d.exists(szFile))
return m_pOperate;
115 bool bRet = QMetaObject::invokeMethod(
118 Qt::DirectConnection,
119 Q_RETURN_ARG(
int, nRet),
120 Q_ARG(QString, szFile));
122 qCritical(log) <<
"Call" << m_pOperate->metaObject()->className()
123 + QString(
"::") +
"Load(QString szFile) fail." << szFile;
127 qCritical(log) <<
"Load parameter fail" << nRet;
135COperate* CPluginWakeOnLan::OnCreateOperate(
const QString &szId)
137 qDebug(log) << Q_FUNC_INFO;
147 qDebug(log) << Q_FUNC_INFO;
148 Q_ASSERT(m_pOperate == p);
149 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 调用