Package com.tailf.proto
Class ConfInputStream
Object
InputStream
ByteArrayInputStream
com.tailf.proto.ConfInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
Provides a stream for decoding E terms from external format.
Note that this class is not synchronized, if you need synchronization you must provide it yourself.
-
Constructor Summary
ConstructorDescriptionConfInputStream
(byte[] buf) Create a stream from a buffer containing encoded E terms.ConfInputStream
(byte[] buf, int offset, int length) Create a stream from a buffer containing encoded E terms at the given offset and length. -
Method Summary
Modifier and TypeMethodDescriptionint
getPos()
Get the current position in the stream.int
peek()
Look ahead one position in the stream without consuming the byte found there.read_any()
Read an arbitrary E term from the stream.Read an E atom from the stream.read_big()
byte[]
Read an E binary from the stream.boolean
Read an E atom from the stream and interpret the value as a boolean.byte
Read one byte from the stream.char
Read a character from the stream.double
Read an E float from the stream.float
Read an E float from the stream.int
read_int()
Read an integer from the stream.int
Read a list header from the stream.long
Read a long from the stream.long
read_long
(boolean unsigned) int
read_nil()
Read an empty list from the stream.read_pid()
Read an E pid from the stream.read_ref()
Read an E reference from the stream.short
Read a short from the stream.Read a string from the stream.int
Read a tuple header from the stream.int
Read an unsigned integer from the stream.long
Read an unsigned long from the stream.short
Read an unsigned short from the stream.int
read1()
Read a one byte integer from the stream.int
read2BE()
Read a two byte big endian integer from the stream.int
read2LE()
Read a two byte little endian integer from the stream.int
read4BE()
Read a four byte big endian integer from the stream.int
read4LE()
Read a four byte little endian integer from the stream.long
readBE
(int n) Read a big endian integer from the stream.long
readLE
(int n) Read a little endian integer from the stream.int
readN
(byte[] buf) Read an array of bytes from the stream.int
setPos
(int pos) Set the current position in the stream.Methods inherited from class java.io.ByteArrayInputStream
available, close, mark, markSupported, read, read, readAllBytes, readNBytes, reset, skip, transferTo
Methods inherited from class java.io.InputStream
nullInputStream, read, readNBytes, skipNBytes
-
Constructor Details
-
ConfInputStream
public ConfInputStream(byte[] buf) Create a stream from a buffer containing encoded E terms. -
ConfInputStream
public ConfInputStream(byte[] buf, int offset, int length) Create a stream from a buffer containing encoded E terms at the given offset and length.
-
-
Method Details
-
getPos
public int getPos()Get the current position in the stream.- Returns:
- the current position in the stream.
-
setPos
public int setPos(int pos) Set the current position in the stream.- Parameters:
pos
- the position to move to in the stream. If pos indicates a position beyond the end of the stream, the position is move to the end of the stream instead. If pos is negative, the position is moved to the beginning of the stream instead.- Returns:
- the previous position in the stream.
-
readN
Read an array of bytes from the stream. The method reads at most buf.length bytes from the input stream.- Returns:
- the number of bytes read.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
peek
Look ahead one position in the stream without consuming the byte found there.- Returns:
- the next byte in the stream, as an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
read1
Read a one byte integer from the stream.- Returns:
- the byte read, as an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
read2BE
Read a two byte big endian integer from the stream.- Returns:
- the bytes read, converted from big endian to an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
read4BE
Read a four byte big endian integer from the stream.- Returns:
- the bytes read, converted from big endian to an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
read2LE
Read a two byte little endian integer from the stream.- Returns:
- the bytes read, converted from little endian to an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
read4LE
Read a four byte little endian integer from the stream.- Returns:
- the bytes read, converted from little endian to an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
readLE
Read a little endian integer from the stream.- Parameters:
n
- the number of bytes to read- Returns:
- the bytes read, converted from little endian to an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
readBE
Read a big endian integer from the stream.- Parameters:
n
- the number of bytes to read- Returns:
- the bytes read, converted from big endian to an integer.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
read_boolean
Read an E atom from the stream and interpret the value as a boolean.- Returns:
- true if the atom at the current position in the stream contains the value 'true' (ignoring case), false otherwise.
- Throws:
ConfEDecodeException
- if the next term in the stream is not an atom.
-
read_atom
Read an E atom from the stream.- Returns:
- a String containing the value of the atom.
- Throws:
ConfEDecodeException
- if the next term in the stream is not an atom.
-
read_binary
Read an E binary from the stream.- Returns:
- a byte array containing the value of the binary.
- Throws:
ConfEDecodeException
- if the next term in the stream is not a binary.
-
read_float
Read an E float from the stream.- Returns:
- the float value.
- Throws:
ConfEDecodeException
- if the next term in the stream is not a float.
-
read_double
Read an E float from the stream.- Returns:
- the float value, as a double.
- Throws:
ConfEDecodeException
- if the next term in the stream is not a float.
-
read_byte
Read one byte from the stream.- Returns:
- the byte read.
- Throws:
ConfEDecodeException
- if the next byte cannot be read.
-
read_char
Read a character from the stream.- Returns:
- the character value.
- Throws:
ConfEDecodeException
- if the next term in the stream is not an integer that can be represented as a char.
-
read_uint
Read an unsigned integer from the stream.- Returns:
- the integer value.
- Throws:
ConfEDecodeException
- if the next term in the stream can not be represented as a positive integer.
-
read_int
Read an integer from the stream.- Returns:
- the integer value.
- Throws:
ConfEDecodeException
- if the next term in the stream can not be represented as an integer.
-
read_ushort
Read an unsigned short from the stream.- Returns:
- the short value.
- Throws:
ConfEDecodeException
- if the next term in the stream can not be represented as a positive short.
-
read_short
Read a short from the stream.- Returns:
- the short value.
- Throws:
ConfEDecodeException
- if the next term in the stream can not be represented as a short.
-
read_ulong
Read an unsigned long from the stream.- Returns:
- the long value.
- Throws:
ConfEDecodeException
- if the next term in the stream can not be represented as a positive long.
-
read_long
Read a long from the stream.- Returns:
- the long value.
- Throws:
ConfEDecodeException
- if the next term in the stream can not be represented as a long.
-
read_long
- Throws:
ConfEDecodeException
-
read_long_big
- Throws:
ConfEDecodeException
-
read_big
- Throws:
ConfEDecodeException
-
read_list_head
Read a list header from the stream.- Returns:
- the arity of the list.
- Throws:
ConfEDecodeException
- if the next term in the stream is not a list.
-
read_tuple_head
Read a tuple header from the stream.- Returns:
- the arity of the tuple.
- Throws:
ConfEDecodeException
- if the next term in the stream is not a tuple.
-
read_nil
Read an empty list from the stream.- Returns:
- zero (the arity of the list).
- Throws:
ConfEDecodeException
- if the next term in the stream is not an empty list.
-
read_ref
Read an E reference from the stream.- Returns:
- the value of the reference
- Throws:
ConfEDecodeException
- if the next term in the stream is not an E reference.
-
read_pid
Read an E pid from the stream.- Returns:
- the value of the pid
- Throws:
ConfEDecodeException
- if the next term in the stream is not an E pid.
-
read_string
Read a string from the stream.- Returns:
- the value of the string.
- Throws:
ConfEDecodeException
- if the next term in the stream is not a string.
-
read_any
Read an arbitrary E term from the stream.- Returns:
- the E term.
- Throws:
ConfEDecodeException
- if the stream does not contain a known E type at the next position.
-