精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
每个QTSS模块必须实现两个例程:
这个部分的主要内容是:
每个QTSS模块必须提供一个主例程。服务器在启动的时候会调用这个主例程,并使用这个例程来初始化QTSS stub库,以便在之后调用该模块。
对于编译到服务器里面的模块,其主例程的地址必须传递到服务器的模块初始化例程中,这在“编译服务器内部的QTSS模块”部分中进行描述。
主例程的函数体必须按照如下方式书写:
QTSS_Error MyModule_Main(void* inPrivateArgs) { return _stublibrary_main(inPrivateArgs, MyModuleDispatch); }
这里,MyModuleDispatch是模块分发例程的名称,这个例程将在下文的“Dispatch例程”部分进行描述。
重要提示
对于代码片断模块,主例程必须命名为MyModule_Main,其中MyModule是包含模块的文件名称。
每个QTSS模块都必须提供一个分发例程。服务器为了某种特定的目的需要某个模块时,需要调用该模块的分发例程,并在调用时将任务的名称及相应的参数块传递给该函数(在编程接口中使用“角色”这个术语来描述特定的任务。如果需要更多关于角色的信息,请参见“模块角色”部分)。
分发例程必须具有下面所示的原型:
void MyModuleDispatch(QTSS_Role inRole, QTSS_RoleParamPtr inParams);
其中MyModuleDispatch是分发例程的名称,由模块的主例程来指定;inRole是角色的名称,只有注册了该角色的模块才会被调用;inParams是一个结构,包含模块感兴趣的值。