 |
OpendTect
6.6
|
Go to the documentation of this file.
28 {
if ( isowner )
delete ptr; ptr =
nullptr; }
33 {
if ( isowner )
delete [] ptr; ptr =
nullptr; }
45 inline bool operator !()
const {
return !ptr_; }
46 inline T*
set(T* p,
bool doerase=
true);
56 typedef T* (*PointerCreator)();
62 typedef void (*PtrFunc)(T*);
74 {
return setIfNull( p,
false ); }
82 inline const T*
ptr()
const {
return this->ptr_; }
83 inline operator const T*()
const {
return this->ptr_; }
84 inline const T*
operator->()
const {
return this->ptr_; }
85 inline const T&
operator*()
const {
return *this->ptr_; }
87 {
return const_cast<T*
>(this->ptr()); }
89 typedef void (*PtrFunc)(T*);
100 inline const T*
ptr()
const {
return this->ptr_; }
101 inline operator const T*()
const {
return this->ptr_; }
103 inline const T&
operator*()
const {
return *this->ptr_; }
104 inline T*
ptr() {
return this->ptr_; }
105 inline operator T*() {
return this->ptr_; }
106 inline T* operator ->() {
return this->ptr_; }
109 {
return const_cast<T*
>(this->ptr()); }
111 typedef void (*PtrFunc)(T*);
169 const T& operator[](
int)
const;
171 const T& operator[](
od_int64)
const;
214 { this->
set( p,
true );
return *
this; }
259 template <
class T>
inline
261 : deletefunc_( deletor )
262 , setfunc_( setfunc )
268 template <
class T>
inline
274 T* oldptr = ptr_.exchange(p);
277 deletefunc_( oldptr );
285 template <
class T>
inline
288 if ( ptr_.setIfEqual( 0, p ) )
297 if ( setfunc_ ) setfunc_(p);
298 if ( deletefunc_ ) deletefunc_(p);
305 template <
class T>
inline
311 T* newptr = creator();
315 setIfNull(newptr,
true);
320 template <
class T>
inline
326 template <
class T>
inline
328 :
PtrMan<T>( p.release() )
332 template <
class T>
inline
340 template <
class T>
inline
346 template <
class T>
inline
352 template <
class T>
inline
355 this->
set(
const_cast<T*
>( p ) );
360 template <
class T>
inline
366 template <
class T>
inline
372 template <
class T>
inline
381 template <
class T>
inline
384 if ( idx<0 || (size_>=0 && idx>=size_) )
388 return this->ptr_[(size_t) idx];
392 template <
class T>
inline
395 if ( idx<0 || (size_>=0 && idx>=size_) )
399 return this->ptr_[(size_t) idx];
403 template <
class T>
inline
406 if ( idx<0 || (size_>=0 && idx>=size_) )
410 return this->ptr_[(size_t) idx];
414 template <
class T>
inline
417 if ( idx<0 || (size_>=0 && idx>=size_) )
421 return this->ptr_[(size_t) idx];
427 template <
class T>
inline
433 template <
class T>
inline
436 this->
set(
const_cast<T*
>(p) );
441 template <
class T>
inline
447 template <
class T>
inline
456 template <
class TT>
inline
462 template <
class T>
inline
468 template <
class T>
inline
471 this->
set(
const_cast<T*
>(p.
ptr()) );
476 template <
class T>
inline
484 template <
class TT>
inline
487 this->
set( (T*) p.
ptr() );
493 template <
class T>
inline
496 this->deletefunc_ = yn ? unRefNoDelete : unRef;
500 template <
class T>
inline
511 template <
class T>
inline
522 template <
class T>
inline
527 unRefNoDeletePtr( refcp );
534 template <
class T>
inline
540 template <
class T>
inline
547 template <
class TT>
inline
554 template <
class TT>
inline
561 template <
class TT>
inline
564 this->
set( (T*) p.
ptr() );
569 template <
class T>
inline
572 this->
set( (T*) p.
ptr() );
577 template <
class T>
inline
580 this->
set(
const_cast<T*
>( p ) );
586 template <
class TT>
inline
589 this->
set( (T*) p.
ptr() );
594 template <
class T>
inline
597 this->deletefunc_ = yn ? unRefNoDelete : unRef;
601 template <
class T>
inline
612 template <
class T>
inline
623 template <
class T>
inline
628 unRefNoDeletePtr( refcp );
Atomic instantiated with a pointer. The class really only handles the casting from a void* to a T*.
Definition: atomic.h:70
ConstArrPtrMan(const T *=nullptr)
Definition: ptrman.h:428
ConstPtrMan< T > & operator=(const T *p)
Definition: ptrman.h:353
static void deleteFunc(T *p)
Definition: ptrman.h:153
ConstArrPtrMan< T > & operator=(const ConstArrPtrMan< T > &)=delete
void setSize(int64_t size)
Definition: ptrman.h:174
ConstRefMan< T > & operator=(const RefMan< TT > &)
Definition: ptrman.h:587
T * createSingleObject()
Definition: ptrman.h:35
const T & operator*() const
Definition: ptrman.h:103
virtual ~PtrManBase()
Definition: ptrman.h:64
static void deleteFunc(T *p)
Definition: ptrman.h:199
ConstRefMan(const ConstRefMan< TT > &)
Definition: ptrman.h:548
PtrMan< T > & operator=(T *p)
Definition: ptrman.h:333
static void deleteFunc(T *p)
Definition: ptrman.h:181
RefMan< T > & operator=(const WeakPtr< T > &)
Definition: ptrman.h:477
ConstArrPtrMan< T > & operator=(const T *p)
Definition: ptrman.h:434
NonConstPtrManBase(PtrFunc setfunc, PtrFunc deletor, T *p)
Definition: ptrman.h:112
#define od_int64
Definition: plftypes.h:35
void setNoDelete(bool yn)
Definition: ptrman.h:595
ConstPtrMan< T > & operator=(const ConstPtrMan< T > &)=delete
#define mDynamicCastGet(typ, out, in)
Definition: commondefs.h:148
PtrMan(const PtrMan< T > &)=delete
const T * operator->() const
Definition: ptrman.h:84
ConstRefMan(const RefMan< TT > &)
Definition: ptrman.h:555
const T & operator*() const
Definition: ptrman.h:85
ArrPtrMan< T > & operator=(T *p)
Definition: ptrman.h:373
T * createObjectArray(int64_t sz)
Definition: ptrman.h:36
static void unRefNoDelete(T *p)
Definition: ptrman.h:523
void setNoDelete(bool yn)
Definition: ptrman.h:494
void deleteAndZeroPtr(T *&ptr, bool isowner=true)
Definition: ptrman.h:27
ArrPtrMan(const ArrPtrMan< T > &)=delete
static void unRef(T *p)
Definition: ptrman.h:512
Threads::AtomicPointer< T > ptr_
Definition: ptrman.h:66
RefMan< T > & operator=(const RefMan< T > &)
Definition: ptrman.h:469
ConstRefMan< T > & operator=(const T *p)
Definition: ptrman.h:578
ConstRefMan(const T *=nullptr)
Definition: ptrman.h:541
ArrPtrMan(ArrPtrMan< T > &&)
Definition: ptrman.h:367
static void unRefNoDelete(T *p)
Definition: ptrman.h:624
void erase()
Definition: ptrman.h:50
ConstPtrMan(const T *=nullptr)
Definition: ptrman.h:341
T * set(T *p, bool doerase=true)
Returns old pointer if not erased.
Definition: ptrman.h:269
#define mClass(module)
Definition: commondefs.h:181
#define mDeprecated(msg)
Definition: plfdefs.h:215
void deleteAndZeroArrPtr(T *&ptr, bool isowner=true)
Definition: ptrman.h:32
ArrPtrMan< T > & operator=(const ArrPtrMan< T > &)=delete
PtrFunc setfunc_
Definition: ptrman.h:68
static void ref(T *p)
Definition: ptrman.h:501
RefMan(T *=nullptr)
Definition: ptrman.h:463
const T * ptr() const
Definition: ptrman.h:100
ConstRefMan< T > & operator=(const ConstRefMan< T > &)
Definition: ptrman.h:570
RefMan(const RefMan< TT > &)
Definition: ptrman.h:457
PtrMan< T > & operator=(const PtrMan< T > &)=delete
ConstRefMan(const ConstRefMan< T > &)
Definition: ptrman.h:535
void set(T &_to, const F &fr)
template based type conversion
Definition: convert.h:27
PtrFunc deletefunc_
Definition: ptrman.h:69
Coord3 operator*(double f, const Coord3 &b)
Definition: coord.h:129
static void deleteFunc(T *p)
Definition: ptrman.h:133
RefMan< T > & operator=(T *p)
Definition: ptrman.h:213
T * getNonConstPtr() const
Definition: ptrman.h:108
RefMan< T > & operator=(const RefMan< TT > &)
Definition: ptrman.h:485
int64_t size_
Definition: ptrman.h:183
T * ptr()
Definition: ptrman.h:104
T * createIfNull(PointerCreator=createSingleObject< T >)
Definition: ptrman.h:306
ArrPtrMan(T *=nullptr)
Definition: ptrman.h:361
PtrMan(PtrMan< T > &&)
Definition: ptrman.h:327
bool setIfNull(T *p, bool takeover)
Definition: ptrman.h:286
PtrManBase(PtrFunc setfunc, PtrFunc deletor, T *)
Definition: ptrman.h:260
const T * ptr() const
Definition: ptrman.h:82
ConstRefMan< T > & operator=(const ConstRefMan< TT > &)
Definition: ptrman.h:562
void forceCrash(bool withdump)
T * getNonConstPtr() const
Definition: ptrman.h:86
ConstPtrMan(const ConstPtrMan< T > &)=delete
RefMan(const WeakPtr< T > &)
Definition: ptrman.h:448
RefMan(const RefMan< T > &)
Definition: ptrman.h:442
static void unRef(T *p)
Definition: ptrman.h:613
ConstArrPtrMan(const ConstArrPtrMan< T > &)=delete
PtrMan(T *=nullptr)
Definition: ptrman.h:321
T * release()
Returns pointer. I won't take care of it any longer.
Definition: ptrman.h:48
ConstPtrMan(ConstPtrMan< T > &&)
Definition: ptrman.h:347
static void ref(T *p)
Definition: ptrman.h:602
const T * operator->() const
Definition: ptrman.h:102
ConstPtrManBase(PtrFunc setfunc, PtrFunc deletor, T *p)
Definition: ptrman.h:90
Generated at
for the OpendTect
seismic interpretation project.
Copyright (C): dGB Beheer B.V. 1995-2021