QTSSDictionary理解

所有派生于QTSSDictionary的类实例化的对象,都是一个qtss_object.由若干属性组成的,每个属性有一个或者多个值。QTSS_AttributeID标识每一个属性。
通过setval 可以为属性添加单个值;而setvale则为属性添加多个值。


每个属性有自己名字,ID号,数据类型,读写权限,回调函数。而这些则维护在QTSSDictionaryMap中。


在QTSSDictionaryMap中,存放了QTSSAttrInfoDict** fAttrArray,靠这个数组来维护前面说的每个属性。
而QTSSAttrInfoDict又派生于QTSSDictionary,所以他们是属性的属性。


在QTSSDictionary中总有一个指向QTSSDictionaryMap的指针,来维护QTSSDictionary中的每一个属性的“名字,ID号,数据类型,读写权限,回调函数”。



切记:QTSSDictionary中才存有真正的属性,每一个属性可以有一个或多个值。而在QTSSDictionaryMap中对应的fAttrArray[QTSS_AttributeID]中维护的是属性的属性。包含了属性的“名字,ID号,数据类型,读写权限,回调函数”。


QTSSDictionaryMap构造函数的第一个参数代表保留参数个数,代表已经有的属性个数,而带有QTSSDictionaryMap::kInstanceAttrsAllowed标识的字典表示可以增加实例属性,这些属性都是存在对象的私有map中  fInstanceMap = new QTSSDictionaryMap( 0, theFlags );
    sDictionaryMaps[kFileDictIndex]         = new QTSSDictionaryMap(qtssFlObjNumParams);
    sDictionaryMaps[kModuleDictIndex]       = new QTSSDictionaryMap(qtssModNumParams);
sDictionaryMaps[kModulePrefsDictIndex]  = new QTSSDictionaryMap(0, QTSSDictionaryMap::kInstanceAttrsAllowed | QTSSDictionaryMap::kCompleteFunctionsAllowed);

所有的QTSS_Object其实都是void*指针,来指向派生于QTSSDictionary的实例化对象。

typedef void*           QTSS_Object;
typedef QTSS_Object             QTSS_RTPStreamObject;
typedef QTSS_Object             QTSS_RTSPSessionObject;
typedef QTSS_Object             QTSS_RTSPRequestObject;
typedef QTSS_Object             QTSS_RTSPHeaderObject;
typedef QTSS_Object             QTSS_ClientSessionObject;
typedef QTSS_Object             QTSS_ServerObject;
typedef QTSS_Object             QTSS_PrefsObject;
typedef QTSS_Object             QTSS_TextMessagesObject;
typedef QTSS_Object             QTSS_FileObject;
typedef QTSS_Object             QTSS_ModuleObject;
typedef QTSS_Object             QTSS_ModulePrefsObject;
typedef QTSS_Object             QTSS_AttrInfoObject;
typedef QTSS_Object             QTSS_UserProfileObject;
typedef QTSS_Object             QTSS_ConnectedUserObject;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sunxiaopengsun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值