Berkeley DB version 4.3.29

## 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.

Nested Class Summary

Nested classes 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_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 version 4.3.29

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