1.1 开发第一个RCA应用组件
RCA(Remote C++ APP)是MYCP的远程C++ APP应用组件,在第一章测试MYCP服务那里,远程调用的就是DLLTest应用组件。
本节学习如何开发DLLTest应用组件;所有的MYCP应用组件开发模式和流程,完全一样,通过学习开发DLLTest应用组件,就基本掌握了全部应用组件的开发方法。
1.1.1 DLLTest.cpp文件
新建一个DLLTest.cpp文件,或者利用VC新建一个普通DLL类型工程项目。
1.1.2 添加头文件
#include <CGCBase/app.h>
using namespace cgc;
1.1.3 添加HelloUser函数
extern "C" int CGC_API HelloUser(constcgcSotpRequest::pointer & request, cgcSotpResponse::pointer response)
{
// Getrequest input parameters.
cgcParameter::pointer pUserName= CGC_REQ_PARAMETER(_T("UserName"));
if(pUserName.get() == 0) return -1;
// Setresponse output parameters.
tstring sResponse(_T("Hello, "));
sResponse.append(pUserName->getStr());
sResponse.append(_T(", How are you!"));
CGC_RES_LOCK();
CGC_RES_PARAMETER(CGC_PARAMETER("Hi", sResponse));
//Send response.
return1;
}
extern "C" int CGC_APIHelloUser(…):
MYCP函数为固定格式,修改函数名称(如HelloUser)满足你自己的业务功能需求;
request对象用于获取远程客户端输入参数;服务组件通过respoinse对象返回参数给远程客户端应用程序;session对象用于管理远程客户端打开DLLTest组件的整个会话(SESSION)的状态。
1.1.4 编译部署
编译DLLTest工程,生成DLLTest.dll或者libDLLTest.so文件,复制文件到$(MYCP_BINPATH)/modules目录。
修改$(MYCP_BINPATH)/conf/modules.xml文件,在app配置项增加一个组件配置项;
<app>
…
<module>
<file>DLLTest</file>
<allowall>1</allowall>
<authaccount>1</authaccount>
<lockstate>LS_WAIT</lockstate>
<disable>0</disable>
</module>
…
</app>
设置组件文件名,允许开发所有函数等等;
1.1.5 总结
RCA组件同样以动态链接库文件(dll/so)存在,开发步骤、引用头文件、固定函数格式等基本一致;
通过本节学习,你知道如何开发并部署自己的RCA应用组件,可以尝试开发功能更加丰富的应用组件,MYCP提供了丰富的SERVICE(服务)组件,方便组件开发;