 |
OpendTect
6.6
|
Go to the documentation of this file.
47 virtual const char*
category()
const {
return category_.buf(); }
56 virtual bool isOK()
const {
return true; }
94 const char* catgry=
"Buffer" )
100 char*
buf() {
return buf_; }
101 char const*
buf()
const {
return buf_; }
104 {
delete [] buf_; sz_ = s; buf_ = b; }
106 virtual float nrKBytes()
const {
return sz_*sKb2MbFac(); }
141 {
return fid.
ID(0); }
232 operator bool()
const {
return ptr_; }
235 const T*
ptr()
const {
return ptr_; }
290 T*
ptr() {
return this->ptr_; }
300 #define mObtainDataPack( var, type, mgrid, newid ) \
304 DPM( mgrid ).release( var->id() ); \
308 DataPack* __dp = DPM( mgrid ).obtain( newid ); \
309 mDynamicCastGet( type, __dummy, __dp ); \
310 if ( !__dummy && __dp ) \
311 DPM( mgrid ).release( __dp->id() ); \
317 #define mObtainDataPackToLocalVar( var, type, mgrid, newid ) \
319 mObtainDataPack( var, type, mgrid, newid ); \
322 template <
class T>
inline
331 template <
class T>
inline
340 template <
class T>
inline
353 template <
class T>
inline
365 template <
class T>
inline
371 template <
class T>
inline
377 template <
class T>
inline
const char * nameOf(DataPack::ID) const
char * buf()
Definition: datapack.h:100
const T * ptr() const
Definition: datapack.h:235
int ID(int idx) const
Definition: multiid.h:57
ConstDataPackRef(const DataPack *p)
Assumes p is obtained.
Definition: datapack.h:323
DataPackRef< T > & operator=(const DataPackRef< T > &)
Definition: datapack.h:378
ID id() const
Definition: datapack.h:45
virtual float nrKBytes() const =0
CallBacker object with a name. Use if you want your object to be able to send and receive CallBack's,...
Definition: namedobj.h:72
static ID getID(const FullID &fid)
Definition: datapack.h:39
static DataPackMgr * gtDPM(ID, bool)
ID id() const
Definition: datapack.h:185
void setManager(const DataPackMgr *)
#define mGlobal(module)
Definition: commondefs.h:180
const DataPack * observe(DataPack::ID dpid) const
Definition: datapack.h:159
#define mDeclInstanceCreatedNotifierAccess(clss)
Definition: notify.h:248
const DataPack * obtain(DataPack::ID dpid) const
Definition: datapack.h:155
ConstDataPackRef< T > & operator=(const ConstDataPackRef< T > &)
Definition: datapack.h:342
const ObjectSet< const DataPack > & packs() const
Definition: datapack.h:189
ConstDataPackRef(const ConstDataPackRef< T > &)
Definition: datapack.h:332
#define od_int64
Definition: plftypes.h:35
static float sKb2MbFac()
1 / 1024
int nrusers_
Definition: datapack.h:70
#define mExpClass(module)
Definition: commondefs.h:177
~BufferDataPack()
Definition: datapack.h:98
void setBuf(char *b, int64_t s)
Definition: datapack.h:103
Threads::Lock nruserslock_
Definition: datapack.h:71
int ID
Each Mgr has its own ID.
Definition: datapack.h:139
void add(DataPack *)
The pack becomes mine.
T * operator->()
Definition: datapack.h:288
FullID fullID(int mgrid) const
Definition: datapack.h:46
static void dumpDPMs(od_ostream &)
const T & operator*() const
Definition: datapack.h:234
static const char * categoryOf(const DataPack::FullID &)
static ID cNoID()
Definition: datapack.h:53
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
virtual void dumpInfo(IOPar &) const
Threads::Lock rwlock_
Definition: datapack.h:199
T & operator*()
Definition: datapack.h:289
static ID BufID()
Simple data buffer: 1.
char const * buf() const
Definition: datapack.h:101
bool haveID(const DataPack::FullID &fid) const
Definition: datapack.h:144
DataPack * dataPack()
Definition: datapack.h:291
Notifier< DataPackMgr > packToBeRemoved
Passed CallBacker* = Pack.
Definition: datapack.h:168
static ID FlatID()
Flat (N1xN2) data: 4.
Definition: datapack.h:221
DataPack * doObtain(ID, bool) const
virtual bool isOK() const
Definition: datapack.h:56
void setCategory(const char *c)
Definition: datapack.h:78
static const char * sKeyCategory()
static ID SeisID()
Cube/Block (N1xN2xN3) data: 3.
int64_t size() const
Definition: datapack.h:102
Threads::Lock & updateLock() const
Definition: datapack.h:58
T * ptr_
Definition: datapack.h:241
int indexOf(ID) const
Object should be readlocked.
static DataPackMgr & DPM(ID)
const T * operator->() const
Definition: datapack.h:233
void release(const DataPack *dp)
Definition: datapack.h:163
#define mClass(module)
Definition: commondefs.h:181
ID id_
Definition: datapack.h:193
DataPackRef(DataPack *p)
Assumes p is obtained.
Definition: datapack.h:366
MultiID FullID
Definition: datapack.h:38
static ID getID(const DataPack::FullID &fid)
Definition: datapack.h:140
DataPack * addAndObtain(DataPack *)
virtual float nrKBytes() const
Definition: datapack.h:106
bool haveID(DataPack::ID) const
const DataPackMgr * manager_
Definition: datapack.h:73
DataPackMgr & DPM(DataPackMgr::ID)
will create a new mgr if needed
virtual ~ConstDataPackRef()
Definition: datapack.h:226
ObjectSet< const DataPack > packs_
Definition: datapack.h:194
DataPack * observe(DataPack::ID dpid)
Definition: datapack.h:157
static Threads::Lock mgrlistlock_
Definition: datapack.h:201
const char * categoryOf(DataPack::ID) const
Compound key consisting of ints.
Definition: multiid.h:24
static ID cUdfID()
Definition: datapack.h:54
Simple DataPack based on an unstructured char array buffer.
Definition: datapack.h:90
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
const BufferString category_
Definition: datapack.h:69
virtual const char * category() const
Definition: datapack.h:47
void dumpInfo(od_ostream &) const
Manages DataPacks.
Definition: datapack.h:134
DataPack * obtain(DataPack::ID dpid)
Definition: datapack.h:153
int ID
Definition: datapack.h:37
DataPack(const DataPack &)
void releaseNow()
Definition: datapack.h:354
DataPack(const char *categry)
Threads::Lock updatelock_
Definition: datapack.h:72
int64_t sz_
Definition: datapack.h:111
BufferDataPack(char *b=0, int64_t s=0, const char *catgry="Buffer")
Definition: datapack.h:93
virtual void dumpInfoFor(DataPack::ID, IOPar &) const
A data packet: data+positioning and more that needs to be shared.
Definition: datapack.h:34
static ID SurfID()
Surface (triangulated) data: 5.
virtual float nrKBytesOf(DataPack::ID) const
const DataPack * dataPack() const
Definition: datapack.h:236
Notifier< DataPackMgr > newPack
Passed CallBacker* = Pack.
Definition: datapack.h:167
static ManagedObjectSet< DataPackMgr > mgrs_
Definition: datapack.h:202
#define mDynamicCast(typ, out, in)
Definition: commondefs.h:147
static ID getNewID()
ensures a global data pack ID
char * buf_
Definition: datapack.h:110
static const char * nameOf(const DataPack::FullID &)
void release(DataPack::ID)
OD class for stream write common access to the user log file, or std::cout in other than od_main.
Definition: od_ostream.h:26
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
T * ptr()
Definition: datapack.h:290
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
static ID PointID()
Sets of 'unconnected' points: 2.
void releaseAll(bool donotify)
DataPack * dp_
Definition: datapack.h:240
const ID id_
Definition: datapack.h:68
Definition: datapack.h:278
Generated at
for the OpendTect
seismic interpretation project.
Copyright (C): dGB Beheer B.V. 1995-2021