# Interface IStreamMonitor

All Known Subinterfaces:
  `IBinaryStreamMonitor, IFlushableStreamMonitor`

public interface IStreamMonitor
A stream monitor manages the contents of the stream a process is writing to, and notifies registered listeners of changes in the stream.

Clients may implement this interface. Generally, a client that provides an implementation of the `IStreamsProxy` interface must also provide an implementation of this interface.

See Also:
  - `IStreamsProxy`
  - `IFlushableStreamMonitor`
  - `IBinaryStreamMonitor`

## Method Summary

Modifier and Type
Method
Description
`void`
`addListener(IStreamListener listener)`
Adds the given listener to this stream monitor's registered listeners.
`String`
`getContents()`
Returns the entire current contents of the stream.
`void`
`removeListener(IStreamListener listener)`
Removes the given listener from this stream monitor's registered listeners.

## Method Details

### addListener

void addListener(IStreamListener listener)
Adds the given listener to this stream monitor's registered listeners. Has no effect if an identical listener is already registered.

Parameters:
  `listener` - the listener to add

### getContents

String getContents()
Returns the entire current contents of the stream. An empty String is returned if the stream is empty.

Returns:
  the stream contents as a `String`

### removeListener

void removeListener(IStreamListener listener)
Removes the given listener from this stream monitor's registered listeners. Has no effect if the listener is not already registered.

Parameters:
  `listener` - the listener to remove