certificate/include/api/IView.h

55 lines
1.1 KiB
C
Raw Permalink Normal View History

2025-06-20 18:17:05 +00:00
#pragma once
#include <stdint.h>
2025-06-26 15:15:38 +00:00
namespace view {
2025-06-20 18:17:05 +00:00
/*
@berf
*/
2025-06-26 15:15:38 +00:00
class IViewOut {
2025-06-20 18:17:05 +00:00
public:
2025-06-26 15:15:38 +00:00
virtual ~IViewOut() = default;
2025-06-20 18:17:05 +00:00
// 查看证书
virtual void About() const = 0;
// 从视图获取证书
2025-06-26 15:15:38 +00:00
virtual void GetLicense(char* lic, uint16_t* len) const = 0;
2025-06-20 18:17:05 +00:00
// 输出硬件标识
2025-06-26 15:15:38 +00:00
virtual void GetMachineCode(char* code, uint16_t* len) const = 0;
2025-06-20 18:17:05 +00:00
};
2025-06-26 15:15:38 +00:00
// 输入视图
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;
};