#include <ReferenceCounted.h>
Public Member Functions | |
| ReferenceCounted () | |
| Default ctor. | |
| ReferenceCounted (const ReferenceCounted &rhs) | |
| Copy ctor. | |
| virtual | ~ReferenceCounted () |
| Dtor. | |
| ReferenceCounted & | operator= (const ReferenceCounted &) |
| Assignment. | |
| unsigned | refCount () const |
| Return reference counter value. | |
| void | ref () const |
| Add a reference. | |
| void | unref () const |
| Release a reference. | |
Static Public Member Functions | |
| static void | add_ref (const ReferenceCounted *ptr_r) |
| Called by zypp::intrusive_ptr to add a reference. | |
| static void | release (const ReferenceCounted *ptr_r) |
| Called by zypp::intrusive_ptr to add a reference. | |
Protected Member Functions | |
| virtual std::ostream & | dumpOn (std::ostream &str) const |
| Overload to realize std::ostream & operator<<. | |
| virtual void | ref_to (unsigned) const |
| Trigger derived classes after refCount was increased. | |
| virtual void | unref_to (unsigned) const |
| Trigger derived classes after refCount was decreased. | |
Private Member Functions | |
| void | unrefException () const |
| Throws Exception on unref. | |
Private Attributes | |
| unsigned | _counter |
| The reference counter. | |
Friends | |
| std::ostream & | operator<< (std::ostream &str, const ReferenceCounted &obj) |
| Stream output via dumpOn. | |
Related Functions | |
| (Note that these are not member functions.) | |
| void | intrusive_ptr_add_ref (const ReferenceCounted *ptr_r) |
| intrusive_ptr hook to add_ref. | |
| void | intrusive_ptr_release (const ReferenceCounted *ptr_r) |
| intrusive_ptr hook to release. | |
Definition at line 33 of file ReferenceCounted.h.
| zypp::base::ReferenceCounted::ReferenceCounted | ( | ) |
| zypp::base::ReferenceCounted::ReferenceCounted | ( | const ReferenceCounted & | rhs | ) |
| zypp::base::ReferenceCounted::~ReferenceCounted | ( | ) | [virtual] |
Dtor.
| std::out_of_range | if reference count is not zero. |
Definition at line 33 of file ReferenceCounted.cc.
| ReferenceCounted& zypp::base::ReferenceCounted::operator= | ( | const ReferenceCounted & | ) | [inline] |
| unsigned zypp::base::ReferenceCounted::refCount | ( | ) | const [inline] |
Return reference counter value.
Definition at line 62 of file ReferenceCounted.h.
References _counter.
| void zypp::base::ReferenceCounted::ref | ( | ) | const [inline] |
Add a reference.
Definition at line 66 of file ReferenceCounted.h.
References _counter, and ref_to().
Referenced by add_ref().
| void zypp::base::ReferenceCounted::unref | ( | ) | const [inline] |
Release a reference.
Deletes the object if reference count gets zero.
| std::out_of_range | if reference count is zero. |
Definition at line 73 of file ReferenceCounted.h.
References _counter, unref_to(), and unrefException().
Referenced by release().
| static void zypp::base::ReferenceCounted::add_ref | ( | const ReferenceCounted * | ptr_r | ) | [inline, static] |
Called by zypp::intrusive_ptr to add a reference.
Definition at line 86 of file ReferenceCounted.h.
References ref().
Referenced by intrusive_ptr_add_ref().
| static void zypp::base::ReferenceCounted::release | ( | const ReferenceCounted * | ptr_r | ) | [inline, static] |
Called by zypp::intrusive_ptr to add a reference.
Definition at line 92 of file ReferenceCounted.h.
References unref().
Referenced by intrusive_ptr_release().
| std::ostream & zypp::base::ReferenceCounted::dumpOn | ( | std::ostream & | str | ) | const [protected, virtual] |
Overload to realize std::ostream & operator<<.
Reimplemented in zypp::capability::CapabilityImpl, zypp::data::ResObject, zypp::data::RpmBase, zypp::media::MediaAccess, zypp::MediaSetAccess, zypp::ResObject, zypp::Resolvable, zypp::solver::detail::Pending, zypp::solver::detail::QueueItem, zypp::solver::detail::QueueItemBranch, zypp::solver::detail::QueueItemConflict, zypp::solver::detail::QueueItemEstablish, zypp::solver::detail::QueueItemGroup, zypp::solver::detail::QueueItemInstall, zypp::solver::detail::QueueItemRequire, zypp::solver::detail::QueueItemUninstall, zypp::solver::detail::Resolver, zypp::solver::detail::ResolverInfo, zypp::solver::detail::ResolverInfoChildOf, zypp::solver::detail::ResolverInfoConflictsWith, zypp::solver::detail::ResolverInfoContainer, zypp::solver::detail::ResolverInfoDependsOn, zypp::solver::detail::ResolverInfoMisc, zypp::solver::detail::ResolverInfoMissingReq, zypp::solver::detail::ResolverInfoNeededBy, zypp::solver::detail::ResolverInfoObsoletes, zypp::solver::detail::SolutionAction, zypp::solver::detail::TransactionSolutionAction, zypp::solver::detail::InjectSolutionAction, zypp::target::rpm::BinHeader, zypp::target::rpm::librpmDb, zypp::target::rpm::RpmDb, zypp::target::rpm::RpmHeader, zypp::target::TargetImpl, zypp::Target, and zypp::ZYpp.
Definition at line 48 of file ReferenceCounted.cc.
References _counter.
| virtual void zypp::base::ReferenceCounted::ref_to | ( | unsigned | ) | const [inline, protected, virtual] |
Trigger derived classes after refCount was increased.
Definition at line 100 of file ReferenceCounted.h.
Referenced by ref().
| virtual void zypp::base::ReferenceCounted::unref_to | ( | unsigned | ) | const [inline, protected, virtual] |
Trigger derived classes after refCount was decreased.
No trigger is sent, if refCount got zero (i.e. the object is deleted).
Reimplemented in zypp::target::rpm::librpmDb.
Definition at line 106 of file ReferenceCounted.h.
Referenced by unref().
| void zypp::base::ReferenceCounted::unrefException | ( | ) | const [private] |
Throws Exception on unref.
Definition at line 42 of file ReferenceCounted.cc.
References INT.
Referenced by unref().
| std::ostream & operator<< | ( | std::ostream & | str, | |
| const ReferenceCounted & | obj | |||
| ) | [friend] |
| void intrusive_ptr_add_ref | ( | const ReferenceCounted * | ptr_r | ) | [related] |
intrusive_ptr hook to add_ref.
Definition at line 118 of file ReferenceCounted.h.
References add_ref().
| void intrusive_ptr_release | ( | const ReferenceCounted * | ptr_r | ) | [related] |
intrusive_ptr hook to release.
Definition at line 122 of file ReferenceCounted.h.
References release().
unsigned zypp::base::ReferenceCounted::_counter [mutable, private] |
The reference counter.
Definition at line 110 of file ReferenceCounted.h.
Referenced by dumpOn(), ref(), refCount(), unref(), and ~ReferenceCounted().
1.5.3