ExternalRefCountWithContiguousData< T > Struct Template Reference

ExternalRefCountWithContiguousData< T > Struct Template Reference

#include <qsharedpointer_impl.h>

Class Description

template<class T>
struct QtSharedPointer::ExternalRefCountWithContiguousData< T >

Definition at line 286 of file qsharedpointer_impl.h.

+ Inheritance diagram for ExternalRefCountWithContiguousData< T >:

Public Types

typedef ExternalRefCountWithDestroyFn Parent
 
- Public Types inherited from ExternalRefCountWithDestroyFn
typedef void(* DestroyerFn) (ExternalRefCountData *)
 

Static Public Member Functions

static void deleter (ExternalRefCountData *self)
 
static void safetyCheckDeleter (ExternalRefCountData *self)
 
static ExternalRefCountDatacreate (T **ptr)
 
- Static Public Member Functions inherited from ExternalRefCountData
static Q_CORE_EXPORT ExternalRefCountDatagetAndRef (const QObject *)
 

Public Attributes

data
 
- Public Attributes inherited from ExternalRefCountWithDestroyFn
DestroyerFn destroyer
 
- Public Attributes inherited from ExternalRefCountData
QBasicAtomicInt weakref
 
QBasicAtomicInt strongref
 

Additional Inherited Members

- Public Member Functions inherited from ExternalRefCountWithDestroyFn
 ExternalRefCountWithDestroyFn (DestroyerFn d)
 
bool destroy ()
 
void operator delete (void *ptr)
 
void operator delete (void *, void *)
 
- Public Member Functions inherited from ExternalRefCountData
 ExternalRefCountData ()
 
 ExternalRefCountData (Qt::Initialization)
 
virtual ~ExternalRefCountData ()
 
Q_CORE_EXPORT void setQObjectShared (const QObject *, bool enable)
 
void setQObjectShared (...)
 

Member Typedef Documentation

Definition at line 288 of file qsharedpointer_impl.h.

Member Function Documentation

static void deleter ( ExternalRefCountData self)
inlinestatic

Definition at line 291 of file qsharedpointer_impl.h.

292  {
293  ExternalRefCountWithContiguousData *that =
294  static_cast<ExternalRefCountWithContiguousData *>(self);
295  that->data.~T();
296  }
static void safetyCheckDeleter ( ExternalRefCountData self)
inlinestatic

Definition at line 297 of file qsharedpointer_impl.h.

298  {
300  deleter(self);
301  }
Q_CORE_EXPORT void internalSafetyCheckRemove2(const void *)
static void deleter(ExternalRefCountData *self)
static ExternalRefCountData* create ( T **  ptr)
inlinestatic

Definition at line 303 of file qsharedpointer_impl.h.

304  {
305 # ifdef QT_SHAREDPOINTER_TRACK_POINTERS
307 # else
308  DestroyerFn destroy = &deleter;
309 # endif
310  ExternalRefCountWithContiguousData *d =
311  static_cast<ExternalRefCountWithContiguousData *>(::operator new(sizeof(ExternalRefCountWithContiguousData)));
312 
313  // initialize the d-pointer sub-object
314  // leave d->data uninitialized
315  new (d) Parent(destroy); // can't throw
316 
317  *ptr = &d->data;
318  return d;
319  }
static void deleter(ExternalRefCountData *self)
static void safetyCheckDeleter(ExternalRefCountData *self)

Member Data Documentation

T data

Definition at line 289 of file qsharedpointer_impl.h.


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