OpendTect-6_4  6.4
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
DataPackMgr Class Reference

Manages DataPacks. More...

Inheritance diagram for DataPackMgr:
[legend]

Public Types

typedef int ID
 Each Mgr has its own ID. More...
 

Public Member Functions

bool haveID (DataPack::ID) const
 
bool haveID (const DataPack::FullID &fid) const
 
void add (DataPack *)
 The pack becomes mine. More...
 
DataPackaddAndObtain (DataPack *)
 
DataPackobtain (DataPack::ID dpid)
 
const DataPackobtain (DataPack::ID dpid) const
 
DataPackobserve (DataPack::ID dpid)
 
const DataPackobserve (DataPack::ID dpid) const
 
void release (DataPack::ID)
 
void release (const DataPack *dp)
 
void releaseAll (bool donotify)
 
const char * nameOf (DataPack::ID) const
 
const char * categoryOf (DataPack::ID) const
 
virtual float nrKBytesOf (DataPack::ID) const
 
virtual void dumpInfoFor (DataPack::ID, IOPar &) const
 
ID id () const
 
void dumpInfo (od_ostream &) const
 
float nrKBytes () const
 
const ObjectSet< const DataPack > & packs () const
 
 DataPackMgr (ID)
 
 ~DataPackMgr ()
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (NotifierAccess &, const CallBack &, bool onlyifnew=false)
 
bool attachCB (NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false)
 
void detachCB (NotifierAccess &, const CallBack &)
 
void detachCB (NotifierAccess *notif, const CallBack &cb)
 
bool isNotifierAttached (NotifierAccess *) const
 Only for debugging purposes, don't use. More...
 

Static Public Member Functions

static ID getID (const DataPack::FullID &fid)
 
static ID BufID ()
 Simple data buffer: 1. More...
 
static ID PointID ()
 Sets of 'unconnected' points: 2. More...
 
static ID SeisID ()
 Cube/Block (N1xN2xN3) data: 3. More...
 
static ID FlatID ()
 Flat (N1xN2) data: 4. More...
 
static ID SurfID ()
 Surface (triangulated) data: 5. More...
 
static const char * nameOf (const DataPack::FullID &)
 
static const char * categoryOf (const DataPack::FullID &)
 
static DataPackMgrDPM (ID)
 
static DataPackMgrgtDPM (ID, bool)
 
static void dumpDPMs (od_ostream &)
 

Public Attributes

Notifier< DataPackMgrnewPack
 Passed CallBacker* = Pack. More...
 
Notifier< DataPackMgrpackToBeRemoved
 Passed CallBacker* = Pack. More...
 

Protected Member Functions

DataPackdoObtain (ID, bool) const
 
int indexOf (ID) const
 Object should be readlocked. More...
 
- Protected Member Functions inherited from CallBacker
void detachAllNotifiers ()
 Call from the destructor of your inherited object. More...
 

Protected Attributes

ID id_
 
ObjectSet< const DataPackpacks_
 
Threads::Lock rwlock_
 

Static Protected Attributes

static Threads::Lock mgrlistlock_
 
static ManagedObjectSet< DataPackMgrmgrs_
 

Detailed Description

Manages DataPacks.

DataPacks will be managed with everything in it. If you add a Pack, you will get the ID of the pack.

When you obtain the data for looking at it, you can choose to 'only observe'. In that case, you'd better use the packToBeRemoved notifier, as the data may be deleted at any time. Normally, you want to obtain a reference whilst making sure the data is not thrown away.

This means you must release the data pack once you no longer use it, but NEVER* release a pack when you used the 'observing_only' option.

You can get an appropriate DataPackMgr from the DPM() function.

Member Typedef Documentation

typedef int DataPackMgr::ID

Each Mgr has its own ID.

Constructor & Destructor Documentation

DataPackMgr::DataPackMgr ( ID  )

You can, but normally should not, construct a manager. In general, leave it to DPM().

DataPackMgr::~DataPackMgr ( )

Delete a DataPackMgr only when you have created it with the constructor.

Member Function Documentation

void DataPackMgr::add ( DataPack )

The pack becomes mine.

DataPack* DataPackMgr::addAndObtain ( DataPack )

The pack becomes mines. Pack is obtained during the lock, i.e. threadsafe.

static ID DataPackMgr::BufID ( )
static

Simple data buffer: 1.

const char* DataPackMgr::categoryOf ( DataPack::ID  ) const
static const char* DataPackMgr::categoryOf ( const DataPack::FullID )
static
DataPack* DataPackMgr::doObtain ( ID  ,
bool   
) const
protected
static DataPackMgr& DataPackMgr::DPM ( ID  )
static
static void DataPackMgr::dumpDPMs ( od_ostream )
static
void DataPackMgr::dumpInfo ( od_ostream ) const
virtual void DataPackMgr::dumpInfoFor ( DataPack::ID  ,
IOPar  
) const
virtual
static ID DataPackMgr::FlatID ( )
static

Flat (N1xN2) data: 4.

static ID DataPackMgr::getID ( const DataPack::FullID fid)
inlinestatic
static DataPackMgr* DataPackMgr::gtDPM ( ID  ,
bool   
)
static
bool DataPackMgr::haveID ( DataPack::ID  ) const
bool DataPackMgr::haveID ( const DataPack::FullID fid) const
inline
ID DataPackMgr::id ( ) const
inline
int DataPackMgr::indexOf ( ID  ) const
protected

Object should be readlocked.

const char* DataPackMgr::nameOf ( DataPack::ID  ) const
static const char* DataPackMgr::nameOf ( const DataPack::FullID )
static
float DataPackMgr::nrKBytes ( ) const
virtual float DataPackMgr::nrKBytesOf ( DataPack::ID  ) const
virtual
DataPack* DataPackMgr::observe ( DataPack::ID  dpid)
inline
const DataPack* DataPackMgr::observe ( DataPack::ID  dpid) const
inline
DataPack* DataPackMgr::obtain ( DataPack::ID  dpid)
inline
const DataPack* DataPackMgr::obtain ( DataPack::ID  dpid) const
inline
const ObjectSet<const DataPack>& DataPackMgr::packs ( ) const
inline
static ID DataPackMgr::PointID ( )
static

Sets of 'unconnected' points: 2.

void DataPackMgr::release ( DataPack::ID  )
void DataPackMgr::release ( const DataPack dp)
inline
void DataPackMgr::releaseAll ( bool  donotify)
static ID DataPackMgr::SeisID ( )
static

Cube/Block (N1xN2xN3) data: 3.

static ID DataPackMgr::SurfID ( )
static

Surface (triangulated) data: 5.

Member Data Documentation

ID DataPackMgr::id_
protected
Threads::Lock DataPackMgr::mgrlistlock_
staticprotected
ManagedObjectSet<DataPackMgr> DataPackMgr::mgrs_
staticprotected
Notifier<DataPackMgr> DataPackMgr::newPack

Passed CallBacker* = Pack.

ObjectSet<const DataPack> DataPackMgr::packs_
protected
Notifier<DataPackMgr> DataPackMgr::packToBeRemoved

Passed CallBacker* = Pack.

Threads::Lock DataPackMgr::rwlock_
mutableprotected

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2019