- creation/destruction requires two unnested locks and 1 refcount.
### usage in GStreamer
- * GstBin -> GstElement
- * GstElement -> GstRealPad
+
+ * `GstBin` -> `GstElement`
+ * `GstElement` -> `GstRealPad`
### lifecycle
+---------+ +-------+
```
-after parent updates ref_pointer to child.
+after parent updates `ref_pointer` to child.
```
+---------+ +-------+
+---------+ +-------+
```
-- only one parent is able to \_sink the same object because the
+- only one parent is able to `_sink` the same object because the
`_set_parent()` method is atomic.
- since only one parent is able to `_set_parent()` the object, only
### usage
+```
GstRealPad -> GstCaps
GstBuffer -> GstCaps
GstEvent -> GstCaps
GstEvent -> GstObject
GstMessage -> GstCaps
GstMessage -> GstObject
+```
### lifecycle
existance of the objects, If one of the objects is disposed, so is
the link.
- GstRealPad <-> GstRealPad (srcpad lock taken first)
+ `GstRealPad` <-> `GstRealPad` (srcpad lock taken first)
### lifecycle