接口设计方案.docx

上传人:b****3 文档编号:2133717 上传时间:2022-10-27 格式:DOCX 页数:14 大小:29.79KB
下载 相关 举报
接口设计方案.docx_第1页
第1页 / 共14页
接口设计方案.docx_第2页
第2页 / 共14页
接口设计方案.docx_第3页
第3页 / 共14页
接口设计方案.docx_第4页
第4页 / 共14页
接口设计方案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

接口设计方案.docx

《接口设计方案.docx》由会员分享,可在线阅读,更多相关《接口设计方案.docx(14页珍藏版)》请在冰豆网上搜索。

接口设计方案.docx

接口设计方案

 

接口设计方案

一、设计方案

由甲方调用监控模块,控制监控模块的启停、设置策略等,通过甲方调用监控模块DLL

 

的接口将监控策略告知监控模块,由监控模块监控相关操作行为,并根据策略配置调用甲方

 

提供的文件内容检查模块,对相关文件进行文件内容筛查,来确定文件是否是涉密文件。

时通过甲方程序调用乙方监控模块DLL接口获取监控结果。

 

甲方文件内

容检查模块

 

甲方

 

监控模块

 

监控

程序

DLL

 

一、接口部分(监控模块DLL,乙方提供)

************************************

Function:

Init

Description:

初始化操作

Input:

Output:

Return:

true:

成功,false:

失败

Other:

***********************************

1、boolInit();

 

************************************

Function:

SetRule

Description:

设置监控规则

Input:

char*pRule:

监控规则,XML格式,见附1

 

Output:

Return:

true:

成功,false:

失败

Other:

***********************************

2、boolSetRule(char*pRule);

 

************************************

Function:

Start

Description:

设置完规则,启动监控规则生效

Input:

Output:

Return:

true:

成功,false:

失败

Other:

***********************************

3、boolStart();

 

************************************

Function:

WaitData

Description:

实时等待获取监控数据可以是一条可以是多条。

返回监控结果见

2

Input:

Output:

int&nCount返回总条数,char**&pData返回数据。

Return:

-1.异常0.成功获取数据1.结束/停止(其他地方调用

 

Stop接口停止)

Other:

建议乙方内部实现用信号、内核事件等处理方式。

***********************************

4、intWaitData(int&nCount,char**&pData);

 

甲方调用伪代码:

ThreadFunc()//实时线程

{

While(TRUE)

{

char**pData=NULL;

intnCount=0;

intnRet=WaitData(nCount,pData);//等待一条或多条数据时返回,没有数据就等待。

switch(nRet)

{

-1.异常continue;

0.成功获取数据pData[0]、pData[1]、⋯⋯

1.结束/停止(其他地方调用Stop停止)Return;

}

FreeData(pData);

}

 

}

 

************************************

Function:

FreeData

Description:

释放数据内存接口,对应

Input:

intnCount要释放的元素数量,

WaitData函数

char**要释放的数据

Output:

Return:

Other:

***********************************

5、FreeData(intnCount,char**pData);

 

************************************

Function:

Stop

Description:

停止监控,监控规则失效

Input:

Output:

Return:

true:

成功,false:

失败

Other:

***********************************

6、boolStop();

 

************************************

Function:

UnInit

Description:

程序退出

Input:

Output:

Return:

true:

成功,false:

失败

Other:

***********************************

7、UnInit();

 

二、文件检查模块

/*********************接口说明***************************

//创建文件检查实例

void(*PCreateFileCheckerObject)(IFileChecker**pObject);

//释放文件检查实例

void(*PReleaseFileCheckerObject)(IFileChecker**pObject);

 

多规则多种关键字组合,则创建多个实例

-----------------------IFileChecker--------------------------

//初始化

voidInit(constchar*pName,constchar*pKeyWords);

pName:

实例名称随意。

但多个实例并行时不能重复;

pKeyWords:

关键词组。

格式:

"机密;秘密;绝密;"

 

//结束调用

voidUnInit();

 

//获取文件信息

boolGetFileInfo(constchar*pFilePath,TipsFileBlock*pTFB);

pFilePath:

文件路径

pTFB:

返回数据结构

 

//释放文件信息

voidFreeFileInfo(TipsFileBlock*pTFB);

pTFB:

需要释放的数据结构

 

//停止当前的文件检查

voidStopCheck();

*************************************************************/

//------------------------------(.h)

头文件如下

-----------------------------

#pragmaonce

 

structTipsFileBlock

{

char*pKeyWords;//关键字

char*pSecretLevel

char*pFileBlock;//

;

//密级:

秘密、机密、绝密中的一个

片段

};

 

classIFileChecker

{

public:

virtualvoid

Init

(constchar

*pKeyWords)=0;

 

virtualboolGetFileInfo(constchar*pFilePath,TipsFileBlock*pTFB)=0;virtualvoidFreeFileInfo(TipsFileBlock*pTFB)=0;virtualvoidUnInit()=0;

virtualvoidStopCheck()=0;

};

 

typedefvoid(*PCreateFileCheckerObject)(IFileChecker**pObject);typedefvoid(*PReleaseFileCheckerObject)(IFileChecker**pObject);

//------------------------------头文件end-----------------------------

 

//示例

//--------------获取接口类-----------------

HMODULEhDll=LoadLibrary(_T("TipsFileChecker.dll"));

if(NULL==hDll)return;

PCreateFileCheckerObjectpCreateFileChecker=

(PCreateFileCheckerObject)GetProcAddress(hDll,"CreateFileCheckerObject");

PReleaseFileCheckerObjectpReleaseFileChecker=

(PReleaseFileCheckerObject)GetProcAddress(hDll,"ReleaseFileCheckerObject");

 

if(NULL==pCreateFileChecker||NULL==pReleaseFileChecker)return;

 

IFileChecker*pFileChecker=NULL;

pCreateFileChecker(&pFileChecker);

 

//---------------

初始化提供关键字

------------

CStringAstrName=

"FeiMi1"

;//多个实例名称任意,但不同。

例如:

FeiMi2、FeiMi3、⋯

CStringAstrKeyWords="秘密;机密;绝密;";

pFileChecker

->Init

(strName,strKeyWords);

//----------------

文件命中片段提取

---------

CStringAstrFilePath

="C:

\\123.docx"

;

TipsFileBlock

fb;

pFileChecker

->GetFileInfo

(strFilePath

&fb);

//....

pFileChecker

->FreeFileInfo

(&fb);

//----------------------

结束释放

----------------

pFileChecker

->StopCheck();

pFileChecker

->UnInit();

pReleaseFileChecker(&pFileChecker);

FreeLibrary(hDll);

 

三、附

附1:

规则XML:

 

"Rule">

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1