Interface PooledMessage.Pool

All Known Subinterfaces:
MessagePoolAdapter
All Known Implementing Classes:
SimpleMessagePool, VariableMessagePool
Enclosing class:
PooledMessage

public static interface PooledMessage.Pool
This is the interface for message pools. An empty message, ready for writing with the ByteBuffer.putXXX() methods, is obtained from message.get(). The protected method recycle is called when the message is finished() and call outstanding views have been returned with dropView(). Whether and how the pool recycles the message is a strategy decision of the pool implementation.
  • Method Summary

    Modifier and Type
    Method
    Description
    get()
    Returns a message whose capacity is at least the pool's default size.
    get(int neededSize)
    Returns a message whose capacity is at least neededSize bytes.
    int
    Return the largest buffer that can is managed by this pool.
    int
    Return the smallest buffer that can is managed by this pool.
    void
    Called by the message when its producer is finished() and all outstanding views have been by the consumers with dropView().
  • Method Details

    • minBufferSize

      int minBufferSize()
      Return the smallest buffer that can is managed by this pool.
    • maxBufferSize

      int maxBufferSize()
      Return the largest buffer that can is managed by this pool.
    • get

      PooledMessage get(int neededSize)
      Returns a message whose capacity is at least neededSize bytes. The underlying buffer's position() is set to zero and the limit() is set to capacity().
    • get

      Returns a message whose capacity is at least the pool's default size. The underlying buffer's position() is set to zero and the limit() is set to capacity()
    • recycle

      void recycle(PooledMessage m)
      Called by the message when its producer is finished() and all outstanding views have been by the consumers with dropView(). The pool can attempt to re-use the buffer storage (or not) as it sees fit. Note that although the method is public (it has to be, in a Java interface), it should only ever be called by the Message itself.