com.caucho.burlap.io
类 BurlapOutput

java.lang.Object
  继承者 com.caucho.hessian.io.AbstractHessianOutput
      继承者 com.caucho.burlap.io.AbstractBurlapOutput
          继承者 com.caucho.burlap.io.BurlapOutput

public class BurlapOutput
extends AbstractBurlapOutput

Output stream for Burlap requests, compatible with microedition Java. It only uses classes and types available in JDK.

Since BurlapOutput does not depend on any classes other than in the JDK, it can be extracted independently into a smaller package.

BurlapOutput is unbuffered, so any client needs to provide its own buffering.

 OutputStream os = ...; // from http connection
 BurlapOutput out = new BurlapOutput(os);
 String value;

 out.startCall("hello");  // start hello call
 out.writeString("arg1"); // write a string argument
 out.completeCall();      // complete the call
 


构造方法摘要
BurlapOutput()
          Creates an uninitialized Burlap output stream.
BurlapOutput(java.io.OutputStream os)
          Creates a new Burlap output stream, initialized with an underlying output stream.
 
方法摘要
 boolean addRef(java.lang.Object object)
          If the object has already been written, just write its ref.
 void call(java.lang.String method, java.lang.Object[] args)
          Writes a complete method call.
 void completeCall()
          Completes.
 void completeReply()
          Completes reading the reply A successful completion will have a single value: </burlap:reply>
 int getRef(java.lang.Object obj)
           
 void init(java.io.OutputStream os)
          Initializes the output
 void printDate(java.util.Calendar calendar)
          Prints a date.
 void printString(char[] v, int offset, int length)
          Prints a string to the stream, encoded as UTF-8
 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
 boolean removeRef(java.lang.Object obj)
          Removes a reference.
 boolean replaceRef(java.lang.Object oldRef, java.lang.Object newRef)
          Replaces a reference from one object to another.
 void startCall()
          Starts the method call.
 void startCall(java.lang.String method)
          Starts the method call.
 void startReply()
          Starts the reply A successful completion will have a single value: r
 void writeBoolean(boolean value)
          Writes a boolean value to the stream.
 void writeByteBufferEnd(byte[] buffer, int offset, int length)
          Writes a byte buffer to the stream.
 void writeByteBufferPart(byte[] buffer, int offset, int length)
          Writes a byte buffer to the stream.
 void writeByteBufferStart()
          Writes a byte buffer 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 writeDouble(double value)
          Writes a double value to the stream.
 void writeFault(java.lang.String code, java.lang.String message, java.lang.Object detail)
          Writes a fault.
 void writeHeader(java.lang.String name)
          Writes a header name.
 void writeInt(int value)
          Writes an integer value to the stream.
 boolean 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 writeMethod(java.lang.String method)
          Writes the method for a call.
 void writeNull()
          Writes a null value to the stream.
 void writeObject(java.lang.Object object)
          Writes any 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(char[] buffer, int offset, int length)
          Writes a string value to the stream using UTF-8 encoding.
 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.
 
从类 com.caucho.burlap.io.AbstractBurlapOutput 继承的方法
startCall
 
从类 com.caucho.hessian.io.AbstractHessianOutput 继承的方法
close, flush, getSerializerFactory, resetReferences, setSerializerFactory, setUnshared, writeByteStream, writeClassFieldLength, writeObjectBegin, writeObjectEnd, writeReply
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

BurlapOutput

public BurlapOutput(java.io.OutputStream os)
Creates a new Burlap output stream, initialized with an underlying output stream.

参数:
os - the underlying output stream.

BurlapOutput

public BurlapOutput()
Creates an uninitialized Burlap output stream.

方法详细信息

init

public void init(java.io.OutputStream os)
Initializes the output

覆盖:
AbstractHessianOutput 中的 init

call

public void call(java.lang.String method,
                 java.lang.Object[] args)
          throws java.io.IOException
Writes a complete method call.

覆盖:
AbstractHessianOutput 中的 call
抛出:
java.io.IOException

startCall

public void startCall(java.lang.String method)
               throws java.io.IOException
Starts the method call. Clients would use startCall instead of call if they wanted finer control over writing the arguments, or needed to write headers.
 <burlap:call>
 <method>method-name</method>
 

参数:
method - the method name to call.
抛出:
java.io.IOException

startCall

public void startCall()
               throws java.io.IOException
Starts the method call. Clients would use startCall instead of call if they wanted finer control over writing the arguments, or needed to write headers.
 <method>method-name</method>
 

指定者:
AbstractHessianOutput 中的 startCall
参数:
method - the method name to call.
抛出:
java.io.IOException

writeMethod

public void writeMethod(java.lang.String method)
                 throws java.io.IOException
Writes the method for a call.
 <method>value</method>
 

指定者:
AbstractHessianOutput 中的 writeMethod
参数:
method - the method name to call.
抛出:
java.io.IOException

completeCall

public void completeCall()
                  throws java.io.IOException
Completes.
 </burlap:call>
 

指定者:
AbstractHessianOutput 中的 completeCall
抛出:
java.io.IOException

startReply

public void startReply()
                throws java.io.IOException
Starts the reply

A successful completion will have a single value:

 r
 

覆盖:
AbstractHessianOutput 中的 startReply
抛出:
java.io.IOException

completeReply

public void completeReply()
                   throws java.io.IOException
Completes reading the reply

A successful completion will have a single value:

 </burlap:reply>
 

覆盖:
AbstractHessianOutput 中的 completeReply
抛出:
java.io.IOException

writeHeader

public void writeHeader(java.lang.String name)
                 throws java.io.IOException
Writes a header name. The header value must immediately follow.
 <header>foo</header><int>value</int>
 

覆盖:
AbstractHessianOutput 中的 writeHeader
抛出:
java.io.IOException

writeFault

public void writeFault(java.lang.String code,
                       java.lang.String message,
                       java.lang.Object detail)
                throws java.io.IOException
Writes a fault. The fault will be written as a descriptive string followed by an object:
 <fault>
 <string>code
 <string>the fault code

 <string>message
 <string>the fault mesage

 <string>detail
 <map>t\x00\xnnjavax.ejb.FinderException
     ...
 </map>
 </fault>
 

覆盖:
AbstractHessianOutput 中的 writeFault
参数:
code - the fault code, a three digit
抛出:
java.io.IOException

writeObject

public void writeObject(java.lang.Object object)
                 throws java.io.IOException
Writes any object to the output stream.

指定者:
AbstractHessianOutput 中的 writeObject
抛出:
java.io.IOException

writeListBegin

public boolean writeListBegin(int length,
                              java.lang.String type)
                       throws java.io.IOException
Writes the list header to the stream. List writers will call 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>
 

指定者:
AbstractHessianOutput 中的 writeListBegin
抛出:
java.io.IOException

writeListEnd

public void writeListEnd()
                  throws java.io.IOException
Writes the tail of the list to the stream.

指定者:
AbstractHessianOutput 中的 writeListEnd
抛出:
java.io.IOException

writeMapBegin

public void writeMapBegin(java.lang.String type)
                   throws java.io.IOException
Writes the map header to the stream. Map writers will call writeMapBegin followed by the map contents and then call writeMapEnd.
 <map>
   <type>type</type>
   (<key> <value>)*
 </map>
 

指定者:
AbstractHessianOutput 中的 writeMapBegin
抛出:
java.io.IOException

writeMapEnd

public void writeMapEnd()
                 throws java.io.IOException
Writes the tail of the map to the stream.

指定者:
AbstractHessianOutput 中的 writeMapEnd
抛出:
java.io.IOException

writeRemote

public void writeRemote(java.lang.String type,
                        java.lang.String url)
                 throws java.io.IOException
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>
 

抛出:
java.io.IOException

writeBoolean

public void writeBoolean(boolean value)
                  throws java.io.IOException
Writes a boolean value to the stream. The boolean will be written with the following syntax:
 <boolean>0</boolean>
 <boolean>1</boolean>
 

指定者:
AbstractHessianOutput 中的 writeBoolean
参数:
value - the boolean value to write.
抛出:
java.io.IOException

writeInt

public void writeInt(int value)
              throws java.io.IOException
Writes an integer value to the stream. The integer will be written with the following syntax:
 <int>int value</int>
 

指定者:
AbstractHessianOutput 中的 writeInt
参数:
value - the integer value to write.
抛出:
java.io.IOException

writeLong

public void writeLong(long value)
               throws java.io.IOException
Writes a long value to the stream. The long will be written with the following syntax:
 <long>int value</long>
 

指定者:
AbstractHessianOutput 中的 writeLong
参数:
value - the long value to write.
抛出:
java.io.IOException

writeDouble

public void writeDouble(double value)
                 throws java.io.IOException
Writes a double value to the stream. The double will be written with the following syntax:
 <double>value</double>
 

指定者:
AbstractHessianOutput 中的 writeDouble
参数:
value - the double value to write.
抛出:
java.io.IOException

writeUTCDate

public void writeUTCDate(long time)
                  throws java.io.IOException
Writes a date to the stream.
 <date>iso8901</date>
 

指定者:
AbstractHessianOutput 中的 writeUTCDate
参数:
time - the date in milliseconds from the epoch in UTC
抛出:
java.io.IOException

writeNull

public void writeNull()
               throws java.io.IOException
Writes a null value to the stream. The null will be written with the following syntax
 <null></null>
 

指定者:
AbstractHessianOutput 中的 writeNull
参数:
value - the string value to write.
抛出:
java.io.IOException

writeString

public void writeString(java.lang.String value)
                 throws java.io.IOException
Writes a string value to the stream using UTF-8 encoding. The string will be written with the following syntax:
 <string>string-value</string>
 
If the value is null, it will be written as
 <null></null>
 

指定者:
AbstractHessianOutput 中的 writeString
参数:
value - the string value to write.
抛出:
java.io.IOException

writeString

public void writeString(char[] buffer,
                        int offset,
                        int length)
                 throws java.io.IOException
Writes a string value to the stream using UTF-8 encoding. The string will be written with the following syntax:
 S b16 b8 string-value
 
If the value is null, it will be written as
 N
 

指定者:
AbstractHessianOutput 中的 writeString
参数:
value - the string value to write.
抛出:
java.io.IOException

writeBytes

public void writeBytes(byte[] buffer)
                throws java.io.IOException
Writes a byte array to the stream. The array will be written with the following syntax:
 <base64>bytes</base64>
 
If the value is null, it will be written as
 <null></null>
 

指定者:
AbstractHessianOutput 中的 writeBytes
参数:
value - the string value to write.
抛出:
java.io.IOException

writeBytes

public void writeBytes(byte[] buffer,
                       int offset,
                       int length)
                throws java.io.IOException
Writes a byte array to the stream. The array will be written with the following syntax:
 <base64>bytes</base64>
 
If the value is null, it will be written as
 <null></null>
 

指定者:
AbstractHessianOutput 中的 writeBytes
参数:
value - the string value to write.
抛出:
java.io.IOException

writeByteBufferStart

public void writeByteBufferStart()
                          throws java.io.IOException
Writes a byte buffer to the stream.

指定者:
AbstractHessianOutput 中的 writeByteBufferStart
抛出:
java.io.IOException

writeByteBufferPart

public void writeByteBufferPart(byte[] buffer,
                                int offset,
                                int length)
                         throws java.io.IOException
Writes a byte buffer to the stream.
 b b16 b18 bytes
 

指定者:
AbstractHessianOutput 中的 writeByteBufferPart
抛出:
java.io.IOException

writeByteBufferEnd

public void writeByteBufferEnd(byte[] buffer,
                               int offset,
                               int length)
                        throws java.io.IOException
Writes a byte buffer to the stream.
 b b16 b18 bytes
 

指定者:
AbstractHessianOutput 中的 writeByteBufferEnd
抛出:
java.io.IOException

writeRef

public void writeRef(int value)
              throws java.io.IOException
Writes a reference.
 <ref>int</ref>
 

参数:
value - the integer value to write.
抛出:
java.io.IOException

addRef

public boolean addRef(java.lang.Object object)
               throws java.io.IOException
If the object has already been written, just write its ref.

指定者:
AbstractHessianOutput 中的 addRef
参数:
object - the object to add as a reference.
返回:
true if we're writing a ref.
抛出:
java.io.IOException

getRef

public int getRef(java.lang.Object obj)
指定者:
AbstractHessianOutput 中的 getRef
返回:

removeRef

public boolean removeRef(java.lang.Object obj)
                  throws java.io.IOException
Removes a reference.

覆盖:
AbstractHessianOutput 中的 removeRef
抛出:
java.io.IOException

replaceRef

public boolean replaceRef(java.lang.Object oldRef,
                          java.lang.Object newRef)
                   throws java.io.IOException
Replaces a reference from one object to another.

指定者:
AbstractHessianOutput 中的 replaceRef
抛出:
java.io.IOException

printString

public void printString(java.lang.String v)
                 throws java.io.IOException
Prints a string to the stream, encoded as UTF-8

参数:
v - the string to print.
抛出:
java.io.IOException

printString

public void printString(java.lang.String v,
                        int offset,
                        int length)
                 throws java.io.IOException
Prints a string to the stream, encoded as UTF-8

参数:
v - the string to print.
抛出:
java.io.IOException

printString

public void printString(char[] v,
                        int offset,
                        int length)
                 throws java.io.IOException
Prints a string to the stream, encoded as UTF-8

参数:
v - the string to print.
抛出:
java.io.IOException

printDate

public void printDate(java.util.Calendar calendar)
               throws java.io.IOException
Prints a date.

参数:
date - the date to print.
抛出:
java.io.IOException