org.apache.solr.client.solrj.io.stream

## Class PriorityStream

- java.lang.Object
- - org.apache.solr.client.solrj.io.stream.TupleStream
  - - org.apache.solr.client.solrj.io.stream.PriorityStream

All Implemented Interfaces:
  Closeable, Serializable, AutoCloseable, Expressible, MapSerializable, MapWriter

    public class PriorityStream
    extends TupleStream
    implements Expressible

The priority function wraps two topics that represent high priority and low priority task queues. Each time the priority function is called it will check to see if there are any high priority tasks in the queue. If there are high priority tasks, then the high priority queue will be read until it returns the EOF Tuple. If there are no tasks in the high priority queue, then the lower priority task queue will be opened and read until the EOF Tuple is returned. The scheduler is designed to be wrapped by the executor function and a daemon function can be used to call the executor iteratively.

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream

`TupleStream.IgnoreException`

### Nested classes/interfaces inherited from interface org.apache.solr.common.MapWriter

`MapWriter.EntryWriter`

### Constructor Summary

Constructors
Constructor and Description
`PriorityStream(StreamExpression expression, StreamFactory factory)`

### Method Summary

All Methods Instance Methods Concrete Methods
`List<TupleStream>` `children()`
`void` `close()`
`int` `getCost()`
`StreamComparator` `getStreamSort()`
`void` `open()`
`Tuple` `read()`
`void` `setStreamContext(StreamContext streamContext)`
`Explanation` `toExplanation(StreamFactory factory)` Returns an explanation about the stream object
`StreamExpression` `toExpression(StreamFactory factory)`

### Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream

`getShards, getSlices, getStreamNodeId, writeMap`

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

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

### Methods inherited from interface org.apache.solr.common.MapWriter

`toMap`

### Constructor Detail

#### PriorityStream

    public PriorityStream(StreamExpression expression,
                          StreamFactory factory)
                   throws IOException

Throws:
  `IOException`

### Method Detail

#### toExpression

    public StreamExpression toExpression(StreamFactory factory)
                                  throws IOException

Specified by:
  `toExpression` in interface `Expressible`
Throws:
  `IOException`

#### toExplanation

    public Explanation toExplanation(StreamFactory factory)
                              throws IOException

Description copied from interface: `Expressible`
Returns an explanation about the stream object

Specified by:
  `toExplanation` in interface `Expressible`
Specified by:
  `toExplanation` in class `TupleStream`
Parameters:
  `factory` - Stream factory for this, contains information about the function name
Returns:
  Explanation about this stream object containing explanations of any child stream objects
Throws:
  `IOException` - throw on any error

#### setStreamContext

    public void setStreamContext(StreamContext streamContext)

Specified by:
  `setStreamContext` in class `TupleStream`

#### children

    public List<TupleStream> children()

Specified by:
  `children` in class `TupleStream`

#### open

    public void open()
              throws IOException

Specified by:
  `open` in class `TupleStream`
Throws:
  `IOException`

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in class `TupleStream`
Throws:
  `IOException`

#### read

    public Tuple read()
               throws IOException

Specified by:
  `read` in class `TupleStream`
Throws:
  `IOException`

#### getStreamSort

    public StreamComparator getStreamSort()

Specified by:
  `getStreamSort` in class `TupleStream`

#### getCost

    public int getCost()

Overrides:
  `getCost` in class `TupleStream`