Package ghidra.util.database

# Class DBCachedDomainObjectAdapter

java.lang.Object
ghidra.framework.data.DomainObjectAdapter
ghidra.framework.data.DomainObjectAdapterDB
ghidra.framework.data.DBDomainObjectSupport
ghidra.util.database.DBCachedDomainObjectAdapter

All Implemented Interfaces:
  `ErrorHandler`, `DomainObject`

Direct Known Subclasses:
  `DBTrace`

public abstract class DBCachedDomainObjectAdapter extends DBDomainObjectSupport
A domain object that can use `DBCachedObjectStoreFactory`.

Technically, this only introduces a read-write lock to the domain object. The `DBCachedObjectStoreFactory` and related require this read-write lock. Sadly, this idea didn't pan out, and that read-write lock is just a degenerate wrapper of the Ghidra `Lock`, which is not a read-write lock. This class may disappear.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class ghidra.framework.data.DBDomainObjectSupport

  `DBDomainObjectSupport.ManagerSupplier<T>`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected ReadWriteLock`
  `rwLock`

  ### Fields inherited from class ghidra.framework.data.DomainObjectAdapterDB

  `changeSet, dbh, NUM_UNDOS, options`

  ### Fields inherited from class ghidra.framework.data.DomainObjectAdapter

  `changed, changeSupportMap, DEFAULT_NAME, lock, metadata, name, temporary`

  ### Fields inherited from interface ghidra.framework.model.DomainObject

  `DO_DOMAIN_FILE_CHANGED, DO_OBJECT_CLOSED, DO_OBJECT_ERROR, DO_OBJECT_RENAMED, DO_OBJECT_RESTORED, DO_OBJECT_SAVED, DO_PROPERTY_CHANGED, undoLock`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `DBCachedDomainObjectAdapter(DBHandle dbh, OpenMode openMode, TaskMonitor monitor, String name, int timeInterval, int bufSize, Object consumer)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ReadWriteLock`
  `getReadWriteLock()`
  Get the "read-write" lock

  ### Methods inherited from class ghidra.framework.data.DBDomainObjectSupport

  `createManager, finishedCreatingManagers, init`

  ### Methods inherited from class ghidra.framework.data.DomainObjectAdapterDB

  `addSynchronizedDomainObject, addTransactionListener, canLock, canRedo, canSave, canUndo, clearCache, clearUndo, clearUndo, close, dbError, domainObjectRestored, endTransaction, flushWriteCache, forceLock, getAllRedoNames, getAllUndoNames, getChangeSet, getCurrentTransactionInfo, getDBHandle, getOptions, getOptionsNames, getRedoName, getSynchronizedDomainObjects, getUndoName, getUndoStackDepth, getUserData, hasTerminatedTransaction, invalidate, invalidateWriteCache, isChanged, isClosed, isLocked, loadMetadata, lock, openTransaction, performPropertyListAlterations, propertyChanged, redo, releaseSynchronizedDomainObject, removeTransactionListener, save, saveMetadata, saveToPackedFile, setChanged, setImmutable, startTransaction, startTransaction, undo, unlock, updateMetadata`

  ### Methods inherited from class ghidra.framework.data.DomainObjectAdapter

  `addCloseListener, addConsumer, addDomainFileListener, addListener, checkExclusiveAccess, createPrivateEventQueue, fatalErrorOccurred, fireEvent, flushEvents, flushPrivateEventQueue, getAssociatedUserFilesystem, getChangeStatus, getConsumerList, getContentHandler, getContentHandler, getContentHandler, getContentHandlers, getDescription, getDomainFile, getLock, getMetadata, getModificationNumber, getName, hasExclusiveAccess, isSendingEvents, isTemporary, isUsedBy, release, removeCloseListener, removeDomainFileListener, removeListener, removePrivateEventQueue, setDomainFile, setEventsEnabled, setName, setTemporary, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface ghidra.framework.model.DomainObject

  `isChangeable, withTransaction, withTransaction`

- ## Field Details

  - ### rwLock

    protected ReadWriteLock rwLock

- ## Constructor Details

  - ### DBCachedDomainObjectAdapter

    protected DBCachedDomainObjectAdapter(DBHandle dbh, OpenMode openMode, TaskMonitor monitor, String name, int timeInterval, int bufSize, Object consumer)
    See Also:
      - `DBDomainObjectSupport`

- ## Method Details

  - ### getReadWriteLock

    public ReadWriteLock getReadWriteLock()
    Get the "read-write" lock
    Returns:
      the lock