概述
在一段时间的EasyDarwin代码研究之后,开始开发自己的功能模块,首先便是在EasyDarwin中添加一个新的模块。在此添加EasySIPModule作为讲解,在网上找到多片相关博文介绍,包括EasyDarwin开源社区的博主文章。都有详细介绍,但是都缺少一些其他步骤,在此主要是自己尝试后整理所有步骤。
添加代码
在EasyDarwin/APIModule/下新建EasySIPModule目录,在EasySIPModule下新建EasySIPModule.h和EasySIPModule.cpp
EasyDarwin模块有两个必须的函数:
- Main函数,即这个模块的入口函数,在服务器启动的时候调用,对当前模块所在的QTSS stub库进行初始化。
- Dispatch函数,模块的分发函数,函数根据传入的Role调用对应的功能函数。
Main函数
主函数在服务器启动的时候就会被调用,新添加的EasySIPModule主函数在EasySIPModule.h声明如下:
在EasySIPModule.cpp定义如下:
这里的EasySIPModule_Main是Main函数名,是固定的,其中EasySIPModule是包含模块的文件名称(EasySIPModule.cpp),
EasySIPModuleDispatch是模块分发函数的名称。
Dispatch函数
如上面所讲到的,EasySIPModuleDispatch就是模块分发函数的名称。不是固定的,定义为静态函数:
分发函数实现为switch函数调用:
inRole就是传递过来的角色名称,只有注册了该角色的模块才会被调用(每个模块都可以注册角色就是一个行为),inParamBlock是一个结构体,包含模块需要用到的变量,如RTSP请求。
其中不同的case就是执行模块不同的功能函数,功能函数和分发函数一样定义为静态函数:
加入到编译代码
为了将新增的模块代码编译为服务器的一部分,需要在EasyDarwin/Server.tproj/下的QTSServer.cpp中找到QTSServer::LoadCompiledInModules函数,添加如下代码:
并且在QTSServer.cpp引入EasySIPModule.h。
在此,EasySIPModule指新增的模块名称,EasySIPModule_Main指前面添加的模块主函数。
修改Makefile
代码添加完后,便需要修改Makefile编译文件,本次运行环境为Ubuntu14 64位,所以修改的是EasyDarwin/nbproject/下的Makefile-x64.mk。
修改方法就是添加一个新模块对象生成项并指定生成规则:
然后编译成功就完成将新模块EasySIPModuleti添加到EasyDarwin。
最后
以上就是孤独老鼠为你收集整理的EasyDarwin添加自己的模块EasySIPModule添加代码修改Makefile的全部内容,希望文章能够帮你解决EasyDarwin添加自己的模块EasySIPModule添加代码修改Makefile所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复