接口设计方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接口设计方案
一、设计方案
由甲方调用监控模块,控制监控模块的启停、设置策略等,通过甲方调用监控模块DLL 的接口将监控策略告知监控模块,由监控模块监控相关操作行为,并根据策略配置调用甲方提供的文件内容检查模块,对相关文件进行文件内容筛查,来确定文件是否是涉密文件。同时通过甲方程序调用乙方监控模块DLL接口获取监控结果。
一、接口部分(监控模块DLL,乙方提供)
************************************
Function:Init
Description:初始化操作
Input:无
Output:无
Return:true:成功,false:失败
Other:
***********************************
1、bool Init();
************************************
Function:SetRule
Description:设置监控规则
Input:char* pRule:监控规则,XML格式,见附1
Output:无
Return:true:成功,false:失败
Other:
***********************************
2、bool SetRule(char* pRule);
************************************
Function:Start
Description:设置完规则,启动监控规则生效
Input:无
Output:无
Return:true:成功,false:失败
Other:
***********************************
3、bool Start();
************************************
Function:WaitData
Description:实时等待获取监控数据可以是一条可以是多条。返回监控结果见附2
Input:无
Output: int &nCount返回总条数,char**&pData返回数据。
Return:-1.异常0.成功获取数据1.结束/ 停止(其他地方调用Stop接口停止)
Other:建议乙方内部实现用信号、内核事件等处理方式。
***********************************
4、int WaitData(int &nCount, char**& pData);
甲方调用伪代码:
ThreadFunc() //实时线程
{
While(TRUE)
{
char** pData = NULL;
int nCount = 0;
int nRet = WaitData(nCount,pData); //等待一条或多条数据时返回,没有数据就等待。
switch(nRet)
{
-1.异常continue;
0.成功获取数据pData[0]、pData[1]、……
1.结束/ 停止(其他地方调用Stop停止)Return;
}
FreeData(pData);
}
}
************************************
Function:FreeData
Description:释放数据内存接口,对应WaitData函数Input:int nCount 要释放的元素数量,char**要释放的数据Output:无
Return:无
Other:
***********************************
5、FreeData (int nCount ,char** pData);
************************************
Function:Stop
Description:停止监控,监控规则失效
Input:无
Output:无
Return:true:成功,false:失败
Other:
***********************************
6、bool Stop();
************************************
Function:UnInit
Description:程序退出
Input:无
Output:无
Return:true:成功,false:失败
Other:
***********************************
7、UnInit();
二、文件检查模块
/*********************接口说明***************************
//创建文件检查实例
void (*PCreateFileCheckerObject)(IFileChecker **pObject);
//释放文件检查实例
void (*PReleaseFileCheckerObject)(IFileChecker **pObject);
多规则多种关键字组合,则创建多个实例
----------------------- IFileChecker--------------------------
//初始化
void Init(const char *pName, const char *pKeyWords);
pName:实例名称随意。但多个实例并行时不能重复;
pKeyWords: 关键词组。格式:"机密;秘密;绝密;"
//结束调用
void UnInit();
//获取文件信息
bool GetFileInfo(const char *pFilePath, TipsFileBlock *pTFB);
pFilePath:文件路径
pTFB:返回数据结构
//释放文件信息
void FreeFileInfo(TipsFileBlock * pTFB);
pTFB:需要释放的数据结构
//停止当前的文件检查
void StopCheck();
*************************************************************/
//------------------------------(.h)头文件如下----------------------------- #pragmaonce
structTipsFileBlock
{
char *pKeyWords;//关键字
char *pSecretLevel; //密级:秘密、机密、绝密中的一个
char*pFileBlock; //片段
};
classIFileChecker
{
public:
virtualvoid Init(constchar *pKeyWords) = 0;