Dictionary数据类型 An associative array (also associative container , map , mapping , dictionary , finite map , and in query-processing an index or index file ) is an abstract data type composed of a collection of unique keys and a collection of values, where each key is associated with one value (or set of values).
Associative array是一个数据类型,并且这个数据类型有很多名字,比如有人叫做dictionary,有人叫做map。学习C++的人应该熟悉map数据类型,map数据类型是STL中定义的关联容器。 Dictionary数据类型的要点是属性和值。Dictionary数据类型是由若干属性组成的,每个属性有一个或者多个值。 在实际应用中,Dictionary数据类型可以更加复杂,一个属性可以有如下方面
不难看出一个属性本身的类型,属性个数等又是一些属性。在Darwin中,就是这么应用的。 在Darwin中针对Dictionary的定义有两个类,分别是QTSSDictionary和QTSSDictionaryMap。QTSSDictionary 与QTSS_Object对应,QTSSDictionaryMap与QTSS_ObjectType对应。 QTSS_Object为模块和服务器核心之间提供了数据交换的方法。QTSS_Object由若干属性构成,每个属性有自己名字,ID号,数据类型,读写权限。 内建属性是QTSS对象的固有属性,比如QTSS_RTSPRequestObject对象的内建属性URL,通过这个属性,模块可以获取与RTSP请求 关联的URL。除了内建的属性,还可以为字典类型的对象添加静态属性或者临时属性。通过回调函数QTSS_AddStaticAttribute可以为对 象类型添加静态属性,只能在Register角色中调用添加静态属性的函数。静态属性只能被添加,不能移除。不像静态属性,临时属性可以被移除,通过调用 函数QTSS_RemoveInstanceAttribute可以移除一个临时属性。 Darwin提供了针对Dictionary的回调函数,全部是对Dictionary的属性进行操作的。
如图所示,是Darwin中定义的Dictionary类型的对象。 以qtssRTSPRequestObjectTyp
|