我们在qemu2的qom系统分析(-)对象系统 一文中分析过qom系统如何通过TypeInfo注册对象,和对象的创建,继承,实现。
qom系统除了这些能力,还提供了引用计数能力,和属性设置,规范路径的能力。
规范路径的能力其实就是设置对象的child类型子属性,从而形成对象之间的一个树状结构。这样从根节点向下遍历,每个对象都有一个唯一的路径,所以就可以通过路径来寻找对象。
所以我们要想了解对象的规范路径如何实现就需要先看下对象的属性是如何实现的。
1 属性系统
首先什么是属性?其实就是对象的成员变量,成员变量要有名字,还要有值。所以也可以理解成key,value的形式。
qom对象支持的属性类型有:
- str
- bool
- int
- uint
- link
- qobject
在object.c里面对应设置这些属性的函数名称为object_property_set_* ,获取属性value的函数名称为object_property_get_, 其中就是类型的名称。其中link比较不好理解,其实对于link类型,k