|
libzypp
17.25.7
|
Wrapper for const correct access via Smart pointer types.
More...
#include <PtrTypes.h>
Public Types | |
| typedef DTraits::PtrType | PtrType |
| typedef DTraits::constPtrType | constPtrType |
Public Member Functions | |
| RW_pointer () | |
| RW_pointer (std::nullptr_t) | |
| RW_pointer (typename PtrType::element_type *dptr) | |
| RW_pointer (PtrType dptr) | |
| RW_pointer & | operator= (std::nullptr_t) |
| void | reset () |
| void | reset (typename PtrType::element_type *dptr) |
| void | swap (RW_pointer &rhs) |
| void | swap (PtrType &rhs) |
| operator bool () 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 |
| constPtrType | getPtr () const |
| PtrType | getPtr () |
| constPtrType | cgetPtr () |
Private Attributes | |
| PtrType | _dptr |
Related Functions | |
(Note that these are not member functions.) | |
| template<class D , class DPtr > | |
| std::ostream & | operator<< (std::ostream &str, const RW_pointer< D, DPtr > &obj) |
| Stream output. More... | |
| template<class D , class DPtr > | |
| bool | operator== (const RW_pointer< D, DPtr > &lhs, const RW_pointer< D, DPtr > &rhs) |
| template<class D , class DPtr > | |
| bool | operator== (const RW_pointer< D, DPtr > &lhs, const typename DPtr::PtrType &rhs) |
| template<class D , class DPtr > | |
| bool | operator== (const typename DPtr::PtrType &lhs, const RW_pointer< D, DPtr > &rhs) |
| template<class D , class DPtr > | |
| bool | operator== (const RW_pointer< D, DPtr > &lhs, const typename DPtr::constPtrType &rhs) |
| template<class D , class DPtr > | |
| bool | operator== (const typename DPtr::constPtrType &lhs, const RW_pointer< D, DPtr > &rhs) |
| template<class D , class DPtr > | |
| bool | operator== (const RW_pointer< D, DPtr > &lhs, std::nullptr_t) |
| template<class D , class DPtr > | |
| bool | operator== (std::nullptr_t, const RW_pointer< D, DPtr > &rhs) |
| template<class D , class DPtr > | |
| bool | operator!= (const RW_pointer< D, DPtr > &lhs, const RW_pointer< D, DPtr > &rhs) |
| template<class D , class DPtr > | |
| bool | operator!= (const RW_pointer< D, DPtr > &lhs, const typename DPtr::PtrType &rhs) |
| template<class D , class DPtr > | |
| bool | operator!= (const typename DPtr::PtrType &lhs, const RW_pointer< D, DPtr > &rhs) |
| template<class D , class DPtr > | |
| bool | operator!= (const RW_pointer< D, DPtr > &lhs, const typename DPtr::constPtrType &rhs) |
| template<class D , class DPtr > | |
| bool | operator!= (const typename DPtr::constPtrType &lhs, const RW_pointer< D, DPtr > &rhs) |
| template<class D , class DPtr > | |
| bool | operator!= (const RW_pointer< D, DPtr > &lhs, std::nullptr_t) |
| template<class D , class DPtr > | |
| bool | operator!= (std::nullptr_t, const RW_pointer< D, DPtr > &rhs) |
Wrapper for const correct access via Smart pointer types.
zypp::RW_pointer<tt><D,DTraits> stores a Smart pointer types of type DTraits::PtrType, 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 DTraits = rw_pointer::Shared<D> thus wraping a shared_ptr<D>. To wrap an intrusive_ptr<D> use rw_pointer::Intrusive<D>.
Definition at line 285 of file PtrTypes.h.
| typedef DTraits::PtrType zypp::RW_pointer< D, DTraits >::PtrType |
Definition at line 287 of file PtrTypes.h.
| typedef DTraits::constPtrType zypp::RW_pointer< D, DTraits >::constPtrType |
Definition at line 288 of file PtrTypes.h.
|
inline |
Definition at line 290 of file PtrTypes.h.
|
inline |
Definition at line 293 of file PtrTypes.h.
|
inlineexplicit |
Definition at line 297 of file PtrTypes.h.
|
inlineexplicit |
Definition at line 302 of file PtrTypes.h.
|
inline |
Definition at line 306 of file PtrTypes.h.
|
inline |
Definition at line 309 of file PtrTypes.h.
|
inline |
Definition at line 312 of file PtrTypes.h.
|
inline |
Definition at line 315 of file PtrTypes.h.
|
inline |
Definition at line 318 of file PtrTypes.h.
|
inlineexplicit |
Definition at line 321 of file PtrTypes.h.
|
inline |
Definition at line 324 of file PtrTypes.h.
|
inline |
Definition at line 327 of file PtrTypes.h.
|
inline |
Definition at line 330 of file PtrTypes.h.
|
inline |
Definition at line 333 of file PtrTypes.h.
|
inline |
Definition at line 336 of file PtrTypes.h.
|
inline |
Definition at line 339 of file PtrTypes.h.
|
inline |
Definition at line 343 of file PtrTypes.h.
|
inline |
Definition at line 346 of file PtrTypes.h.
|
inline |
Definition at line 349 of file PtrTypes.h.
|
inline |
Definition at line 352 of file PtrTypes.h.
|
inline |
Definition at line 355 of file PtrTypes.h.
|
related |
Stream output.
Print the D object the RW_pointer refers, or "NULL" if the pointer is NULL.
Definition at line 369 of file PtrTypes.h.
|
related |
Definition at line 378 of file PtrTypes.h.
|
related |
Definition at line 382 of file PtrTypes.h.
|
related |
Definition at line 386 of file PtrTypes.h.
|
related |
Definition at line 390 of file PtrTypes.h.
|
related |
Definition at line 394 of file PtrTypes.h.
|
related |
Definition at line 398 of file PtrTypes.h.
|
related |
Definition at line 402 of file PtrTypes.h.
|
related |
Definition at line 408 of file PtrTypes.h.
|
related |
Definition at line 412 of file PtrTypes.h.
|
related |
Definition at line 416 of file PtrTypes.h.
|
related |
Definition at line 420 of file PtrTypes.h.
|
related |
Definition at line 424 of file PtrTypes.h.
|
related |
Definition at line 428 of file PtrTypes.h.
|
related |
Definition at line 432 of file PtrTypes.h.
|
private |
Definition at line 359 of file PtrTypes.h.