sleep.bridges.io
Class IOObject

java.lang.Object
  extended by sleep.bridges.io.IOObject
Direct Known Subclasses:
BufferObject, FileObject, ProcessObject, SocketObject

public class IOObject
extends Object

The IOObject is the parent class for all IO Source objects that are compatible with Sleep's I/O API.

When an IOObject is created, calling openRead() with the appropriate input stream will initialize this IOObject to work with IO functions that read data. Calling openWrite() has the same effect for print functions. It is the responsibility of the IOObject child class to invoke openRead and openWrite. This is usually done in the constructor.

The pipeline for reading data looks like this:

... <- DataInputStream <- BufferedInputStream <- Original Input Stream

The pipeline for writing data is:

... -> DataOutputStream -> Original Output Stream


Field Summary
protected  byte[] buffer
           
protected  InputStream in
           
protected  OutputStream out
           
protected  BufferedInputStream reader
           
protected  DataInputStream readerb
           
protected  InputStreamReader readeru
           
protected  Thread thread
           
protected  Scalar token
           
protected  DataOutputStream writerb
           
protected  OutputStreamWriter writeru
           
 
Constructor Summary
IOObject()
           
 
Method Summary
 void close()
          Closes all of the reader's / writer's opened by this IOObject.
 byte[] getBuffer(int size)
           
static IOObject getConsole(ScriptEnvironment environment)
          returns an IOObject that represents stdin/stdout to Sleep's I/O API.
 BufferedInputStream getInputBuffer()
          Returns the ascii data reader
 InputStream getInputStream()
          Returns the latest hooking point into the input stream
 OutputStream getOutputStream()
          Returns the latest hooking point into the output stream
 DataInputStream getReader()
          Returns the binary data reader
 Object getSource()
          return the actual source of this IO for scripters to query using HOES
 Thread getThread()
          returns the thread associated with this IOObject
 Scalar getToken()
          returns a scalar token associated with this IOObject.
 DataOutputStream getWriter()
          Returns the binary data writer
 boolean isEOF()
          Returns true if the reader is closed
 void openRead(InputStream _in)
          Initializes a binary reader (a DataInputStream) and a text reader (a BufferedReader) against this input stream.
 void openWrite(OutputStream _out)
          Initializes a binary writer (a DataOutputStream) and a text writer (a PrintWriter) against this input stream.
 void print(String text)
          Prints out a line of text with no newline character appended
 void printLine(String text)
          Prints out a line of text with a newline character appended
 String readCharacter()
          Reads in a character of text and returns as a string.
 String readLine()
          Reads in a line of text
 void sendEOF()
          Closes down the output streams effectively sending an end of file message to the reading end.
 void setEncoding(String name)
          set the charset to be used for all unicode aware reads/writes from/to this stream
 void setThread(Thread t)
          set the thread used for this IOObject (currently used to allow a script to wait() on the threads completion)
 void setToken(Scalar t)
          sets the scalar token associated with this IOObject.
 Scalar wait(ScriptEnvironment env, long timeout)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

readeru

protected InputStreamReader readeru

readerb

protected DataInputStream readerb

reader

protected BufferedInputStream reader

in

protected InputStream in

writeru

protected OutputStreamWriter writeru

writerb

protected DataOutputStream writerb

out

protected OutputStream out

thread

protected Thread thread

token

protected Scalar token

buffer

protected byte[] buffer
Constructor Detail

IOObject

public IOObject()
Method Detail

getBuffer

public byte[] getBuffer(int size)

getSource

public Object getSource()
return the actual source of this IO for scripters to query using HOES


setEncoding

public void setEncoding(String name)
                 throws UnsupportedEncodingException
set the charset to be used for all unicode aware reads/writes from/to this stream

Throws:
UnsupportedEncodingException

setThread

public void setThread(Thread t)
set the thread used for this IOObject (currently used to allow a script to wait() on the threads completion)


getThread

public Thread getThread()
returns the thread associated with this IOObject


wait

public Scalar wait(ScriptEnvironment env,
                   long timeout)

getToken

public Scalar getToken()
returns a scalar token associated with this IOObject. Will return the empty scalar if the token is null. The token is essentially the stored return value of an executing thread.


setToken

public void setToken(Scalar t)
sets the scalar token associated with this IOObject. Any ScriptInstance object calls setToken on it's parent IOObject. This method is called when the script is finished running and has a return value waiting. This value can be retrieved in Sleep with the &wait function.


getConsole

public static IOObject getConsole(ScriptEnvironment environment)
returns an IOObject that represents stdin/stdout to Sleep's I/O API. To set a script's console object install an IOObject into a script environment under the variable name %console%


getInputStream

public InputStream getInputStream()
Returns the latest hooking point into the input stream


getOutputStream

public OutputStream getOutputStream()
Returns the latest hooking point into the output stream


openRead

public void openRead(InputStream _in)
Initializes a binary reader (a DataInputStream) and a text reader (a BufferedReader) against this input stream. Calling this effectively makes this IOObject useable with Sleep's IO read* functions.


openWrite

public void openWrite(OutputStream _out)
Initializes a binary writer (a DataOutputStream) and a text writer (a PrintWriter) against this input stream. Calling this effectively makes this IOObject useable with Sleep's IO print* functions.


close

public void close()
Closes all of the reader's / writer's opened by this IOObject. If the IO Source object opens any streams, this method should be overriden to close those streams when requested. Calling super.close() is highly recommended as well.


readLine

public String readLine()
Reads in a line of text


readCharacter

public String readCharacter()
Reads in a character of text and returns as a string.


isEOF

public boolean isEOF()
Returns true if the reader is closed


sendEOF

public void sendEOF()
Closes down the output streams effectively sending an end of file message to the reading end.


getInputBuffer

public BufferedInputStream getInputBuffer()
Returns the ascii data reader


getReader

public DataInputStream getReader()
Returns the binary data reader


getWriter

public DataOutputStream getWriter()
Returns the binary data writer


printLine

public void printLine(String text)
Prints out a line of text with a newline character appended


print

public void print(String text)
Prints out a line of text with no newline character appended