Berkeley DB version 4.5.20

## com.sleepycat.bind.serial
Class SerialOutput

    java.lang.Object
      java.io.OutputStream
          java.io.ObjectOutputStream
              com.sleepycat.bind.serial.SerialOutput

All Implemented Interfaces:
  Closeable, DataOutput, Flushable, 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.

Nested Class Summary

Nested classes/interfaces inherited from class java.io.ObjectOutputStream
`ObjectOutputStream.PutField`

Field Summary

Fields inherited from interface java.io.ObjectStreamConstants

`baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, 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_ENUM, 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.
`protected void` `writeClassDescriptor(ObjectStreamClass classdesc)`

Methods inherited from class java.io.ObjectOutputStream
`annotateClass, annotateProxyClass, close, defaultWriteObject, drain, enableReplaceObject, flush, putFields, replaceObject, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeObjectOverride, writeShort, writeStreamHeader, writeUnshared, writeUTF`

Methods inherited from class java.lang.Object
`clone, equals, finalize, 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.
  Throws:
    `IOException`

Method Detail

### writeClassDescriptor

    protected void writeClassDescriptor(ObjectStreamClass classdesc)
                                 throws IOException

  Overrides:
    `writeClassDescriptor` in class `ObjectOutputStream`
  Throws:
    `IOException`

### 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 version 4.5.20

Copyright(c) 1996-2006 Oracle Corporation - All rights reserved.