com.saxonica.stream
Class Conduit

java.lang.Object
  extended by com.saxonica.stream.Conduit

public class Conduit
extends Object

A Conduit is a communication channel from a Producer to a Consumer: the channel is used to pass a sequence of items (and possibly an exception) from the producer to the consumer. This provides a bridge beween a push pipeline and a pull pipeline, which operates by executing the push pipeline and the pull pipeline in different threads.


Constructor Summary
Conduit()
           
 
Method Summary
 void close()
          Interface allowing the consumer to indicate that no more items are required.
 void finish()
          Interface allowing the producer to indicate that there are no more items to come.
 boolean isClosed()
          Ask whether the conduit has been closed
 Item read()
          Interface allowing the consumer to read an Item.
 void signalProducerError(XPathException exception)
          Interface allowing the producer to indicate that a dynamic error has occurred.
 void write(Item value)
          Interface allowing the producer to write an item.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Conduit

public Conduit()
Method Detail

read

public Item read()
          throws XPathException
Interface allowing the consumer to read an Item. The method suspends until an item is available, or until the end of the sequence is notified by the producer, or until an exception is notified by the producer.

Returns:
the item supplied by the producer; or null to indicate that the end of the sequence has been reached.
Throws:
XPathException - if the producer signalled an exception

close

public void close()
Interface allowing the consumer to indicate that no more items are required.


isClosed

public boolean isClosed()
Ask whether the conduit has been closed

Returns:
true if the consumer has indicated that no more items are required

write

public void write(Item value)
Interface allowing the producer to write an item. The method will suspend if the queue of items waiting to be read exceeds a certain threshold.

Parameters:
value - The item to be written

finish

public void finish()
Interface allowing the producer to indicate that there are no more items to come. This method MUST be called at the end of the sequence, or the consumer will hang.


signalProducerError

public void signalProducerError(XPathException exception)
Interface allowing the producer to indicate that a dynamic error has occurred. This will be notified to the consumer by means of an exception from the next call on the read() method.

Parameters:
exception - the error to be signalled


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.