Class CompatibleObjectEncoder

  • All Implemented Interfaces:
    ChannelDownstreamHandler, ChannelHandler

    public class CompatibleObjectEncoder
    extends OneToOneEncoder
    An encoder which serializes a Java object into a ChannelBuffer (interoperability version).

    This encoder is interoperable with the standard Java object streams such as ObjectInputStream and ObjectOutputStream.

    • Field Detail

      • buffer

        private final java.util.concurrent.atomic.AtomicReference<ChannelBuffer> buffer
      • resetInterval

        private final int resetInterval
      • oout

        private volatile java.io.ObjectOutputStream oout
      • writtenObjects

        private int writtenObjects
    • Constructor Detail

      • CompatibleObjectEncoder

        public CompatibleObjectEncoder()
        Creates a new instance with the reset interval of 16.
      • CompatibleObjectEncoder

        public CompatibleObjectEncoder​(int resetInterval)
        Creates a new instance.
        Parameters:
        resetInterval - the number of objects between ObjectOutputStream.reset(). 0 will disable resetting the stream, but the remote peer will be at the risk of getting OutOfMemoryError in the long term.
    • Method Detail

      • newObjectOutputStream

        protected java.io.ObjectOutputStream newObjectOutputStream​(java.io.OutputStream out)
                                                            throws java.lang.Exception
        Creates a new ObjectOutputStream which wraps the specified OutputStream. Override this method to use a subclass of the ObjectOutputStream.
        Throws:
        java.lang.Exception