final case class AckedReceiveBuffer[T <: HasSequenceNumber](lastDelivered: SeqNo = SeqNo(-1), cumulativeAck: SeqNo = SeqNo(-1), buf: SortedSet[T] = TreeSet.empty[T])(implicit seqOrdering: Ordering[T]) extends Product with Serializable
Implements an immutable receive buffer that buffers incoming messages until they can be safely delivered. This buffer works together with a akka.remote.AckedSendBuffer on the sender() side.
- lastDelivered
Sequence number of the last message that has been delivered.
- cumulativeAck
The highest sequence number received so far.
- buf
Buffer of messages that are waiting for delivery
- Source
- AckedDelivery.scala
- Alphabetic
- By Inheritance
- AckedReceiveBuffer
- Serializable
- Serializable
- Product
- Equals
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
AckedReceiveBuffer(lastDelivered: SeqNo = SeqNo(-1), cumulativeAck: SeqNo = SeqNo(-1), buf: SortedSet[T] = TreeSet.empty[T])(implicit seqOrdering: Ordering[T])
- lastDelivered
Sequence number of the last message that has been delivered.
- cumulativeAck
The highest sequence number received so far.
- buf
Buffer of messages that are waiting for delivery
Value Members
- val buf: SortedSet[T]
- val cumulativeAck: SeqNo
-
def
extractDeliverable: (AckedReceiveBuffer[T], Seq[T], Ack)
Extract all messages that could be safely delivered, an updated ack to be sent to the sender(), and an updated buffer that has the messages removed that can be delivered.
Extract all messages that could be safely delivered, an updated ack to be sent to the sender(), and an updated buffer that has the messages removed that can be delivered.
- returns
Triplet of the updated buffer, messages that can be delivered and the updated acknowledgement.
- val lastDelivered: SeqNo
-
def
mergeFrom(that: AckedReceiveBuffer[T]): AckedReceiveBuffer[T]
Merges two receive buffers.
Merges two receive buffers. Merging preserves sequencing of messages, and drops all messages that has been safely acknowledged by any of the participating buffers. Also updates the expected sequence numbers.
- that
The receive buffer to merge with
- returns
The merged receive buffer.
-
def
receive(arrivedMsg: T): AckedReceiveBuffer[T]
Puts a sequenced message in the receive buffer returning a new buffer.
Puts a sequenced message in the receive buffer returning a new buffer.
- arrivedMsg
message to be put into the buffer.
- returns
The updated buffer containing the message.
- implicit val seqOrdering: Ordering[T]
-
def
toString(): String
- Definition Classes
- AckedReceiveBuffer → AnyRef → Any