2013-09-14 14:19:18 +02:00
|
|
|
/**
|
2014-02-02 19:05:45 -06:00
|
|
|
* Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com>
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package akka.persistence
|
|
|
|
|
|
2013-10-27 08:01:14 +01:00
|
|
|
import scala.collection.immutable
|
|
|
|
|
|
2013-09-14 14:19:18 +02:00
|
|
|
import akka.actor._
|
|
|
|
|
|
|
|
|
|
/**
|
2013-11-25 12:02:29 +01:00
|
|
|
* INTERNAL API.
|
|
|
|
|
*
|
2014-06-27 09:44:21 +02:00
|
|
|
* Messages exchanged between persistent actors, views, channels and a journal.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2013-10-08 11:46:02 +02:00
|
|
|
private[persistence] object JournalProtocol {
|
2013-09-14 14:19:18 +02:00
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Request to delete messages identified by `messageIds`. If `permanent` is set to `false`,
|
|
|
|
|
* the persistent messages are marked as deleted, otherwise they are permanently deleted.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2014-06-23 14:33:35 +02:00
|
|
|
final case class DeleteMessages(messageIds: immutable.Seq[PersistenceId], permanent: Boolean, requestor: Option[ActorRef] = None)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
2013-12-06 12:48:44 +01:00
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a successful [[DeleteMessages]] request.
|
|
|
|
|
*/
|
2014-06-23 14:33:35 +02:00
|
|
|
final case class DeleteMessagesSuccess(messageIds: immutable.Seq[PersistenceId])
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reply message to a failed [[DeleteMessages]] request.
|
|
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class DeleteMessagesFailure(cause: Throwable)
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Request to delete all persistent messages with sequence numbers up to `toSequenceNr`
|
|
|
|
|
* (inclusive). If `permanent` is set to `false`, the persistent messages are marked
|
|
|
|
|
* as deleted in the journal, otherwise they are permanently deleted from the journal.
|
|
|
|
|
*/
|
2014-06-23 14:33:35 +02:00
|
|
|
final case class DeleteMessagesTo(persistenceId: String, toSequenceNr: Long, permanent: Boolean)
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Request to write delivery confirmations.
|
|
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class WriteConfirmations(confirmations: immutable.Seq[PersistentConfirmation], requestor: ActorRef)
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reply message to a successful [[WriteConfirmations]] request.
|
|
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class WriteConfirmationsSuccess(confirmations: immutable.Seq[PersistentConfirmation])
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reply message to a failed [[WriteConfirmations]] request.
|
|
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class WriteConfirmationsFailure(cause: Throwable)
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Request to write messages.
|
2013-10-27 08:01:14 +01:00
|
|
|
*
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param messages messages to be written.
|
2014-06-27 09:44:21 +02:00
|
|
|
* @param persistentActor write requestor.
|
2013-10-27 08:01:14 +01:00
|
|
|
*/
|
2014-06-27 09:44:21 +02:00
|
|
|
final case class WriteMessages(messages: immutable.Seq[Resequenceable], persistentActor: ActorRef)
|
2013-10-27 08:01:14 +01:00
|
|
|
|
2013-09-14 14:19:18 +02:00
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a successful [[WriteMessages]] request. This reply is sent to the requestor
|
|
|
|
|
* before all subsequent [[WriteMessageSuccess]] replies.
|
2013-11-20 13:47:42 +01:00
|
|
|
*/
|
2014-05-21 01:35:21 +02:00
|
|
|
case object WriteMessagesSuccessful
|
2013-11-20 13:47:42 +01:00
|
|
|
|
|
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a failed [[WriteMessages]] request. This reply is sent to the requestor
|
|
|
|
|
* before all subsequent [[WriteMessagFailure]] replies.
|
2013-09-14 14:19:18 +02:00
|
|
|
*
|
2013-11-20 13:47:42 +01:00
|
|
|
* @param cause failure cause.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2014-05-21 01:35:21 +02:00
|
|
|
final case class WriteMessagesFailed(cause: Throwable)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a successful [[WriteMessages]] request. For each contained [[PersistentRepr]] message
|
|
|
|
|
* in the request, a separate reply is sent to the requestor.
|
2013-10-08 11:46:02 +02:00
|
|
|
*
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param persistent successfully written message.
|
2013-10-08 11:46:02 +02:00
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class WriteMessageSuccess(persistent: PersistentRepr)
|
2013-10-08 11:46:02 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a failed [[WriteMessages]] request. For each contained [[PersistentRepr]] message
|
|
|
|
|
* in the request, a separate reply is sent to the requestor.
|
2013-09-14 14:19:18 +02:00
|
|
|
*
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param message message failed to be written.
|
2013-10-08 11:46:02 +02:00
|
|
|
* @param cause failure cause.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class WriteMessageFailure(message: PersistentRepr, cause: Throwable)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-06-27 09:44:21 +02:00
|
|
|
* Request to loop a `message` back to `persistent actor`, without persisting the message. Looping of messages
|
2014-01-17 06:58:25 +01:00
|
|
|
* through a journal is required to preserve message order with persistent messages.
|
2013-09-14 14:19:18 +02:00
|
|
|
*
|
|
|
|
|
* @param message message to be looped through the journal.
|
2014-06-27 09:44:21 +02:00
|
|
|
* @param persistentActor loop requestor.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2014-06-27 09:44:21 +02:00
|
|
|
final case class LoopMessage(message: Any, persistentActor: ActorRef)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a [[LoopMessage]] request.
|
2013-09-14 14:19:18 +02:00
|
|
|
*
|
|
|
|
|
* @param message looped message.
|
|
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class LoopMessageSuccess(message: Any)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-06-27 09:44:21 +02:00
|
|
|
* Request to replay messages to `persistentActor`.
|
2013-10-08 11:46:02 +02:00
|
|
|
*
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param fromSequenceNr sequence number where replay should start (inclusive).
|
2013-10-08 11:46:02 +02:00
|
|
|
* @param toSequenceNr sequence number where replay should end (inclusive).
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param max maximum number of messages to be replayed.
|
2014-06-27 09:44:21 +02:00
|
|
|
* @param persistenceId requesting persistent actor id.
|
|
|
|
|
* @param persistentActor requesting persistent actor.
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param replayDeleted `true` if messages marked as deleted shall be replayed.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2014-06-27 09:44:21 +02:00
|
|
|
final case class ReplayMessages(fromSequenceNr: Long, toSequenceNr: Long, max: Long, persistenceId: String, persistentActor: ActorRef, replayDeleted: Boolean = false)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a [[ReplayMessages]] request. A separate reply is sent to the requestor for each
|
|
|
|
|
* replayed message.
|
2013-09-14 14:19:18 +02:00
|
|
|
*
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param persistent replayed message.
|
|
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class ReplayedMessage(persistent: PersistentRepr)
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reply message to a successful [[ReplayMessages]] request. This reply is sent to the requestor
|
|
|
|
|
* after all [[ReplayedMessage]] have been sent (if any).
|
|
|
|
|
*/
|
|
|
|
|
case object ReplayMessagesSuccess
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reply message to a failed [[ReplayMessages]] request. This reply is sent to the requestor
|
|
|
|
|
* if a replay could not be successfully completed.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class ReplayMessagesFailure(cause: Throwable)
|
2013-09-14 14:19:18 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-06-27 09:44:21 +02:00
|
|
|
* Request to read the highest stored sequence number of a given persistent actor.
|
2013-09-14 14:19:18 +02:00
|
|
|
*
|
2014-01-17 06:58:25 +01:00
|
|
|
* @param fromSequenceNr optional hint where to start searching for the maximum sequence number.
|
2014-06-27 09:44:21 +02:00
|
|
|
* @param persistenceId requesting persistent actor id.
|
|
|
|
|
* @param persistentActor requesting persistent actor.
|
2014-01-17 06:58:25 +01:00
|
|
|
*/
|
2014-06-27 09:44:21 +02:00
|
|
|
final case class ReadHighestSequenceNr(fromSequenceNr: Long = 1L, persistenceId: String, persistentActor: ActorRef)
|
2014-01-17 06:58:25 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reply message to a successful [[ReadHighestSequenceNr]] request.
|
|
|
|
|
*
|
|
|
|
|
* @param highestSequenceNr read highest sequence number.
|
2013-09-14 14:19:18 +02:00
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class ReadHighestSequenceNrSuccess(highestSequenceNr: Long)
|
2013-10-08 11:46:02 +02:00
|
|
|
|
|
|
|
|
/**
|
2014-01-17 06:58:25 +01:00
|
|
|
* Reply message to a failed [[ReadHighestSequenceNr]] request.
|
|
|
|
|
*
|
|
|
|
|
* @param cause failure cause.
|
2013-10-08 11:46:02 +02:00
|
|
|
*/
|
2014-03-07 13:20:01 +01:00
|
|
|
final case class ReadHighestSequenceNrFailure(cause: Throwable)
|
2013-09-14 14:19:18 +02:00
|
|
|
}
|
|
|
|
|
|