Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRestrictedSharedPtr< T > Class Template Reference

#include <kis_restricted_shared_ptr.h>

+ Inheritance diagram for KisRestrictedSharedPtr< T >:

Public Member Functions

 KisRestrictedSharedPtr ()
 
template<typename X >
 KisRestrictedSharedPtr (const KisPinnedSharedPtr< X > &other)
 
template<typename X >
 KisRestrictedSharedPtr (const KisRestrictedSharedPtr< X > &other)
 
template<typename X >
 KisRestrictedSharedPtr (const KisSharedPtr< X > &other)
 
template<typename X >
 KisRestrictedSharedPtr (const KisWeakSharedPtr< X > &other)
 
- Public Member Functions inherited from KisSharedPtr< T >
void attach (T *p)
 
void clear ()
 
const T * constData () const
 
T * data ()
 
const T * data () const
 
bool isNull () const
 
 KisSharedPtr ()
 
 KisSharedPtr (const KisSharedPtr< T > &o)
 
 KisSharedPtr (const KisWeakSharedPtr< T > &o)
 
 KisSharedPtr (T *p)
 
 operator const T * () const
 
template<class T2 >
 operator KisSharedPtr< T2 > () const
 
bool operator!= (const KisSharedPtr &o) const
 
bool operator!= (const T *p) const
 
T & operator* ()
 
const T & operator* () const
 
T * operator-> ()
 
const T * operator-> () const
 
KisSharedPtroperator= (const KisSharedPtr &o)
 
KisSharedPtr< T > & operator= (T *p)
 
bool operator== (const KisSharedPtr &o) const
 
bool operator== (const T *p) const
 
 ~KisSharedPtr ()
 

Private Types

typedef KisSharedPtr< T > BaseClass
 

Private Member Functions

template<typename X >
 KisRestrictedSharedPtr (X other)
 

Additional Inherited Members

- Public Types inherited from KisSharedPtr< T >
using element_type = T
 
using weak_type = KisWeakSharedPtr<T>
 
- Static Public Member Functions inherited from KisSharedPtr< T >
static bool deref (const KisSharedPtr< T > *sp, T *t)
 
static void ref (const KisSharedPtr< T > *sp, T *t)
 

Detailed Description

template<typename T>
class KisRestrictedSharedPtr< T >

A special type of KisSharedPtr that forbids creation of a shared pointer from raw pointer. This is needed to avoid cases when we pass 'this' into a shared pointer and end up in potentially dangerous state. See KisUniformPaintOpProperty for an example.

Definition at line 20 of file kis_restricted_shared_ptr.h.

Member Typedef Documentation

◆ BaseClass

template<typename T >
typedef KisSharedPtr<T> KisRestrictedSharedPtr< T >::BaseClass
private

Definition at line 22 of file kis_restricted_shared_ptr.h.

Constructor & Destructor Documentation

◆ KisRestrictedSharedPtr() [1/6]

template<typename T >
KisRestrictedSharedPtr< T >::KisRestrictedSharedPtr ( )
inline

Definition at line 24 of file kis_restricted_shared_ptr.h.

25 {
26 }

◆ KisRestrictedSharedPtr() [2/6]

template<typename T >
template<typename X >
KisRestrictedSharedPtr< T >::KisRestrictedSharedPtr ( const KisWeakSharedPtr< X > & other)
inline

Definition at line 29 of file kis_restricted_shared_ptr.h.

30 : BaseClass(other)
31 {
32 }

◆ KisRestrictedSharedPtr() [3/6]

template<typename T >
template<typename X >
KisRestrictedSharedPtr< T >::KisRestrictedSharedPtr ( const KisSharedPtr< X > & other)
inline

Definition at line 36 of file kis_restricted_shared_ptr.h.

37 : BaseClass(other)
38 {
39 }

◆ KisRestrictedSharedPtr() [4/6]

template<typename T >
template<typename X >
KisRestrictedSharedPtr< T >::KisRestrictedSharedPtr ( const KisRestrictedSharedPtr< X > & other)
inline

Definition at line 42 of file kis_restricted_shared_ptr.h.

43 : BaseClass(other)
44 {
45 }

◆ KisRestrictedSharedPtr() [5/6]

template<typename T >
template<typename X >
KisRestrictedSharedPtr< T >::KisRestrictedSharedPtr ( const KisPinnedSharedPtr< X > & other)
inline

Definition at line 48 of file kis_restricted_shared_ptr.h.

49 : BaseClass(other)
50 {
51 }

◆ KisRestrictedSharedPtr() [6/6]

template<typename T >
template<typename X >
KisRestrictedSharedPtr< T >::KisRestrictedSharedPtr ( X other)
private

The documentation for this class was generated from the following file: