darwin之qtss属性详解


1.QTSSDictionary如何存储多个属性

属性信息存放在DictValueElement结构体中,QTSSDictionary初始化包含QTSS_MAX_ATTRIBUTE_NUMS个结构体(DictValueElement)数组。


2.如何去描述一个属性信息(属性类型,名称,权限,回调)呢?

用QTSSDictionaryMap去描述,每一个QTSSDictionary都要有一个与之对应的QTSSDictionaryMap,在其内部维护了QTSSAttrInfoDict数组,每一个元素负责描述一个属性,与QTSSDictionary一一对应。



3.QTSSDictionary如何与QTSSDictionaryMap想关联?

QTSSDictionary,有一个QTSSDictionaryMap的指针,通过此方式来实现关联。 



4.属性信息存放位置?

所有的属性及属性的描述信息都是存放在内存中的,通过对象的成员数组体现。


5.如何设置QTSS_Object属性信息?

QTSSDictionary 与QTSS_Object对应,凡是派生于QTSSDictionary的对象,就被称作QTSSDictionary。

比如:RTSPRequest: QTSSDictionary->RTSPRequestInterface->RTSPRequest.

RTSPRequest被称作为:QTSS_RTSPRequestObject

如何设置QTSS_RTSPRequestObject的属性呢?

所有 QTSS_Object的内置属性都存放在QTSS.h文件中。比如QTSS_RTSPRequestObject的内置属性如下:

它有43个内置属性,每一个属性的id如下图所示。


那么每个属性对应的属性信息在哪里维护呢 ? 在QTSSDictionaryMap中维护,它的初始化在RTSPRequestInterface原文件中,属性信息以sAttributes数组形式设置好,并在静态函数Initialize中初始化。


既然属性对应的信息已经初始化好,那么属性的key-value如何设置呢?

构造函数中,可以发现,QTSSDictionary中维护的value都是指针,指向类的成员变量,如此只要修改成员变量值,对应的key的value值也会改变。



对于value指向fMethod变量,它在什么地方更新值,又如何获取它的值呢?




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunxiaopengsun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值