Interface BatchMessageContainerBase

All Superinterfaces:
BatchMessageContainer
All Known Implementing Classes:
AbstractBatchMessageContainer

public interface BatchMessageContainerBase extends BatchMessageContainer
  • Method Details

    • add

      boolean add(MessageImpl<?> msg, SendCallback callback)
      Add message to the batch message container.
      Parameters:
      msg - message will add to the batch message container
      callback - message send callback
      Returns:
      true if the batch is full, otherwise false
    • haveEnoughSpace

      boolean haveEnoughSpace(MessageImpl<?> msg)
      Check the batch message container have enough space for the message want to add.
      Parameters:
      msg - the message want to add
      Returns:
      return true if the container have enough space for the specific message, otherwise return false.
    • hasSameSchema

      boolean hasSameSchema(MessageImpl<?> msg)
      Check the batch message container has same schema with the message want to add.
      Parameters:
      msg - the message want to add
      Returns:
      return true if the container has same schema with the specific message, otherwise return false.
    • setProducer

      void setProducer(ProducerImpl<?> producer)
      Set producer of the message batch container.
      Parameters:
      producer - producer
    • createOpSendMsgs

      List<ProducerImpl.OpSendMsg> createOpSendMsgs() throws IOException
      Create list of OpSendMsg, producer use OpSendMsg to send to the broker.
      Returns:
      list of OpSendMsg
      Throws:
      IOException
    • createOpSendMsg

      ProducerImpl.OpSendMsg createOpSendMsg() throws IOException
      Create OpSendMsg, producer use OpSendMsg to send to the broker.
      Returns:
      OpSendMsg
      Throws:
      IOException
    • hasSameTxn

      boolean hasSameTxn(MessageImpl<?> msg)
      Check whether the added message belong to the same txn with batch message container.
      Parameters:
      msg - added message
      Returns:
      belong to the same txn or not
    • getFirstAddedTimestamp

      long getFirstAddedTimestamp()
      Get the timestamp in nanoseconds when the 1st message is added into the batch container.
      Returns:
      the timestamp in nanoseconds or 0L if the batch container is empty