certificate/include/api/IView.h

55 lines
1.1 KiB
C++

#pragma once
#include <stdint.h>
namespace view {
/*
@berf 证书操作的可视化接口
可视化操作包括证书的输入, 标识的可视化输出
视图是可选配的
*/
class IViewOut {
public:
virtual ~IViewOut() = default;
// 查看证书
virtual void About() const = 0;
// 从视图获取证书
virtual void GetLicense(char* lic, uint16_t* len) const = 0;
// 输出硬件标识
virtual void GetMachineCode(char* code, uint16_t* len) const = 0;
};
// 输入视图
class IViewIn {
public:
virtual ~IViewIn() = default;
// 获取开始时间和结束时间
// 格式固定为 "yyyy-MM-DD" 10 bytes
virtual void GetAuthTime(char start[10], char end[10]) const = 0;
// 获取软件版本号
virtual void GetAppVersion(char* ver, uint16_t* len) const = 0;
// 获取软件名称
virtual void GetAppName(char* name, uint16_t* len) const = 0;
};
}
class IView :
virtual public view::IViewIn,
virtual public view::IViewOut
{
public:
virtual ~IView() = default;
// 启动视图
virtual void Exec() const = 0;
// 卸载插件
virtual void Exit() const = 0;
};