Package com.caucho.burlap.client
Class MicroBurlapOutput
java.lang.Object
com.caucho.burlap.client.MicroBurlapOutput
Output stream for Burlap requests, compatible with microedition
Java. It only uses classes and types available to J2ME. In
particular, it does not have any support for the <double> type.
MicroBurlapOutput does not depend on any classes other than in J2ME, so it can be extracted independently into a smaller package.
MicroBurlapOutput is unbuffered, so any client needs to provide its own buffering.
OutputStream os = ...; // from http connection MicroBurlapOutput out = new MicroBurlapOutput(os); String value; out.startCall("hello"); // start hello call out.writeString("arg1"); // write a string argument out.completeCall(); // complete the call
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an uninitialized Burlap output stream.Creates a new Burlap output stream, initialized with an underlying output stream. -
Method Summary
Modifier and TypeMethodDescriptionstatic char
base64encode
(int d) Converts the digit to its base64 encoding.void
Writes a complete method call.void
Writes the method call:void
init
(OutputStream os) void
Prints a string as ascii to the stream.void
printBytes
(byte[] data, int offset, int length) Prints a byte array to the stream, properly encoded in base64.void
Prints a date.void
printInt
(int v) Prints an integer to the stream.void
printLong
(long v) Prints a long to the stream.void
Prints a string to the stream, properly encoded.void
Writes the method call:void
writeBoolean
(boolean value) Writes a boolean value to the stream.void
writeBytes
(byte[] buffer, int offset, int length) Writes a byte array to the stream using base64 encoding.void
writeCustomObject
(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, String type) Writes the list header to the stream.void
Writes the tail of the list to the stream.void
writeLocalDate
(long time) Writes a date to the stream using ISO8609.void
writeLong
(long value) Writes a long value to the stream.void
writeMapBegin
(String type) Writes the map header to the stream.void
Writes the tail of the map to the stream.void
Writes a null value to the stream.void
writeObject
(Object object) Writes a generic object.void
writeRef
(int value) Writes a reference.void
writeRemote
(String type, String url) Writes a remote object reference to the stream.void
writeString
(String value) Writes a string value to the stream using UTF-8 encoding.void
writeUTCDate
(long time) Writes a date to the stream using ISO8609.
-
Constructor Details
-
MicroBurlapOutput
Creates a new Burlap output stream, initialized with an underlying output stream.- Parameters:
os
- the underlying output stream.
-
MicroBurlapOutput
public MicroBurlapOutput()Creates an uninitialized Burlap output stream.
-
-
Method Details
-
init
-
call
Writes a complete method call.- Throws:
IOException
-
startCall
Writes the method call:<burlap:request> <method>add</method>
- Parameters:
method
- the method name to call.- Throws:
IOException
-
completeCall
Writes the method call:</burlap:request>
- Throws:
IOException
-
writeBoolean
Writes a boolean value to the stream. The boolean will be written with the following syntax:<boolean>1</boolean>
- Parameters:
value
- the boolean value to write.- Throws:
IOException
-
writeInt
Writes an integer value to the stream. The integer will be written with the following syntax:<int>123</int>
- Parameters:
value
- the integer value to write.- Throws:
IOException
-
writeLong
Writes a long value to the stream. The long will be written with the following syntax:<long>123</long>
- Parameters:
value
- the long value to write.- Throws:
IOException
-
writeNull
Writes a null value to the stream. The null will be written with the following syntax<null></null>
- Parameters:
value
- the string value to write.- Throws:
IOException
-
writeString
Writes a string value to the stream using UTF-8 encoding. The string will be written with the following syntax:
If the value is null, it will be written as<string>12.3e10</string>
<null></null>
- Parameters:
value
- the string value to write.- Throws:
IOException
-
writeBytes
Writes a byte array to the stream using base64 encoding. The array will be written with the following syntax:
If the value is null, it will be written as<base64>dJmO==</base64>
<null></null>
- Parameters:
value
- the string value to write.- Throws:
IOException
-
writeUTCDate
Writes a date to the stream using ISO8609.<date>19980508T095131Z</date>
- Parameters:
value
- the date in milliseconds from the epoch in UTC- Throws:
IOException
-
writeLocalDate
Writes a date to the stream using ISO8609.<date>19980508T095131Z</date>
- Parameters:
value
- the date in milliseconds from the epoch in local timezone- Throws:
IOException
-
writeRef
Writes a reference.<ref>123</ref>
- Parameters:
value
- the integer value to write.- Throws:
IOException
-
writeObject
Writes a generic object. writeObject understands the following types:- null
- java.lang.String
- java.lang.Boolean
- java.lang.Integer
- java.lang.Long
- java.util.Date
- byte[]
- java.util.Vector
- java.util.Hashtable
writeCustomObject
.- Throws:
IOException
-
writeCustomObject
Applications which override this can do custom serialization.- Parameters:
object
- the object to write.- Throws:
IOException
-
writeListBegin
Writes the list header to the stream. List writers will callwriteListBegin
followed by the list contents and then callwriteListEnd
.<list> <type>java.util.ArrayList</type> <length>3</length> <int>1</int> <int>2</int> <int>3</int> </list>
- Throws:
IOException
-
writeListEnd
Writes the tail of the list to the stream.- Throws:
IOException
-
writeMapBegin
Writes the map header to the stream. Map writers will callwriteMapBegin
followed by the map contents and then callwriteMapEnd
.<map> <type>java.util.Hashtable</type> <string>a</string;<int>1</int> <string>b</string;<int>2</int> <string>c</string;<int>3</int> </map>
- Throws:
IOException
-
writeMapEnd
Writes the tail of the map to the stream.- Throws:
IOException
-
writeRemote
Writes a remote object reference to the stream. The type is the type of the remote interface.<remote> <type>test.account.Account</type> <string>http://caucho.com/foo;ejbid=bar</string> </remote>
- Throws:
IOException
-
printInt
Prints an integer to the stream.- Parameters:
v
- the integer to print.- Throws:
IOException
-
printLong
Prints a long to the stream.- Parameters:
v
- the long to print.- Throws:
IOException
-
printString
Prints a string to the stream, properly encoded.- Parameters:
v
- the string to print.- Throws:
IOException
-
printBytes
Prints a byte array to the stream, properly encoded in base64.- Parameters:
data
- the bytes to print.- Throws:
IOException
-
base64encode
public static char base64encode(int d) Converts the digit to its base64 encoding. -
printDate
Prints a date.- Parameters:
date
- the date to print.- Throws:
IOException
-
print
Prints a string as ascii to the stream. Used for tags, etc. that are known to the ascii.- Parameters:
s
- the ascii string to print.- Throws:
IOException
-