@@ -46,11 +46,12 @@ private[entityreplication] final class ClusterReplicationSerializer(val system:
4646 // raft.snapshot
4747 private val EntitySnapshotManifest = " DA"
4848 // raft.snapshot.sync
49- private val SyncCompletedManifest = " EA"
50- private val SyncProgressManifest = " EB"
51- private val NoOffsetManifest = " EC"
52- private val SequenceManifest = " ED"
53- private val TimeBasedUUIDManifest = " EE"
49+ private val SyncCompletedManifest = " EA"
50+ private val SyncProgressManifest = " EB"
51+ private val NoOffsetManifest = " EC"
52+ private val SequenceManifest = " ED"
53+ private val TimeBasedUUIDManifest = " EE"
54+ private val SnapshotCopiedManifest = " EF"
5455 // raft.model
5556 private val NoOpManifest = " FA"
5657 // typed
@@ -87,11 +88,12 @@ private[entityreplication] final class ClusterReplicationSerializer(val system:
8788 // raft.snapshot
8889 EntitySnapshotManifest -> entitySnapshotFromBinary,
8990 // raft.snapshot.sync
90- SyncCompletedManifest -> syncCompletedFromBinary,
91- SyncProgressManifest -> syncProgressFromBinary,
92- NoOffsetManifest -> noOffsetEnvelopeFromBinary,
93- SequenceManifest -> sequenceEnvelopeFromBinary,
94- TimeBasedUUIDManifest -> timeBasedUUIDEnvelopeFromBinary,
91+ SyncCompletedManifest -> syncCompletedFromBinary,
92+ SyncProgressManifest -> syncProgressFromBinary,
93+ NoOffsetManifest -> noOffsetEnvelopeFromBinary,
94+ SequenceManifest -> sequenceEnvelopeFromBinary,
95+ TimeBasedUUIDManifest -> timeBasedUUIDEnvelopeFromBinary,
96+ SnapshotCopiedManifest -> snapshotCopiedFromBinary,
9597 // raft.model
9698 NoOpManifest -> noOpFromBinary,
9799 // typed
@@ -156,11 +158,12 @@ private[entityreplication] final class ClusterReplicationSerializer(val system:
156158 // raft.snapsnot
157159 case _ : raft.snapshot.SnapshotProtocol .EntitySnapshot => EntitySnapshotManifest
158160 // raft.snapshot.sync
159- case _ : raft.snapshot.sync.SnapshotSyncManager .SyncCompleted => SyncCompletedManifest
160- case _ : raft.snapshot.sync.SnapshotSyncManager .SyncProgress => SyncProgressManifest
161- case _ : NoOffsetEnvelope .type => NoOffsetManifest
162- case _ : SequenceEnvelope => SequenceManifest
163- case _ : TimeBasedUUIDEnvelope => TimeBasedUUIDManifest
161+ case _ : raft.snapshot.sync.SnapshotSyncManager .SyncCompleted => SyncCompletedManifest
162+ case _ : raft.snapshot.sync.SnapshotSyncManager .SyncProgress => SyncProgressManifest
163+ case _ : NoOffsetEnvelope .type => NoOffsetManifest
164+ case _ : SequenceEnvelope => SequenceManifest
165+ case _ : TimeBasedUUIDEnvelope => TimeBasedUUIDManifest
166+ case _ : raft.snapshot.sync.SnapshotSyncManager .SnapshotCopied => SnapshotCopiedManifest
164167 // raft.model
165168 case _ : raft.model.NoOp .type => NoOpManifest
166169 // typed
@@ -197,11 +200,12 @@ private[entityreplication] final class ClusterReplicationSerializer(val system:
197200 // raft.snapshot
198201 case m : raft.snapshot.SnapshotProtocol .EntitySnapshot => entitySnapShotToBinary(m)
199202 // raft.snapshot.sync
200- case m : raft.snapshot.sync.SnapshotSyncManager .SyncCompleted => syncCompletedToBinary(m)
201- case m : raft.snapshot.sync.SnapshotSyncManager .SyncProgress => syncProgressToBinary(m)
202- case m : NoOffsetEnvelope .type => noOffsetEnvelopeToBinary(m)
203- case m : SequenceEnvelope => sequenceEnvelopeToBinary(m)
204- case m : TimeBasedUUIDEnvelope => timeBasedUUIDEnvelopeToBinary(m)
203+ case m : raft.snapshot.sync.SnapshotSyncManager .SyncCompleted => syncCompletedToBinary(m)
204+ case m : raft.snapshot.sync.SnapshotSyncManager .SyncProgress => syncProgressToBinary(m)
205+ case m : NoOffsetEnvelope .type => noOffsetEnvelopeToBinary(m)
206+ case m : SequenceEnvelope => sequenceEnvelopeToBinary(m)
207+ case m : TimeBasedUUIDEnvelope => timeBasedUUIDEnvelopeToBinary(m)
208+ case m : raft.snapshot.sync.SnapshotSyncManager .SnapshotCopied => snapshotCopiedToBinary(m)
205209 // raft.model
206210 case m : raft.model.NoOp .type => noOpToBinary(m)
207211 // typed
@@ -790,6 +794,30 @@ private[entityreplication] final class ClusterReplicationSerializer(val system:
790794 )
791795 }
792796
797+ private def snapshotCopiedToBinary (message : raft.snapshot.sync.SnapshotSyncManager .SnapshotCopied ): Array [Byte ] = {
798+ msg.SnapshotCopied
799+ .of(
800+ offset = offsetToProto(message.offset),
801+ memberIndex = memberIndexToProto(message.memberIndex),
802+ shardId = normalizedShardIdToProto(message.shardId),
803+ snapshotLastLogTerm = termToProto(message.snapshotLastLogTerm),
804+ snapshotLastLogIndex = logEntryIndexToProto(message.snapshotLastLogIndex),
805+ entityIds = message.entityIds.map(normalizedEntityIdToProto).toSeq,
806+ ).toByteArray
807+ }
808+
809+ private def snapshotCopiedFromBinary (bytes : Array [Byte ]): raft.snapshot.sync.SnapshotSyncManager .SnapshotCopied = {
810+ val proto = msg.SnapshotCopied .parseFrom(bytes)
811+ raft.snapshot.sync.SnapshotSyncManager .SnapshotCopied (
812+ offset = offsetFromProto(proto.offset),
813+ memberIndex = memberIndexFromProto(proto.memberIndex),
814+ shardId = normalizedShardIdFromProto(proto.shardId),
815+ snapshotLastLogTerm = termFromProto(proto.snapshotLastLogTerm),
816+ snapshotLastLogIndex = logEntryIndexFromProto(proto.snapshotLastLogIndex),
817+ entityIds = proto.entityIds.map(normalizedEntityIdFromProto).toSet,
818+ )
819+ }
820+
793821 // ===
794822 // model
795823 // ===
0 commit comments