OpendTect  6.3
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
SaveableManager Class Referenceabstract

Base class for managers of Saveable objects: loading and storing. More...

Inheritance diagram for SaveableManager:
[legend]

Public Member Functions

SaveableManagerclone () const
 
void handleUnsavedLastCall ()
 
void addNew (const SharedObject &, const ObjID &, const IOPar *, bool) const
 
- Public Member Functions inherited from NamedMonitorable
 NamedMonitorable (const char *nm=0)
 
 NamedMonitorable (const NamedObject &)
 
virtual ~NamedMonitorable ()
 
 NamedMonitorable (const NamedMonitorable &)
 
NamedMonitorableoperator= (const NamedMonitorable &)
 
bool operator== (const NamedMonitorable &) const
 
bool operator!= (const NamedMonitorable &oth) const
 
ChangeType compareWith (const Monitorable &) const
 
virtual NamedMonitorablegetClone () const
 
virtual BufferString getName () const
 
virtual void setName (const char *)
 
- Public Member Functions inherited from Monitorable
 Monitorable (const Monitorable &)
 
virtual ~Monitorable ()
 
Monitorableoperator= (const Monitorable &)
 
bool operator== (const Monitorable &) const
 
virtual ChangeDataNotifierobjectChanged () const
 
virtual Notifier< Monitorable > & objectToBeDeleted () const
 
virtual void touch () const
 
virtual DirtyCountType dirtyCount () const
 
void sendChangeNotification (const ChangeData &) const
 
void sendEntireObjectChangeNotification () const
 
void transferNotifsTo (const Monitorable &, const CallBacker *onlyfor=0) const
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const
 
bool attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const
 
void detachCB (const NotifierAccess &, const CallBack &) const
 
void detachCB (const NotifierAccess *notif, const CallBack &cb) const
 
bool isNotifierAttached (const NotifierAccess *) const
 Only for debugging purposes, don't use. More...
 
virtual bool isCapsule () const
 
void stopReceivingNotifications () const
 
- Public Member Functions inherited from NamedObject
 NamedObject (const char *nm=0)
 
 NamedObject (const NamedObject &oth)
 
virtual ~NamedObject ()
 
NamedObjectoperator= (const NamedObject &)
 
bool operator== (const NamedObject &oth) const
 
virtual const OD::Stringname () const
 
bool getNameFromPar (const IOPar &)
 
void putNameInPar (IOPar &) const
 

Protected Member Functions

 SaveableManager (const IOObjContext &, bool autosv, bool tempobjsonly=false)
 
virtual SaveablegetSaver (const SharedObject &) const =0
 
virtual ChangeRecordergetChangeRecorder (const SharedObject &) const
 
virtual void addCBsToObj (const SharedObject &)
 
virtual void setAuxOnAdd ()
 
ObjID getID (const SharedObject &) const
 
uiRetVal store (const SharedObject &, const IOPar *) const
 
uiRetVal store (const SharedObject &, const ObjID &, const IOPar *) const
 
uiRetVal save (const SharedObject &) const
 
bool needsSave (const SharedObject &) const
 
IOObjgetIOObj (const DBKey &) const
 
IOObjgetIOObjByName (const char *) const
 
void setEmpty ()
 
IdxType gtIdx (const char *) const
 
IdxType gtIdx (const ObjID &) const
 
IdxType gtIdx (const SharedObject &) const
 
SharedObjectgtObj (IdxType) const
 
const SaveablesaverFor (const ObjID &) const
 
uiRetVal doSave (const ObjID &) const
 
void add (const SharedObject &, const ObjID &, AccessLocker &, const IOPar *, bool) const
 
void dbmEntryRemovedCB (CallBacker *)
 
void survChgCB (CallBacker *)
 
void appExitCB (CallBacker *)
 
void objDelCB (CallBacker *)
 
void objChgCB (CallBacker *)
 
- Protected Member Functions inherited from NamedMonitorable
void copyAll (const NamedMonitorable &)
 
- Protected Member Functions inherited from Monitorable
 Monitorable ()
 
void copyAll (const Monitorable &)
 
void sendChgNotif (AccessLocker &, const ChangeData &) const
 calls objectChanged with released lock More...
 
void sendChgNotif (AccessLocker &, ChangeType, IDType) const
 calls objectChanged with released lock More...
 
void sendDelNotif () const
 
void stopChangeNotifications () const
 
void resumeChangeNotifications () const
 
template<class T >
getMemberSimple (const T &) const
 the get function used by mImplSimpleMonitoredGet More...
 
template<class TMember , class TSetTo >
void setMemberSimple (TMember &, TSetTo, ChangeType, IDType)
 the set function used by mImplSimpleMonitoredSet More...
 
- Protected Member Functions inherited from CallBacker
void detachAllNotifiers () const
 Call from the destructor of your inherited object. More...
 

Protected Attributes

ObjectSet< Saveablesavers_
 
ObjectSet< ChangeRecorderchgrecs_
 
const IOObjContextctxt_
 
const bool autosaveable_
 
const bool tempobjsonly_
 
- Protected Attributes inherited from Monitorable
Threads::Lock accesslock_
 
- Protected Attributes inherited from NamedObject
BufferString name_
 

Private Types

enum  DispOpt { Show, Hide, Vanish }
 
typedef size_type IdxType
 

Private Member Functions

 ~SaveableManager ()
 
bool nameExists (const char *) const
 
bool canSave (const ObjID &) const
 
uiRetVal save (const ObjID &) const
 
uiRetVal saveAs (const ObjID &curid, const ObjID &newid) const
 
bool needsSave (const ObjID &) const
 
void setJustSaved (const ObjID &) const
 
bool isValidID (const ObjID &) const
 
bool isLoaded (const char *) const
 
bool isLoaded (const ObjID &) const
 
void getAllLoaded (DBKeySet &) const
 
ObjID getIDByName (const char *) const
 
IOPar getIOObjPars (const ObjID &) const
 
BufferString nameOf (const ObjID &) const
 
IdxType size () const
 
ObjID getIDByIndex (IdxType) const
 
IOPar getIOObjParsByIndex (IdxType) const
 
void clearChangeRecords (const ObjID &)
 
void getChangeInfo (const ObjID &, uiString &undotxt, uiString &redotxt) const
 
bool useChangeRecord (const ObjID &, bool forundo)
 
void displayRequest (const DBKey &, DispOpt=Show)
 

Private Attributes

mODTextTranslationClass(SaveableManager) public typedef ObjectSet< Saveable >::size_type size_type
 
CNotifier< SaveableManager, ObjID > ObjOrphaned
 
CNotifier< SaveableManager, ObjID > UnsavedObjLastCall
 
CNotifier< SaveableManager, ObjID > ShowRequested
 
CNotifier< SaveableManager, ObjID > HideRequested
 
CNotifier< SaveableManager, ObjID > VanishRequested
 
CNotifier< SaveableManager, ObjID > ObjAdded
 

Additional Inherited Members

- Public Types inherited from Monitorable
typedef int ChangeType
 
typedef int64_t IDType
 
typedef int64_t DirtyCountType
 
typedef CNotifier< Monitorable, ChangeDataChangeDataNotifier
 
- Static Public Member Functions inherited from NamedMonitorable
static Notifier< NamedMonitorable > & instanceCreated ()
 
static ChangeType cNameChange ()
 
- Static Public Member Functions inherited from Monitorable
static Notifier< Monitorable > & instanceCreated ()
 defines static instanceCreated() More...
 
static ChangeType cEntireObjectChange ()
 
static ChangeType cNoChange ()
 
static IDType cUnspecChgID ()
 
static IDType cEntireObjectChgID ()
 
static ChangeType changeNotificationTypeOf (CallBacker *)
 
- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 
- Protected Types inherited from Monitorable
typedef Threads::Atomic< DirtyCountTypeDirtyCounter
 

Detailed Description

Base class for managers of Saveable objects: loading and storing.

Typical code for read:

uiRetVal retval; ConstRefMan<MyObj> myobj = MyObjMGR().fetch( id, retval ); if ( retval.isError() ) { errmsg_ = retval; return false; }

Typical code for write:

RefMan<MyObj> myobj = new MyObj; fillObj( *myobj ); uiRetVal retval = MyObjMGR().store( *myobj, id ); if ( retval.isError() ) { errmsg_ = retval; return false; }

Subclasses need to provide a method that returns a Saveable for a SharedObject, and optionally one that returns a ChangeRecorder.

Member Typedef Documentation

Member Enumeration Documentation

Enumerator
Show 
Hide 
Vanish 

Constructor & Destructor Documentation

SaveableManager::~SaveableManager ( )
private
SaveableManager::SaveableManager ( const IOObjContext ,
bool  autosv,
bool  tempobjsonly = false 
)
protected

Member Function Documentation

void SaveableManager::add ( const SharedObject ,
const ObjID &  ,
AccessLocker ,
const IOPar ,
bool   
) const
protected
virtual void SaveableManager::addCBsToObj ( const SharedObject )
protectedvirtual
void SaveableManager::addNew ( const SharedObject ,
const ObjID &  ,
const IOPar ,
bool   
) const
void SaveableManager::appExitCB ( CallBacker )
protected
bool SaveableManager::canSave ( const ObjID &  ) const
private
void SaveableManager::clearChangeRecords ( const ObjID &  )
private
SaveableManager* SaveableManager::clone ( ) const
inlinevirtual

Reimplemented from NamedMonitorable.

void SaveableManager::dbmEntryRemovedCB ( CallBacker )
protected
void SaveableManager::displayRequest ( const DBKey ,
DispOpt  = Show 
)
private
uiRetVal SaveableManager::doSave ( const ObjID &  ) const
protected
void SaveableManager::getAllLoaded ( DBKeySet ) const
private
void SaveableManager::getChangeInfo ( const ObjID &  ,
uiString undotxt,
uiString redotxt 
) const
private
virtual ChangeRecorder* SaveableManager::getChangeRecorder ( const SharedObject ) const
inlineprotectedvirtual

Reimplemented in Pick::SetManager.

ObjID SaveableManager::getID ( const SharedObject ) const
protected
ObjID SaveableManager::getIDByIndex ( IdxType  ) const
private
ObjID SaveableManager::getIDByName ( const char *  ) const
private
IOObj* SaveableManager::getIOObj ( const DBKey ) const
protected
IOObj* SaveableManager::getIOObjByName ( const char *  ) const
protected
IOPar SaveableManager::getIOObjPars ( const ObjID &  ) const
private
IOPar SaveableManager::getIOObjParsByIndex ( IdxType  ) const
private
virtual Saveable* SaveableManager::getSaver ( const SharedObject ) const
protectedpure virtual
IdxType SaveableManager::gtIdx ( const char *  ) const
protected
IdxType SaveableManager::gtIdx ( const ObjID &  ) const
protected
IdxType SaveableManager::gtIdx ( const SharedObject ) const
protected
SharedObject* SaveableManager::gtObj ( IdxType  ) const
protected
void SaveableManager::handleUnsavedLastCall ( )
bool SaveableManager::isLoaded ( const char *  ) const
private
bool SaveableManager::isLoaded ( const ObjID &  ) const
private
bool SaveableManager::isValidID ( const ObjID &  ) const
private
bool SaveableManager::nameExists ( const char *  ) const
private
BufferString SaveableManager::nameOf ( const ObjID &  ) const
private
bool SaveableManager::needsSave ( const ObjID &  ) const
private
bool SaveableManager::needsSave ( const SharedObject ) const
protected
void SaveableManager::objChgCB ( CallBacker )
protected
void SaveableManager::objDelCB ( CallBacker )
protected
uiRetVal SaveableManager::save ( const ObjID &  ) const
private
uiRetVal SaveableManager::save ( const SharedObject ) const
protected
uiRetVal SaveableManager::saveAs ( const ObjID &  curid,
const ObjID &  newid 
) const
private
const Saveable* SaveableManager::saverFor ( const ObjID &  ) const
protected
virtual void SaveableManager::setAuxOnAdd ( )
inlineprotectedvirtual

Reimplemented in Well::Manager.

void SaveableManager::setEmpty ( )
protected
void SaveableManager::setJustSaved ( const ObjID &  ) const
private
IdxType SaveableManager::size ( ) const
private
uiRetVal SaveableManager::store ( const SharedObject ,
const IOPar  
) const
protected
uiRetVal SaveableManager::store ( const SharedObject ,
const ObjID &  ,
const IOPar  
) const
protected
void SaveableManager::survChgCB ( CallBacker )
protected
bool SaveableManager::useChangeRecord ( const ObjID &  ,
bool  forundo 
)
private

Member Data Documentation

const bool SaveableManager::autosaveable_
protected
ObjectSet<ChangeRecorder> SaveableManager::chgrecs_
protected
const IOObjContext& SaveableManager::ctxt_
protected
CNotifier<SaveableManager,ObjID> SaveableManager::HideRequested
private
CNotifier<SaveableManager,ObjID> SaveableManager::ObjAdded
private

Rarely used. Do not delete the object in the callbacker function. Use the setNoDelete() when you create a RefMan

CNotifier<SaveableManager,ObjID> SaveableManager::ObjOrphaned
private
ObjectSet<Saveable> SaveableManager::savers_
protected
CNotifier<SaveableManager,ObjID> SaveableManager::ShowRequested
private
mODTextTranslationClass (SaveableManager) public typedef ObjectSet<Saveable>::size_type SaveableManager::size_type
private
const bool SaveableManager::tempobjsonly_
protected
CNotifier<SaveableManager,ObjID> SaveableManager::UnsavedObjLastCall
private
CNotifier<SaveableManager,ObjID> SaveableManager::VanishRequested
private

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