com.dyuproject.protostuff
Class ProtostuffIOUtil

java.lang.Object
  extended by com.dyuproject.protostuff.ProtostuffIOUtil

public final class ProtostuffIOUtil
extends java.lang.Object

Protostuff ser/deser util for messages/objects.

Author:
David Yu
Date created:
Sep 20, 2010

Method Summary
static
<T> int
mergeDelimitedFrom(java.io.DataInput in, T message, Schema<T> schema)
          Used by the code generated messages that implement Externalizable.
static
<T> int
mergeDelimitedFrom(java.io.InputStream in, T message, Schema<T> schema)
          Merges the message (delimited) from the InputStream using the given schema.
static
<T> int
mergeDelimitedFrom(java.io.InputStream in, T message, Schema<T> schema, LinkedBuffer buffer)
          Merges the message (delimited) from the InputStream using the given schema.
static
<T> void
mergeFrom(byte[] data, int offset, int length, T message, Schema<T> schema)
          Merges the message with the byte array using the given schema.
static
<T> void
mergeFrom(byte[] data, T message, Schema<T> schema)
          Merges the message with the byte array using the given schema.
static
<T> void
mergeFrom(java.io.InputStream in, T message, Schema<T> schema)
          Merges the message from the InputStream using the given schema.
static
<T> void
mergeFrom(java.io.InputStream in, T message, Schema<T> schema, LinkedBuffer buffer)
          Merges the message from the InputStream using the given schema.
static Pipe newPipe(byte[] data)
          Creates a protostuff pipe from a byte array.
static Pipe newPipe(byte[] data, int offset, int len)
          Creates a protostuff pipe from a byte array.
static Pipe newPipe(java.io.InputStream in)
          Creates a protostuff pipe from an InputStream.
static
<T> boolean
optMergeDelimitedFrom(java.io.InputStream in, T message, Schema<T> schema, boolean drainRemainingBytesIfTooLarge, LinkedBuffer buffer)
          Optimal/Optional mergeDelimitedFrom - If the message does not fit the buffer, no merge is done and this method will return false.
static
<T> boolean
optMergeDelimitedFrom(java.io.InputStream in, T message, Schema<T> schema, LinkedBuffer buffer)
          Optimal/Optional mergeDelimitedFrom - If the message does not fit the buffer, no merge is done and this method will return false.
static
<T> int
optWriteDelimitedTo(java.io.OutputStream out, T message, Schema<T> schema, LinkedBuffer buffer)
          Optimal writeDelimitedTo - The varint32 prefix is written to the buffer instead of directly writing to outputstream.
static
<T> java.util.List<T>
parseListFrom(java.io.InputStream in, Schema<T> schema)
          Parses the messages (delimited) from the InputStream using the given schema.
static
<T> byte[]
toByteArray(T message, Schema<T> schema, LinkedBuffer buffer)
          Serializes the message into a byte array using the given schema.
static
<T> int
writeDelimitedTo(java.io.DataOutput out, T message, Schema<T> schema)
          Used by the code generated messages that implement Externalizable.
static
<T> int
writeDelimitedTo(java.io.OutputStream out, T message, Schema<T> schema, LinkedBuffer buffer)
          Serializes the message, prefixed with its length, into an OutputStream.
static
<T> int
writeListTo(java.io.OutputStream out, java.util.List<T> messages, Schema<T> schema, LinkedBuffer buffer)
          Serializes the messages (delimited) into an OutputStream using the given schema.
static
<T> int
writeTo(LinkedBuffer buffer, T message, Schema<T> schema)
          Writes the message into the LinkedBuffer using the given schema.
static
<T> int
writeTo(java.io.OutputStream out, T message, Schema<T> schema, LinkedBuffer buffer)
          Serializes the message into an OutputStream using the given schema.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

newPipe

public static Pipe newPipe(byte[] data)
Creates a protostuff pipe from a byte array.


newPipe

public static Pipe newPipe(byte[] data,
                           int offset,
                           int len)
Creates a protostuff pipe from a byte array.


newPipe

public static Pipe newPipe(java.io.InputStream in)
Creates a protostuff pipe from an InputStream.


mergeFrom

public static <T> void mergeFrom(byte[] data,
                                 T message,
                                 Schema<T> schema)
Merges the message with the byte array using the given schema.


mergeFrom

public static <T> void mergeFrom(byte[] data,
                                 int offset,
                                 int length,
                                 T message,
                                 Schema<T> schema)
Merges the message with the byte array using the given schema.


mergeFrom

public static <T> void mergeFrom(java.io.InputStream in,
                                 T message,
                                 Schema<T> schema)
                      throws java.io.IOException
Merges the message from the InputStream using the given schema.

Throws:
java.io.IOException

mergeFrom

public static <T> void mergeFrom(java.io.InputStream in,
                                 T message,
                                 Schema<T> schema,
                                 LinkedBuffer buffer)
                      throws java.io.IOException
Merges the message from the InputStream using the given schema. The buffer's internal byte array will be used for reading the message.

Throws:
java.io.IOException

mergeDelimitedFrom

public static <T> int mergeDelimitedFrom(java.io.InputStream in,
                                         T message,
                                         Schema<T> schema)
                              throws java.io.IOException
Merges the message (delimited) from the InputStream using the given schema.

Returns:
the size of the message
Throws:
java.io.IOException

mergeDelimitedFrom

public static <T> int mergeDelimitedFrom(java.io.InputStream in,
                                         T message,
                                         Schema<T> schema,
                                         LinkedBuffer buffer)
                              throws java.io.IOException
Merges the message (delimited) from the InputStream using the given schema. The delimited message size must not be larger than the buffer's size/capacity. ProtobufException "size limit exceeded" is thrown otherwise.

Returns:
the size of the message
Throws:
java.io.IOException

mergeDelimitedFrom

public static <T> int mergeDelimitedFrom(java.io.DataInput in,
                                         T message,
                                         Schema<T> schema)
                              throws java.io.IOException
Used by the code generated messages that implement Externalizable. Merges from the DataInput.

Returns:
the size of the message
Throws:
java.io.IOException

toByteArray

public static <T> byte[] toByteArray(T message,
                                     Schema<T> schema,
                                     LinkedBuffer buffer)
Serializes the message into a byte array using the given schema.

Returns:
the byte array containing the data.

writeTo

public static <T> int writeTo(LinkedBuffer buffer,
                              T message,
                              Schema<T> schema)
Writes the message into the LinkedBuffer using the given schema.

Returns:
the size of the message

writeTo

public static <T> int writeTo(java.io.OutputStream out,
                              T message,
                              Schema<T> schema,
                              LinkedBuffer buffer)
                   throws java.io.IOException
Serializes the message into an OutputStream using the given schema.

Returns:
the size of the message
Throws:
java.io.IOException

writeDelimitedTo

public static <T> int writeDelimitedTo(java.io.OutputStream out,
                                       T message,
                                       Schema<T> schema,
                                       LinkedBuffer buffer)
                            throws java.io.IOException
Serializes the message, prefixed with its length, into an OutputStream.

Returns:
the size of the message
Throws:
java.io.IOException

writeDelimitedTo

public static <T> int writeDelimitedTo(java.io.DataOutput out,
                                       T message,
                                       Schema<T> schema)
                            throws java.io.IOException
Used by the code generated messages that implement Externalizable. Writes to the DataOutput.

Returns:
the size of the message.
Throws:
java.io.IOException

writeListTo

public static <T> int writeListTo(java.io.OutputStream out,
                                  java.util.List<T> messages,
                                  Schema<T> schema,
                                  LinkedBuffer buffer)
                       throws java.io.IOException
Serializes the messages (delimited) into an OutputStream using the given schema.

Returns:
the bytes written
Throws:
java.io.IOException

parseListFrom

public static <T> java.util.List<T> parseListFrom(java.io.InputStream in,
                                                  Schema<T> schema)
                                       throws java.io.IOException
Parses the messages (delimited) from the InputStream using the given schema.

Returns:
the list containing the messages.
Throws:
java.io.IOException

optMergeDelimitedFrom

public static <T> boolean optMergeDelimitedFrom(java.io.InputStream in,
                                                T message,
                                                Schema<T> schema,
                                                LinkedBuffer buffer)
                                     throws java.io.IOException
Optimal/Optional mergeDelimitedFrom - If the message does not fit the buffer, no merge is done and this method will return false. This is strictly for reading a single message from the stream because the buffer is aggressively filled when reading the delimited size (which could result into reading more bytes than it has to). The remaining bytes will be drained (consumed and discared) when the message is too large.

Throws:
java.io.IOException

optMergeDelimitedFrom

public static <T> boolean optMergeDelimitedFrom(java.io.InputStream in,
                                                T message,
                                                Schema<T> schema,
                                                boolean drainRemainingBytesIfTooLarge,
                                                LinkedBuffer buffer)
                                     throws java.io.IOException
Optimal/Optional mergeDelimitedFrom - If the message does not fit the buffer, no merge is done and this method will return false. This is strictly for reading a single message from the stream because the buffer is aggressively filled when reading the delimited size (which could result into reading more bytes than it has to).

Throws:
java.io.IOException

optWriteDelimitedTo

public static <T> int optWriteDelimitedTo(java.io.OutputStream out,
                                          T message,
                                          Schema<T> schema,
                                          LinkedBuffer buffer)
                               throws java.io.IOException
Optimal writeDelimitedTo - The varint32 prefix is written to the buffer instead of directly writing to outputstream.

Returns:
the size of the message
Throws:
java.io.IOException


Copyright © 2009-2014. All Rights Reserved.