Resolvables are reference counted objects. They are usually created and
provided by some kind of Source. They are accessed via smart Ptr classes,
which handle the reference counting.
Resolvable (identification and dependencies)
^
ResObject (common data, mostly UI driven: summary descrition...)
^
Package, Patch,... (object specific data)
The Ptr types are typedefed inside the classes:
Resolvable::Ptr (--> Resolvable*)
Resolvable::constPtr (--> const Resolvable*)
ResObject::Ptr, ... accordingly.
Automatic conversion is the same as with ordinary pointer.
Available casts are:
base::static_pointer_cast
base::const_pointer_cast
base::dynamic_pointer_cast
Structure
=========
base::ReferenceCounted
^
-------------------------------------------------------
Resolvable <---------+
^ backlink
ResObject +-----------ResObjectImplIf
^ ^
Package PackageImplIf
-------------------------------------------------------
^ ^
ResImplConnect<Package> --------> MyPackageImplementation