设为首页 加入收藏

TOP

Qt 程序自定义插件(一)
2015-02-02 14:10:30 来源: 作者: 【 】 浏览:61
Tags:程序 定义 插件

1,定义接口文件


/******************************************************************************************************
* Copyright (C) 2014, All right reserved.


* file? Basic_Module_Interface.h
* version? 1.0
* author? NingJian (freegodly@gmail.com)
* brief


* detail
? ? ? 平台插件接口文件
* TODO
* history? 2014-9-17 created by NingJian
*
* note
******************************************************************************************************/


#ifndef BASIC_MODULE_INTERFACE_H
#define BASIC_MODULE_INTERFACE_H



#include
#include
#include
#include
#include
#include
#include
#include



/* ############################################################################################################# */


///
///? > 方便获取软件编译时间
///
#ifndef? STT_BUILD_TIME
#define STT_BUILD_TIME std::string("Build Time: ")+std::string(__TIME__)+std::string(" ")+std::string(__DATE__)
#endif


/* ############################################################################################################# */
///
///? > 定义测试结构信息
///
#ifndef STT_TEST_INFO
#define STT_TEST_INFO


///
/// \brief The TEST_INFO struct
///
struct TEST_INFO
{
? ? ///
? ? /// \brief id [ID信息]
? ? ///
? ? int id;


? ? std::string name;
? ? ///
? ? /// \brief variable_map? [测试结构的自定义数据存储]
? ? ///
? ? std::map variable_map;


};


///
/// \brief The TEST_FUN_INFO struct
///
struct TEST_FUN_INFO
{
? ? std::string modle_name;
? ? std::string fun_name;
? ? std::string fun_describe;
};



#endif


/* ############################################################################################################# */


///
///? > 定义模块函数指针类型
///
#ifndef STT_FUN_REG
#define STT_FUN_REG



///
///? > 实现运行指令的函数类型 定义
///
typedef bool (*RUN_FUN)(QString fun_name, int test_id,QString arg1 ,QString arg2,QString arg3,QString arg4, QString arg5,QString arg6,QString arg7,QString arg8,QString arg9);


///
///? > 实现运行模块配置函数类型 定义
///
typedef bool (*UI_FUN)();


///
///? > 实现注册模块配置函数 定义
///
typedef? void (*REG_UI_FUN) (QString image_path,QString config_name ,UI_FUN f );



#endif


/* ############################################################################################################# */


class IBasicModule
{
public:
? ? virtual ~IBasicModule(){}
? ? ///
? ? /// \brief initiation
? ? /// 加载初始化资源等
? ? ///
? ? ? ? virtual bool init(std::map &test_info,std::map &test_fun_info,std::map? &moudles_config,RUN_FUN run_fun)const =0;


? ? ///
? ? /// \brief initiation
? ? /// 加载释放资源等
? ? ///
? ? virtual bool release()const =0;
? ?
? ?
? ? ///
? ? /// \brief initiation
? ? /// 测试前的初始化资源等
? ? ///
? ? virtual bool initiation(int test_id)const =0;


? ? ///
? ? /// \brief initiation
? ? /// 测试后的释放资源等
? ? ///
? ? virtual bool finish(int test_id)const =0;
? ?
? ? ///
? ? /// \brief reg_fun
? ? ///? 注册命令的函数 需要实现要注册到平台的指令
? ? ///? 保存STT平台传来的函数和结构信息供该类以后调用
? ? ///
? ? /// \param rf
? ? /// 注册指令的平台回调函数指针
? ? /// 如果模块有自定义数据导入,需要向test_info中添加数据
? ? ///
? ? virtual void reg_fun(int test_id,QScriptEngine *eng ) const = 0;



? ? virtual void reg_ui_fun(REG_UI_FUN reg_ui_f)const = 0;


? ? ///
? ? /// \brief get_moudle_version
? ? /// 获取模块的版本信息
? ? /// \return
? ? ///
? ? virtual? std::string get_moudle_version() const =0;


? ? ///
? ? /// \brief get_moudle_name
? ? /// \return
? ? ///
? ? virtual? std::string get_moudle_name() const =0;


? ? ///
? ? /// \brief get_moudle_describe
? ? /// 获取模块的描述信息
? ? /// \return
? ? ///
? ? virtual? std::string get_moudle_describe() const =0;


? ?
};



QT_BEGIN_NAMESPACE


#define IBasicModule_iid "com.twsz.tc.ningj

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Qt自定义对象导入JavaScript脚本.. 下一篇谈谈对Spring IOC的理解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: