Berkeley DB Java Edition
version 1.5.1

com.sleepycat.bind.serial
Class SerialOutput

java.lang.Object
  |
  +--java.io.OutputStream
        |
        +--java.io.ObjectOutputStream
              |
              +--com.sleepycat.bind.serial.SerialOutput
All Implemented Interfaces:
DataOutput, ObjectOutput, ObjectStreamConstants

public class SerialOutput
extends ObjectOutputStream

A specialized ObjectOutputStream that stores class description information in a ClassCatalog. It is used by SerialBinding.

This class is used instead of an ObjectOutputStream, which it extends, to write a compact object stream. For writing objects to a database normally one of the serial binding classes is used. SerialOutput is used when an ObjectOutputStream is needed along with compact storage. A ClassCatalog must be supplied, however, to stored shared class descriptions.

The ClassCatalog is used to store class definitions rather than embedding these into the stream. Instead, a class format identifier is embedded into the stream. This identifier is then used by SerialInput to load the class format to deserialize the object.

Author:
Mark Hayes

Field Summary
 
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
 
Constructor Summary
SerialOutput(OutputStream out, ClassCatalog classCatalog)
          Creates a serial output stream.
 
Method Summary
static byte[] getStreamHeader()
          Returns the fixed stream header used for all serialized streams in PROTOCOL_VERSION_2 format.
 
Methods inherited from class java.io.ObjectOutputStream
close, defaultWriteObject, flush, putFields, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeShort, writeUnshared, writeUTF
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SerialOutput

public SerialOutput(OutputStream out,
                    ClassCatalog classCatalog)
             throws IOException
Creates a serial output stream.

Parameters:
out - is the output stream to which the compact serialized objects will be written.
classCatalog - is the catalog to which the class descriptions for the serialized objects will be written.
Method Detail

getStreamHeader

public static byte[] getStreamHeader()
Returns the fixed stream header used for all serialized streams in PROTOCOL_VERSION_2 format. To save space this header can be removed and serialized streams before storage and inserted before deserializing. SerialOutput always uses PROTOCOL_VERSION_2 serialization format to guarantee that this header is fixed. SerialBinding removes this header from serialized streams automatically.

Returns:
the fixed stream header.

Berkeley DB Java Edition
version 1.5.1

Copyright (c) 1996-2004 Sleepycat Software, Inc. - All rights reserved.