public class MicroHessianOutput
extends java.lang.Object
MicroHessianOutput does not depend on any classes other than in J2ME, so it can be extracted independently into a smaller package.
MicroHessianOutput is unbuffered, so any client needs to provide its own buffering.
OutputStream os = ...; // from http connection
MicroHessianOutput out = new MicroHessianOutput(os);
String value;
out.startCall("hello"); // start hello call
out.writeString("arg1"); // write a string argument
out.completeCall(); // complete the call
| Modifier and Type | Field and Description |
|---|---|
protected java.io.OutputStream |
os |
| Constructor and Description |
|---|
MicroHessianOutput()
Creates an uninitialized Hessian output stream.
|
MicroHessianOutput(java.io.OutputStream os)
Creates a new Hessian output stream, initialized with an
underlying output stream.
|
| Modifier and Type | Method and Description |
|---|---|
void |
completeCall()
Writes the method call:
|
void |
init(java.io.OutputStream os) |
void |
printLenString(java.lang.String v)
Prints a string to the stream, encoded as UTF-8 with preceeding length
|
void |
printString(java.lang.String v)
Prints a string to the stream, encoded as UTF-8
|
void |
printString(java.lang.String v,
int offset,
int length)
Prints a string to the stream, encoded as UTF-8
|
void |
startCall(java.lang.String method)
Writes the method call:
|
void |
writeBoolean(boolean value)
Writes a boolean value to the stream.
|
void |
writeBytes(byte[] buffer)
Writes a byte array to the stream.
|
void |
writeBytes(byte[] buffer,
int offset,
int length)
Writes a byte array to the stream.
|
void |
writeCustomObject(java.lang.Object object)
Applications which override this can do custom serialization.
|
void |
writeInt(int value)
Writes an integer value to the stream.
|
void |
writeListBegin(int length,
java.lang.String type)
Writes the list header to the stream.
|
void |
writeListEnd()
Writes the tail of the list to the stream.
|
void |
writeLong(long value)
Writes a long value to the stream.
|
void |
writeMapBegin(java.lang.String type)
Writes the map header to the stream.
|
void |
writeMapEnd()
Writes the tail of the map to the stream.
|
void |
writeNull()
Writes a null value to the stream.
|
void |
writeObject(java.lang.Object object)
Writes a generic object to the output stream.
|
void |
writeRef(int value)
Writes a reference.
|
void |
writeRemote(java.lang.String type,
java.lang.String url)
Writes a remote object reference to the stream.
|
void |
writeString(java.lang.String value)
Writes a string value to the stream using UTF-8 encoding.
|
void |
writeUTCDate(long time)
Writes a date to the stream.
|
public MicroHessianOutput(java.io.OutputStream os)
os - the underlying output stream.public MicroHessianOutput()
public void init(java.io.OutputStream os)
public void startCall(java.lang.String method)
throws java.io.IOException
c major minor
m b16 b8 method-namek
method - the method name to call.java.io.IOExceptionpublic void completeCall()
throws java.io.IOException
z
java.io.IOExceptionpublic void writeBoolean(boolean value)
throws java.io.IOException
T
F
value - the boolean value to write.java.io.IOExceptionpublic void writeInt(int value)
throws java.io.IOException
I b32 b24 b16 b8
value - the integer value to write.java.io.IOExceptionpublic void writeLong(long value)
throws java.io.IOException
L b64 b56 b48 b40 b32 b24 b16 b8
value - the long value to write.java.io.IOExceptionpublic void writeUTCDate(long time)
throws java.io.IOException
T b64 b56 b48 b40 b32 b24 b16 b8
time - the date in milliseconds from the epoch in UTCjava.io.IOExceptionpublic void writeNull()
throws java.io.IOException
N
value - the string value to write.java.io.IOExceptionpublic void writeString(java.lang.String value)
throws java.io.IOException
S b16 b8 string-value
If the value is null, it will be written as
N
value - the string value to write.java.io.IOExceptionpublic void writeBytes(byte[] buffer)
throws java.io.IOException
B b16 b18 bytes
If the value is null, it will be written as
N
value - the string value to write.java.io.IOExceptionpublic void writeBytes(byte[] buffer,
int offset,
int length)
throws java.io.IOException
B b16 b18 bytes
If the value is null, it will be written as
N
value - the string value to write.java.io.IOExceptionpublic void writeRef(int value)
throws java.io.IOException
R b32 b24 b16 b8
value - the integer value to write.java.io.IOExceptionpublic void writeObject(java.lang.Object object)
throws java.io.IOException
java.io.IOExceptionpublic void writeCustomObject(java.lang.Object object)
throws java.io.IOException
object - the object to write.java.io.IOExceptionpublic void writeListBegin(int length,
java.lang.String type)
throws java.io.IOException
writeListBegin followed by the list contents and then
call writeListEnd.
<list>
<type>java.util.ArrayList</type>
<length>3</length>
<int>1</int>
<int>2</int>
<int>3</int>
</list>
java.io.IOExceptionpublic void writeListEnd()
throws java.io.IOException
java.io.IOExceptionpublic void writeMapBegin(java.lang.String type)
throws java.io.IOException
writeMapBegin followed by the map contents and then
call writeMapEnd.
Mt b16 b8 type ( )z
java.io.IOExceptionpublic void writeMapEnd()
throws java.io.IOException
java.io.IOExceptionpublic void writeRemote(java.lang.String type,
java.lang.String url)
throws java.io.IOException
'r' 't' b16 b8 type url
java.io.IOExceptionpublic void printLenString(java.lang.String v)
throws java.io.IOException
v - the string to print.java.io.IOExceptionpublic void printString(java.lang.String v)
throws java.io.IOException
v - the string to print.java.io.IOExceptionpublic void printString(java.lang.String v,
int offset,
int length)
throws java.io.IOException
v - the string to print.java.io.IOException