Class RemoteDatabaseItem

java.lang.Object
ghidra.framework.store.remote.RemoteFolderItem
ghidra.framework.store.remote.RemoteDatabaseItem
All Implemented Interfaces:
DatabaseItem, FolderItem

public class RemoteDatabaseItem extends RemoteFolderItem implements DatabaseItem
RemoteDatabaseItem provides a FolderItem implementation for a remote database. This item wraps an underlying versioned database which corresponds to a repository item.
  • Method Details

    • length

      public long length() throws IOException
      Description copied from interface: FolderItem
      Returns the length of this domain file. This size is the minimum disk space used for storing this file, but does not account for additional storage space used to tracks changes, etc.
      Specified by:
      length in interface FolderItem
      Returns:
      file length
      Throws:
      IOException - thrown if IO or access error occurs
    • canRecover

      public boolean canRecover()
      Description copied from interface: FolderItem
      Returns true if unsaved file changes can be recovered.
      Specified by:
      canRecover in interface FolderItem
    • open

      public ManagedBufferFileAdapter open(int fileVersion, int minChangeDataVer) throws IOException
      Description copied from interface: DatabaseItem
      Open a specific version of the stored database for non-update use. Historical change data from minChangeDataVer through version is available. The returned BufferFile does not support the BufferMgr's Save operation.
      Specified by:
      open in interface DatabaseItem
      Parameters:
      fileVersion - database version
      minChangeDataVer - indicates the oldest change data version to be included in change set. A -1 indicates only the last change data buffer file is applicable.
      Returns:
      buffer file
      Throws:
      FileInUseException - thrown if unable to obtain the required database lock(s).
      IOException - thrown if IO error occurs.
      See Also:
    • open

      public ManagedBufferFileAdapter open(int fileVersion) throws IOException
      Description copied from interface: DatabaseItem
      Open a specific version of the stored database for non-update use. Change data will not be available. The returned BufferFile does not support the BufferMgr's Save operation.
      Specified by:
      open in interface DatabaseItem
      Parameters:
      fileVersion - database version
      Returns:
      buffer file
      Throws:
      FileInUseException - thrown if unable to obtain the required database lock(s).
      IOException - thrown if IO error occurs.
    • open

      public ManagedBufferFileAdapter open() throws IOException
      Description copied from interface: DatabaseItem
      Open the current version of the stored database for non-update use. Change data will not be available. The returned BufferFile does not support the BufferMgr's Save operation.
      Specified by:
      open in interface DatabaseItem
      Throws:
      IOException - thrown if IO error occurs.
    • openForUpdate

      public ManagedBufferFileAdapter openForUpdate(long checkoutId) throws IOException
      Description copied from interface: DatabaseItem
      Open the current version of the stored database for update use. The returned BufferFile supports the Save operation. If this item is on a shared file-system, this method initiates an item checkin. If a changeSet is specified, it will be filled with all change data since the check-out version. Change data will be read into the change set starting oldest to newest.
      Specified by:
      openForUpdate in interface DatabaseItem
      Parameters:
      checkoutId - the associated checkoutId if this item is stored on a versioned file-system, otherwise DEFAULT_CHECKOUT_ID can be specified.
      Returns:
      buffer file
      Throws:
      FileInUseException - thrown if unable to obtain the required database lock(s).
      IOException - thrown if IO error occurs.
    • updateCheckoutVersion

      public void updateCheckoutVersion(long checkoutId, int checkoutVersion, String user) throws IOException
      Description copied from interface: FolderItem
      Update the checkout version associated with this versioned item.
      Specified by:
      updateCheckoutVersion in interface FolderItem
      Parameters:
      checkoutId - id corresponding to an existing checkout
      Throws:
      IOException - if an IO error occurs.
    • hasCheckouts

      public boolean hasCheckouts() throws IOException
      Description copied from interface: FolderItem
      Returns true if this item is versioned and has one or more checkouts.
      Specified by:
      hasCheckouts in interface FolderItem
      Throws:
      IOException - if an IO error occurs
    • isCheckinActive

      public boolean isCheckinActive() throws IOException
      Description copied from interface: FolderItem
      Returns true if this item is versioned and has a checkin in-progress.
      Specified by:
      isCheckinActive in interface FolderItem
      Throws:
      IOException - if an IO error occurs
    • output

      public void output(File outputFile, int fileVersion, TaskMonitor monitor) throws IOException, CancelledException
      Description copied from interface: FolderItem
      Serialize (i.e., pack) this item into the specified outputFile.
      Specified by:
      output in interface FolderItem
      Parameters:
      outputFile - packed output file to be created
      fileVersion - if this item is versioned, specifies the version to be output, otherwise -1 should be specified.
      monitor - progress monitor
      Throws:
      IOException
      CancelledException - if monitor cancels operation