|
libzypp
9.1.2
|
Wrapper for const correct access via Smart pointer types.
More...
#include <PtrTypes.h>
Public Types | |
| typedef _Traits::_Ptr | _Ptr |
| typedef _Traits::_constPtr | _constPtr |
| typedef _Ptr::unspecified_bool_type | unspecified_bool_type |
Public Member Functions | |
| RW_pointer (typename _Ptr::element_type *dptr=0) | |
| RW_pointer (_Ptr dptr) | |
| void | reset () |
| void | reset (typename _Ptr::element_type *dptr) |
| void | swap (RW_pointer &rhs) |
| void | swap (_Ptr &rhs) |
| operator unspecified_bool_type () const | |
| const _D & | operator* () const |
| const _D * | operator-> () const |
| const _D * | get () const |
| _D & | operator* () |
| _D * | operator-> () |
| _D * | get () |
| bool | unique () const |
| long | use_count () const |
| _constPtr | getPtr () const |
| _Ptr | getPtr () |
Private Attributes | |
| _Ptr | _dptr |
Related Functions | |
(Note that these are not member functions.) | |
| template<class _D , class _Ptr > | |
| std::ostream & | operator<< (std::ostream &str, const RW_pointer< _D, _Ptr > &obj) |
| template<class _D , class _Ptr > | |
| bool | operator== (const RW_pointer< _D, _Ptr > &lhs, const RW_pointer< _D, _Ptr > &rhs) |
| template<class _D , class _Ptr > | |
| bool | operator!= (const RW_pointer< _D, _Ptr > &lhs, const RW_pointer< _D, _Ptr > &rhs) |
Wrapper for const correct access via Smart pointer types.
zypp::RW_pointer<tt><_D,_Traits> stores a Smart pointer types of type _Traits::_Ptr, which must be convertible into a _D *. Pointer style access (via -> and *) offers a const _D * in const a context, otherwise a _D *. Thus RW_ means read/write, as you get a different type, dependent on whether you're allowed to read or write.
Forwarding access from an interface to an implemantation class, an RW_pointer prevents const interface methods from accidentally calling nonconst implementation methods.
The second template argument defaults to _Traits = rw_pointer::Shared<_D> thus wraping a shared_ptr<_D>. To wrap an intrusive_ptr<_D> use rw_pointer::Intrusive<_D>.
#include "zypp/base/PtrTypes.h" class Foo { ... private: // Implementation class struct Impl; // Pointer to implementation; actually a shared_ptr<Impl> RW_pointer<Impl> _pimpl; void baa() { _pimpl->... } // is Impl * void baa() const { _pimpl->... } // is Impl const * };
Definition at line 265 of file PtrTypes.h.
| typedef _Traits::_Ptr zypp::RW_pointer< _D, _Traits >::_Ptr |
Definition at line 267 of file PtrTypes.h.
| typedef _Traits::_constPtr zypp::RW_pointer< _D, _Traits >::_constPtr |
Definition at line 268 of file PtrTypes.h.
| typedef _Ptr::unspecified_bool_type zypp::RW_pointer< _D, _Traits >::unspecified_bool_type |
Definition at line 269 of file PtrTypes.h.
| zypp::RW_pointer< _D, _Traits >::RW_pointer | ( | typename _Ptr::element_type * | dptr = 0 | ) | [inline, explicit] |
Definition at line 272 of file PtrTypes.h.
| zypp::RW_pointer< _D, _Traits >::RW_pointer | ( | _Ptr | dptr | ) | [inline, explicit] |
Definition at line 277 of file PtrTypes.h.
| void zypp::RW_pointer< _D, _Traits >::reset | ( | ) | [inline] |
Definition at line 281 of file PtrTypes.h.
Referenced by zypp::parser::susetags::ContentFileReader::beginParse(), zypp::media::MediaHandler::checkAttached(), zypp::target::CommitPackageCache::CommitPackageCache(), zypp::target::hal::HalContext::connect(), zypp::parser::susetags::ContentFileReader::endParse(), zypp::target::hal::HalContext::HalContext(), zypp::target::hal::HalDrive::HalDrive(), zypp::target::hal::HalVolume::HalVolume(), zypp::media::MediaManager::MediaManager(), zypp::media::MediaHandler::release(), zypp::media::MediaHandler::setAttachPoint(), zypp::media::MediaHandler::setMediaSource(), zypp::debug::Measure::start(), zypp::debug::Measure::stop(), zypp::sat::WhatProvides::WhatProvides(), zypp::target::hal::HalContext::~HalContext(), zypp::target::hal::HalDrive::~HalDrive(), and zypp::target::hal::HalVolume::~HalVolume().
| void zypp::RW_pointer< _D, _Traits >::reset | ( | typename _Ptr::element_type * | dptr | ) | [inline] |
Definition at line 284 of file PtrTypes.h.
| void zypp::RW_pointer< _D, _Traits >::swap | ( | RW_pointer< _D, _Traits > & | rhs | ) | [inline] |
Definition at line 287 of file PtrTypes.h.
Referenced by zypp::media::MediaHandler::setAttachPoint().
| void zypp::RW_pointer< _D, _Traits >::swap | ( | _Ptr & | rhs | ) | [inline] |
Definition at line 290 of file PtrTypes.h.
| zypp::RW_pointer< _D, _Traits >::operator unspecified_bool_type | ( | ) | const [inline] |
Definition at line 293 of file PtrTypes.h.
| const _D& zypp::RW_pointer< _D, _Traits >::operator* | ( | ) | const [inline] |
Definition at line 296 of file PtrTypes.h.
| const _D* zypp::RW_pointer< _D, _Traits >::operator-> | ( | ) | const [inline] |
Definition at line 299 of file PtrTypes.h.
| const _D* zypp::RW_pointer< _D, _Traits >::get | ( | ) | const [inline] |
Definition at line 302 of file PtrTypes.h.
Referenced by zypp::filesystem::TmpPath::operator const void *(), zypp::RW_pointer< _D, _Traits >::operator==(), and zypp::filesystem::TmpPath::path().
| _D& zypp::RW_pointer< _D, _Traits >::operator* | ( | ) | [inline] |
Definition at line 305 of file PtrTypes.h.
| _D* zypp::RW_pointer< _D, _Traits >::operator-> | ( | ) | [inline] |
Definition at line 308 of file PtrTypes.h.
| _D* zypp::RW_pointer< _D, _Traits >::get | ( | ) | [inline] |
Definition at line 311 of file PtrTypes.h.
| bool zypp::RW_pointer< _D, _Traits >::unique | ( | ) | const [inline] |
Definition at line 315 of file PtrTypes.h.
Referenced by zypp::media::MediaHandler::isSharedMedia(), zypp::media::MediaHandler::release(), and zypp::media::MediaHandler::removeAttachPoint().
| long zypp::RW_pointer< _D, _Traits >::use_count | ( | ) | const [inline] |
Definition at line 318 of file PtrTypes.h.
Referenced by zypp::media::MediaHandler::release().
| _constPtr zypp::RW_pointer< _D, _Traits >::getPtr | ( | ) | const [inline] |
Definition at line 321 of file PtrTypes.h.
Referenced by zypp::xml::ParseDef::addNode(), and zypp::PoolQuery::begin().
| _Ptr zypp::RW_pointer< _D, _Traits >::getPtr | ( | ) | [inline] |
Definition at line 324 of file PtrTypes.h.
_Ptr zypp::RW_pointer< _D, _Traits >::_dptr [private] |
Definition at line 328 of file PtrTypes.h.
Referenced by zypp::RW_pointer< HalContext_Impl >::get(), zypp::RW_pointer< HalContext_Impl >::getPtr(), zypp::RW_pointer< HalContext_Impl >::operator unspecified_bool_type(), zypp::RW_pointer< HalContext_Impl >::operator*(), zypp::RW_pointer< HalContext_Impl >::operator->(), zypp::RW_pointer< HalContext_Impl >::reset(), zypp::RW_pointer< HalContext_Impl >::swap(), zypp::RW_pointer< HalContext_Impl >::unique(), and zypp::RW_pointer< HalContext_Impl >::use_count().
1.7.6.1