我是靠谱客的博主 孤独老鼠,最近开发中收集的这篇文章主要介绍EasyDarwin添加自己的模块EasySIPModule添加代码修改Makefile,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在一段时间的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。

最后

以上就是孤独老鼠为你收集整理的EasyDarwin添加自己的模块EasySIPModule添加代码修改Makefile的全部内容,希望文章能够帮你解决EasyDarwin添加自己的模块EasySIPModule添加代码修改Makefile所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部