akka.persistence.journal.japi
Class SyncWriteJournal

java.lang.Object
  extended by akka.persistence.journal.japi.AsyncRecovery
      extended by akka.persistence.journal.japi.SyncWriteJournal
All Implemented Interfaces:
Actor, AsyncRecovery, SyncWriteJournal, WriteJournalBase

public abstract class SyncWriteJournal
extends AsyncRecovery
implements SyncWriteJournal

Java API: abstract journal, optimized for synchronous writes.


Nested Class Summary
 
Nested classes/interfaces inherited from interface akka.actor.Actor
Actor.emptyBehavior$
 
Constructor Summary
SyncWriteJournal()
           
 
Method Summary
 void deleteMessages(scala.collection.immutable.Seq<PersistentId> messageIds, boolean permanent)
          Plugin API: synchronously deletes messages identified by messageIds from the journal.
 void deleteMessagesTo(java.lang.String persistenceId, long toSequenceNr, boolean permanent)
          Plugin API: synchronously deletes all persistent messages up to toSequenceNr (inclusive).
 scala.concurrent.Future<java.lang.Long> doAsyncReadHighestSequenceNr(java.lang.String persistenceId, long fromSequenceNr)
          Java API, Plugin API: asynchronously reads the highest stored sequence number for the given `persistenceId`.
 scala.concurrent.Future<java.lang.Void> doAsyncReplayMessages(java.lang.String persistenceId, long fromSequenceNr, long toSequenceNr, long max, Procedure<PersistentRepr> replayCallback)
          Java API, Plugin API: asynchronously replays persistent messages.
 void doDeleteMessages(java.lang.Iterable<PersistentId> messageIds, boolean permanent)
          Deprecated. doDeleteMessages will be removed (since 2.3.4)
 void doDeleteMessagesTo(java.lang.String persistenceId, long toSequenceNr, boolean permanent)
          Java API, Plugin API: synchronously deletes all persistent messages up to `toSequenceNr`.
 void doWriteConfirmations(java.lang.Iterable<PersistentConfirmation> confirmations)
          Deprecated. doWriteConfirmations will be removed, since Channels will be removed (since 2.3.4)
 void doWriteMessages(java.lang.Iterable<PersistentRepr> messages)
          Java API, Plugin API: synchronously writes a batch of persistent messages to the journal.
 void writeConfirmations(scala.collection.immutable.Seq<PersistentConfirmation> confirmations)
          Plugin API: synchronously writes a batch of delivery confirmations to the journal.
 void writeMessages(scala.collection.immutable.Seq<PersistentRepr> messages)
          Plugin API: synchronously writes a batch of persistent messages to the journal.
 
Methods inherited from class akka.persistence.journal.japi.AsyncRecovery
asyncReadHighestSequenceNr, asyncReplayMessages
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface akka.persistence.journal.SyncWriteJournal
extension, publish, receive
 
Methods inherited from interface akka.actor.Actor
aroundPostRestart, aroundPostStop, aroundPreRestart, aroundPreStart, aroundReceive, context, postRestart, postStop, preRestart, preStart, self, sender, supervisorStrategy, unhandled
 
Methods inherited from interface akka.persistence.journal.WriteJournalBase
persistentPrepareWrite, preparePersistentBatch
 
Methods inherited from interface akka.persistence.journal.AsyncRecovery
asyncReadHighestSequenceNr, asyncReplayMessages
 

Constructor Detail

SyncWriteJournal

public SyncWriteJournal()
Method Detail

writeMessages

public final void writeMessages(scala.collection.immutable.Seq<PersistentRepr> messages)
Description copied from interface: SyncWriteJournal
Plugin API: synchronously writes a batch of persistent messages to the journal. The batch write must be atomic i.e. either all persistent messages in the batch are written or none.

Specified by:
writeMessages in interface SyncWriteJournal
Parameters:
messages - (undocumented)

writeConfirmations

public final void writeConfirmations(scala.collection.immutable.Seq<PersistentConfirmation> confirmations)
Description copied from interface: SyncWriteJournal
Plugin API: synchronously writes a batch of delivery confirmations to the journal.

Specified by:
writeConfirmations in interface SyncWriteJournal
Parameters:
confirmations - (undocumented)

deleteMessages

public final void deleteMessages(scala.collection.immutable.Seq<PersistentId> messageIds,
                                 boolean permanent)
Description copied from interface: SyncWriteJournal
Plugin API: synchronously deletes messages identified by messageIds from the journal. If permanent is set to false, the persistent messages are marked as deleted, otherwise they are permanently deleted.

Specified by:
deleteMessages in interface SyncWriteJournal
Parameters:
messageIds - (undocumented)
permanent - (undocumented)

deleteMessagesTo

public final void deleteMessagesTo(java.lang.String persistenceId,
                                   long toSequenceNr,
                                   boolean permanent)
Description copied from interface: SyncWriteJournal
Plugin API: synchronously deletes all persistent messages up to toSequenceNr (inclusive). If permanent is set to false, the persistent messages are marked as deleted, otherwise they are permanently deleted.

Specified by:
deleteMessagesTo in interface SyncWriteJournal
Parameters:
persistenceId - (undocumented)
toSequenceNr - (undocumented)
permanent - (undocumented)

doWriteMessages

public void doWriteMessages(java.lang.Iterable<PersistentRepr> messages)
Java API, Plugin API: synchronously writes a batch of persistent messages to the journal. The batch write must be atomic i.e. either all persistent messages in the batch are written or none.


doWriteConfirmations

@Deprecated
public void doWriteConfirmations(java.lang.Iterable<PersistentConfirmation> confirmations)
Deprecated. doWriteConfirmations will be removed, since Channels will be removed (since 2.3.4)

Java API, Plugin API: synchronously writes a batch of delivery confirmations to the journal.


doDeleteMessages

@Deprecated
public void doDeleteMessages(java.lang.Iterable<PersistentId> messageIds,
                                        boolean permanent)
Deprecated. doDeleteMessages will be removed (since 2.3.4)

Java API, Plugin API: synchronously deletes messages identified by `messageIds` from the journal. If `permanent` is set to `false`, the persistent messages are marked as deleted, otherwise they are permanently deleted.


doDeleteMessagesTo

public void doDeleteMessagesTo(java.lang.String persistenceId,
                               long toSequenceNr,
                               boolean permanent)
Java API, Plugin API: synchronously deletes all persistent messages up to `toSequenceNr`. If `permanent` is set to `false`, the persistent messages are marked as deleted, otherwise they are permanently deleted.

See Also:
AsyncRecoveryPlugin

doAsyncReplayMessages

public scala.concurrent.Future<java.lang.Void> doAsyncReplayMessages(java.lang.String persistenceId,
                                                                     long fromSequenceNr,
                                                                     long toSequenceNr,
                                                                     long max,
                                                                     Procedure<PersistentRepr> replayCallback)
Java API, Plugin API: asynchronously replays persistent messages. Implementations replay a message by calling `replayCallback`. The returned future must be completed when all messages (matching the sequence number bounds) have been replayed. The future must be completed with a failure if any of the persistent messages could not be replayed. The `replayCallback` must also be called with messages that have been marked as deleted. In this case a replayed message's `deleted` method must return `true`. The channel ids of delivery confirmations that are available for a replayed message must be contained in that message's `confirms` sequence.

Parameters:
persistenceId - processor id.
fromSequenceNr - sequence number where replay should start (inclusive).
toSequenceNr - sequence number where replay should end (inclusive).
max - maximum number of messages to be replayed.
replayCallback - called to replay a single message. Can be called from any thread.

doAsyncReadHighestSequenceNr

public scala.concurrent.Future<java.lang.Long> doAsyncReadHighestSequenceNr(java.lang.String persistenceId,
                                                                            long fromSequenceNr)
Java API, Plugin API: asynchronously reads the highest stored sequence number for the given `persistenceId`.

Parameters:
persistenceId - processor id.
fromSequenceNr - hint where to start searching for the highest sequence number.