uk.ac.starlink.table.storage

## Class MonitorStoragePolicy

- java.lang.Object
- - uk.ac.starlink.table.StoragePolicy
  - - uk.ac.starlink.table.storage.MonitorStoragePolicy

-     public class MonitorStoragePolicy
      extends StoragePolicy

  Wrapper storage policy which derives its functionality from an existing ("base") policy, but additionally passes row storage events to a supplied TableSink.
  Since:
    24 Aug 2010
  See Also:
    `ProgressBarTableSink`

- - ### Field Summary

    - ### Fields inherited from class uk.ac.starlink.table.StoragePolicy

      `ADAPTIVE, DISCARD, PREF_PROPERTY, PREFER_DISK, PREFER_MEMORY, SIDEWAYS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MonitorStoragePolicy(StoragePolicy base, TableSink sink)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `StoragePolicy` | `getBasePolicy()` Returns the base storage policy.
    `void` | `interrupt()` Cancels this storage policy for table row writes.
    `boolean` | `isInterrupted()` Indicates whether `interrupt()` has been called on this object.
    `ByteStore` | `makeByteStore()` Returns a new ByteStore object which can be used to provide a destination for general purpose data storage.
    `RowStore` | `makeConfiguredRowStore(StarTable meta)` Creates a new RowStore and primes it by calling `TableSink.acceptMetadata(uk.ac.starlink.table.StarTable)` on it.
    `RowStore` | `makeRowStore()` Returns a new `RowStore` object which can be used to provide a destination for random-access table storage.

    - ### Methods inherited from class uk.ac.starlink.table.StoragePolicy

      `copyTable, getDefaultPolicy, randomTable, setDefaultPolicy`

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

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

- - ### Constructor Detail

    - #### MonitorStoragePolicy

          public MonitorStoragePolicy(StoragePolicy base,
                                      TableSink sink)

      Constructor.
      Parameters:
        `base` - base policy
        `sink` - recipient for row storage events associated with this policy

  - ### Method Detail

    - #### interrupt

          public void interrupt()

      Cancels this storage policy for table row writes. Any attempt to call `acceptRow` on a RowStore obtained from this policy after calling this will result in an `InterruptedIOException`.

    - #### isInterrupted

          public boolean isInterrupted()

      Indicates whether `interrupt()` has been called on this object.
      Returns:
        true iff interrupted

    - #### getBasePolicy

          public StoragePolicy getBasePolicy()

      Returns the base storage policy.
      Returns:
        base policy

    - #### makeRowStore

          public RowStore makeRowStore()

      Description copied from class: `StoragePolicy`
      Returns a new `RowStore` object which can be used to provide a destination for random-access table storage.
      Specified by:
        `makeRowStore` in class `StoragePolicy`
      Returns:
        a RowStore object

    - #### makeConfiguredRowStore

          public RowStore makeConfiguredRowStore(StarTable meta)

      Description copied from class: `StoragePolicy`
      Creates a new RowStore and primes it by calling `TableSink.acceptMetadata(uk.ac.starlink.table.StarTable)` on it.
      Specified by:
        `makeConfiguredRowStore` in class `StoragePolicy`
      Parameters:
        `meta` - template giving the metadata which describes the rows that will have to be stored
      Returns:
        a RowStore on which `acceptMetadata(meta)` has been called

    - #### makeByteStore

          public ByteStore makeByteStore()

      Description copied from class: `StoragePolicy`
      Returns a new ByteStore object which can be used to provide a destination for general purpose data storage.
      Specified by:
        `makeByteStore` in class `StoragePolicy`
      Returns:
        new byte store