#ifndef HPLUGINMANAGE_H #define HPLUGINMANAGE_H #include #include #include #include #include #include "HPluginInterface.h" #include "HPluginManageExport.h" class QPluginLoader; class HPLUGINMANAGE_EXPORT HPluginManage : public QObject { Q_OBJECT private: explicit HPluginManage(); ~HPluginManage(); public: static HPluginManage* getInstance(); /** * @brief getPluginList: 获取插件信息列表 * @return 返回插件信息列表 */ std::list getPluginList(); private: /** * @brief loadPlugin 加载工具功能插件接口 * @return true表示加载插件成功,false表示加载插件失败 */ bool loadPlugin(QString path); /** * @brief unloadPlugin : 卸载插件 * @return true表示卸载成功,false表示卸载失败 */ bool unloadPlugin(); QList scan(QString filePath); private: //存储所有控件插件的Hash表. QMap m_PluginMap; //所有插件对象Hash链表. QList m_pluHash; std::list m_PluInfoList; public: Q_DISABLE_COPY(HPluginManage) }; #endif // HPLUGINMANAGE_H