Package org.apache.qpid.protonj2.engine
Class AMQPPerformativeEnvelopePool<E extends PerformativeEnvelope<Performative>>
java.lang.Object
org.apache.qpid.protonj2.engine.AMQPPerformativeEnvelopePool<E>
- Type Parameters:
- E- The type of Protocol Performative to pool incoming or outgoing.
public class AMQPPerformativeEnvelopePool<E extends PerformativeEnvelope<Performative>>
extends Object
Pool of 
PerformativeEnvelope instances used to reduce allocations on incoming performatives.- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intThe default maximum pool size to use if not otherwise configured.
- 
Constructor SummaryConstructorsConstructorDescriptionAMQPPerformativeEnvelopePool(Function<AMQPPerformativeEnvelopePool<E>, E> envelopeBuilder) Create a new envelope pool using the default pool size.AMQPPerformativeEnvelopePool(Function<AMQPPerformativeEnvelopePool<E>, E> envelopeBuilder, int maxPoolSize) Create a new envelope pool using the default pool size.
- 
Method SummaryModifier and TypeMethodDescriptionfinal intincomingEnvelopePool(int maxPoolSize) outgoingEnvelopePool(int maxPoolSize) take(Performative body, int channel, ProtonBuffer payload) Requests an envelope from the pool and if non is available creates one using the given builder this pool was created with.
- 
Field Details- 
DEFAULT_MAX_POOL_SIZEpublic static final int DEFAULT_MAX_POOL_SIZEThe default maximum pool size to use if not otherwise configured.- See Also:
 
 
- 
- 
Constructor Details- 
AMQPPerformativeEnvelopePoolCreate a new envelope pool using the default pool size.- Parameters:
- envelopeBuilder- The builder that will provide new envelope instances when the pool is empty.
 
- 
AMQPPerformativeEnvelopePoolpublic AMQPPerformativeEnvelopePool(Function<AMQPPerformativeEnvelopePool<E>, E> envelopeBuilder, int maxPoolSize) Create a new envelope pool using the default pool size.- Parameters:
- envelopeBuilder- The builder that will provide new envelope instances when the pool is empty.
- maxPoolSize- The maximum number of envelopes to hold in the pool at any given time.
 
 
- 
- 
Method Details- 
getMaxPoolSizepublic final int getMaxPoolSize()- Returns:
- the configured maximum pool size.
 
- 
takeRequests an envelope from the pool and if non is available creates one using the given builder this pool was created with.- Parameters:
- body- The body that will be stored in the envelope.
- channel- The channel that is assigned to the envelope until returned to the pool.
- payload- The Binary payload that is to be encoded with the given envelope body.
- Returns:
- the envelope instance that was taken from the pool or created if the pool was empty.
 
- 
incomingEnvelopePoolpublic static AMQPPerformativeEnvelopePool<IncomingAMQPEnvelope> incomingEnvelopePool(int maxPoolSize) - Parameters:
- maxPoolSize- The maximum number of protocol envelopes to store in the pool.
- Returns:
- a new AMQPPerformativeEnvelopePoolthat pools incoming AMQP envelopes
 
- 
incomingEnvelopePool- Returns:
- a new AMQPPerformativeEnvelopePoolthat pools incoming AMQP envelopes
 
- 
outgoingEnvelopePoolpublic static AMQPPerformativeEnvelopePool<OutgoingAMQPEnvelope> outgoingEnvelopePool(int maxPoolSize) - Parameters:
- maxPoolSize- The maximum number of protocol envelopes to store in the pool.
- Returns:
- a new AMQPPerformativeEnvelopePoolthat pools outgoing AMQP envelopes
 
- 
outgoingEnvelopePool- Returns:
- a new AMQPPerformativeEnvelopePoolthat pools outgoing AMQP envelopes
 
 
-