# 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
Author:
  Mark Taylor
See Also:
  - `ProgressBarTableSink`

## Field Summary

### Fields inherited from class StoragePolicy

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

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
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(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 StoragePolicy

`copyTable, getDefaultPolicy, randomTable, setDefaultPolicy`

### Methods inherited from class Object

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

## Constructor Details

### MonitorStoragePolicy

public MonitorStoragePolicy(StoragePolicy base, TableSink sink)
Constructor.

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

## Method Details

### 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(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