Class ObjectSerializationDecoder

All Implemented Interfaces:
ProtocolDecoder

public class ObjectSerializationDecoder extends CumulativeProtocolDecoder
A ProtocolDecoder which deserializes Serializable Java objects using IoBuffer.getObject(ClassLoader).
  • Field Details

    • classLoader

      private final ClassLoader classLoader
    • maxObjectSize

      private int maxObjectSize
  • Constructor Details

    • ObjectSerializationDecoder

      public ObjectSerializationDecoder()
      Creates a new instance with the ClassLoader of the current thread.
    • ObjectSerializationDecoder

      public ObjectSerializationDecoder(ClassLoader classLoader)
      Creates a new instance with the specified ClassLoader.
      Parameters:
      classLoader - The class loader to use
  • Method Details

    • getMaxObjectSize

      public int getMaxObjectSize()
      Returns:
      the allowed maximum size of the object to be decoded. If the size of the object to be decoded exceeds this value, this decoder will throw a BufferDataException. The default value is 1048576 (1MB).
    • setMaxObjectSize

      public void setMaxObjectSize(int maxObjectSize)
      Sets the allowed maximum size of the object to be decoded. If the size of the object to be decoded exceeds this value, this decoder will throw a BufferDataException. The default value is 1048576 (1MB).
      Parameters:
      maxObjectSize - The maximum size for an object to be decoded
    • doDecode

      protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception
      Implement this method to consume the specified cumulative buffer and decode its content into message(s).
      Specified by:
      doDecode in class CumulativeProtocolDecoder
      Parameters:
      session - The current Session
      in - the cumulative buffer
      out - The ProtocolDecoderOutput that will receive the decoded message
      Returns:
      true if and only if there's more to decode in the buffer and you want to have doDecode method invoked again. Return false if remaining data is not enough to decode, then this method will be invoked again when more data is cumulated.
      Throws:
      Exception - if cannot decode in.