Package 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,AutoCloseable
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.
- See Also:
-
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, SERIAL_FILTER_PERMISSION, 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
ConstructorsConstructorDescriptionSerialOutput(OutputStream out, ClassCatalog classCatalog) Creates a serial output stream. -
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]Returns the fixed stream header used for all serialized streams in PROTOCOL_VERSION_2 format.protected voidwriteClassDescriptor(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, writeUTFMethods inherited from class java.io.OutputStream
nullOutputStream
-
Constructor Details
-
SerialOutput
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 Details
-
writeClassDescriptor
- Overrides:
writeClassDescriptorin classObjectOutputStream- 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.SerialOutputalways uses PROTOCOL_VERSION_2 serialization format to guarantee that this header is fixed.SerialBindingremoves this header from serialized streams automatically.- Returns:
- the fixed stream header.
-