21 template <
class T>
class ArrayND;
52 : GroupedID(mgrid,packid) {}
54 static FullID getInvalid();
55 static bool isInDBKey(
const DBKey&);
57 void putInDBKey(
DBKey&)
const;
60 MgrID
mgrID()
const {
return groupID(); }
61 PackID
packID()
const {
return objID(); }
71 int isOK()
const {
return 1; }
73 ID
id()
const {
return id_; }
75 {
return FullID(mgrid,
id()); }
76 const char*
category()
const {
return gtCategory(); }
77 float nrKBytes()
const {
return gtNrKBytes(); }
80 { doDumpInfo(iop);
return true; }
82 static const char* sKeyCategory();
92 {
return gtArrayData(iarr); }
98 virtual const char*
gtCategory()
const {
return category_; }
99 virtual float gtNrKBytes()
const = 0;
100 virtual void doDumpInfo(
IOPar&)
const;
111 static ID getNewID();
112 static float sKb2MbFac();
134 const char* catgry=
"Buffer");
137 char*
buf() {
return buf_; }
138 char const*
buf()
const {
return buf_; }
266 {
if ( dp )
unRef( dp->
id() ); }
285 operator bool()
const {
return ptr_; }
288 const T*
ptr()
const {
return ptr_; }
345 T*
ptr() {
return this->ptr_; }
355 #define mObtainDataPack( var, type, mgrid, newid ) \ 357 unRefAndZeroPtr( var ); \ 359 RefMan<DataPack> __dp = DPM( mgrid ).get( newid ); \ 360 mDynamicCastGet( type, __dummy, __dp.ptr() ); \ 361 var = (type) refPtr( __dummy ); \ 365 #define mObtainDataPackToLocalVar( var, type, mgrid, newid ) \ 367 mObtainDataPack( var, type, mgrid, newid ); \ 371 template <
class T>
inline 380 template <
class T>
inline 391 template <
class T>
inline 400 template <
class T>
inline 409 template <
class T>
inline 422 template <
class T>
inline 434 template <
class T>
inline 440 template <
class T>
inline 446 template <
class T>
inline #define mExpClass(module)
Definition: commondefs.h:157
bool getFromString(int &, const char *, int udfval)
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
char * buf()
Definition: datapack.h:137
T * add(RefMan< T > &p)
Definition: datapack.h:192
OD class for stream write common access to the user log file, or std::cout in batch progs...
Definition: od_ostream.h:25
void release(DataPack::ID)
bool haveID(const DataPack::FullID &fid) const
Definition: datapack.h:185
int ChangeType
Definition: monitorable.h:80
int64_t size() const
Definition: datapack.h:139
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
int isOK() const
Definition: datapack.h:71
Definition: datapack.h:43
char const * buf() const
Definition: datapack.h:138
const char * category() const
Definition: datapack.h:76
static ID cNoID()
Definition: datapack.h:83
virtual int gtNrArrays() const
Definition: datapack.h:101
bool dumpInfo(IOPar &iop) const
Definition: datapack.h:79
static void dumpDPMs(od_ostream &)
Simple DataPack based on an unstructured char array buffer.
Definition: datapack.h:129
static ID PointID()
Sets of 'unconnected' points: 2.
void setNoDelete(bool yn)
Definition: ptrman.h:489
bool haveID(DataPack::ID) const
#define mGlobal(module)
Definition: commondefs.h:160
virtual const ArrayND< float > * gtArrayData(int) const
Definition: datapack.h:102
virtual ~ConstDataPackRef()
Definition: datapack.h:279
#define od_int64
Definition: plftypes.h:34
Definition: sharedobject.h:18
GroupID groupID() const
Definition: groupedid.h:52
virtual const char * gtCategory() const
Definition: datapack.h:98
T & operator*()
Definition: datapack.h:344
DataPackRef< T > & operator=(const DataPackRef< T > &)
Definition: datapack.h:447
ID id() const
Definition: datapack.h:228
Notifier< DataPackMgr > packToBeRemoved
Passed CallBacker* = Pack.
Definition: datapack.h:211
DataPack * dataPack()
Definition: datapack.h:346
const T * operator->() const
Definition: datapack.h:286
ConstDataPackRef(const DataPack *p)
Assumes p is obtained.
Definition: datapack.h:392
virtual float nrKBytesOf(DataPack::ID) const
static DataPackMgr * gtDPM(ID, bool)
const DataPackMgr * manager_
Definition: datapack.h:109
void getPackIDs(TypeSet< DataPack::ID > &) const
int nrArrays() const
Definition: datapack.h:90
RefMan< T > getAndCast(DataPack::ID) const
Dynamic casts to T and returns results.
Definition: datapack.h:372
#define mDeclMonitorableAssignment(clss)
like mDeclAbstractMonitorableAssignment but for non-abstract subclasses. Implements the clone() metho...
Definition: monitor.h:111
void release(const DataPack *dp)
Definition: datapack.h:265
static ID FlatID()
Flat (N1xN2) data: 4.
Definition: datapack.h:273
A data packet: data+positioning and more that needs to be shared.
Definition: datapack.h:39
#define mDeclInstanceCreatedNotifierAccess(clss)
Definition: notify.h:235
FullID::PackID ID
Definition: datapack.h:64
Definition: groupedid.h:40
Manages DataPacks.
Definition: datapack.h:174
static ID getID(const DataPack::FullID &fid)
Definition: datapack.h:181
static ID BufID()
Simple data buffer: 1.
FullID(MgrID mgrid, PackID packid)
Definition: datapack.h:51
T * operator->()
Definition: datapack.h:343
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
ID id() const
Definition: datapack.h:73
#define mImplSimpleMonitoredGetSet(pfx, fnnmget, fnnmset, typ, memb, chgtyp)
Defines simple MT-safe copyable member access.
Definition: monitor.h:39
ID id_
Definition: datapack.h:238
static Threads::Lock mgrlistlock_
Definition: datapack.h:241
DataPackRef(DataPack *p)
Assumes p is obtained.
Definition: datapack.h:435
int64_t sz_
Definition: datapack.h:150
const T & operator*() const
Definition: datapack.h:287
bool unRef(DataPack::ID dpid)
DataPack::FullID::MgrID ID
Definition: datapack.h:180
T * add(T *p)
Definition: datapack.h:190
char * buf_
Definition: datapack.h:149
FullID fullID(MgrID mgrid) const
Definition: datapack.h:74
DataPack * addAndObtain(DataPack *)
#define mDynamicCastGet(typ, out, in)
Definition: commondefs.h:123
T * ptr_
Definition: datapack.h:294
const DataPack * dataPack() const
Definition: datapack.h:289
DBKey dbkey_
Definition: datapack.h:107
const ArrayND< float > * arrayData(int iarr) const
Definition: datapack.h:91
An ArrayND is an array with a given number of dimensions and a size.
Definition: arraynd.h:29
#define mDynamicCast(typ, out, in)
Definition: commondefs.h:122
WeakPtr< T > observeAndCast(DataPack::ID) const
Dynamic casts to T and returns results.
Definition: datapack.h:381
Definition: datapack.h:332
const char * categoryOf(DataPack::ID) const
#define mDeprecated
Definition: plfdefs.h:213
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
DataPack * dp_
Definition: datapack.h:293
Notifier< DataPackMgr > newPack
Passed CallBacker* = Pack.
Definition: datapack.h:210
PackID packID() const
Definition: datapack.h:61
DataPack * obtain(DataPack::ID dpid)
ObjID objID() const
Definition: groupedid.h:54
const ID id_
Definition: datapack.h:105
FullID()
Definition: datapack.h:50
T * ptr()
Definition: datapack.h:345
ObjID PackID
Definition: datapack.h:48
ConstDataPackRef< T > & operator=(const ConstDataPackRef< T > &)
Definition: datapack.h:411
DataPackMgr & DPM(DataPackMgr::ID)
will create a new mgr if needed
FixedString SeisID()
Definition: keystrs.h:110
virtual void dumpInfoFor(DataPack::ID, IOPar &) const
void releaseAll(bool donotify)
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
void setCategory(const char *c)
Definition: datapack.h:114
Definition: groupedid.h:41
const T * ptr() const
Definition: datapack.h:288
WeakPtr< DataPack > observe(DataPack::ID) const
MgrID mgrID() const
Definition: datapack.h:60
WeakPtrSet< DataPack > packs_
Definition: datapack.h:239
#define mClass(module)
Definition: commondefs.h:161
const char * nameOf(ButtonState)
FixedString ID()
Definition: keystrs.h:71
virtual float gtNrKBytes() const
Definition: datapack.h:152
A unique identifier for an object consisting of a group and an ID within the group.
Definition: groupedid.h:34
#define mDeclAbstractMonitorableAssignment(clss)
Monitorable subclasses: assignment and comparison.
Definition: monitor.h:105
FullID::MgrID MgrID
Definition: datapack.h:65
void releaseNow()
Definition: datapack.h:423
bool ref(DataPack::ID dpid)
static ManagedObjectSet< DataPackMgr > mgrs_
Definition: datapack.h:242
float nrKBytes() const
Definition: datapack.h:77
void dumpInfo(od_ostream &) const
const T * ptr() const
Definition: ptrman.h:95
const BufferString category_
Definition: datapack.h:106
GroupID MgrID
Definition: datapack.h:47
static ID SurfID()
Surface (triangulated) data: 5.