EasyDarwin添加自己的模块EasySIPModule

10 篇文章 0 订阅
6 篇文章 1 订阅

在一段时间的EasyDarwin代码研究之后,开始开发自己的功能模块,首先便是在EasyDarwin中添加一个新的模块。在此添加EasySIPModule作为讲解,在网上找到多片相关博文介绍,包括EasyDarwin开源社区的博主文章。都有详细介绍,但是都缺少一些其他步骤,在此主要是自己尝试后整理所有步骤。

添加代码

在EasyDarwin/APIModule/下新建EasySIPModule目录,在EasySIPModule下新建EasySIPModule.h和EasySIPModule.cpp

EasyDarwin模块有两个必须的函数:

  1. Main函数,即这个模块的入口函数,在服务器启动的时候调用,对当前模块所在的QTSS stub库进行初始化。
  2. 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。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值