2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.cluster.raft.base.messages;
11 import akka.dispatch.ControlMessage;
12 import java.util.Collections;
13 import java.util.List;
14 import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
16 public class CaptureSnapshot implements ControlMessage {
17 private final long lastAppliedIndex;
18 private final long lastAppliedTerm;
19 private final long lastIndex;
20 private final long lastTerm;
21 private final long replicatedToAllIndex;
22 private final long replicatedToAllTerm;
23 private final List<ReplicatedLogEntry> unAppliedEntries;
24 private final boolean mandatoryTrim;
26 public CaptureSnapshot(long lastIndex, long lastTerm, long lastAppliedIndex,
27 long lastAppliedTerm, long replicatedToAllIndex, long replicatedToAllTerm,
28 List<ReplicatedLogEntry> unAppliedEntries, boolean mandatoryTrim) {
29 this.lastIndex = lastIndex;
30 this.lastTerm = lastTerm;
31 this.lastAppliedIndex = lastAppliedIndex;
32 this.lastAppliedTerm = lastAppliedTerm;
33 this.replicatedToAllIndex = replicatedToAllIndex;
34 this.replicatedToAllTerm = replicatedToAllTerm;
35 this.unAppliedEntries = unAppliedEntries != null ? unAppliedEntries :
36 Collections.<ReplicatedLogEntry>emptyList();
37 this.mandatoryTrim = mandatoryTrim;
40 public long getLastAppliedIndex() {
41 return lastAppliedIndex;
44 public long getLastAppliedTerm() {
45 return lastAppliedTerm;
48 public long getLastIndex() {
52 public long getLastTerm() {
56 public long getReplicatedToAllIndex() {
57 return replicatedToAllIndex;
60 public long getReplicatedToAllTerm() {
61 return replicatedToAllTerm;
64 public List<ReplicatedLogEntry> getUnAppliedEntries() {
65 return unAppliedEntries;
68 public boolean isMandatoryTrim() {
73 public String toString() {
74 return "CaptureSnapshot [lastAppliedIndex=" + lastAppliedIndex
75 + ", lastAppliedTerm=" + lastAppliedTerm
76 + ", lastIndex=" + lastIndex
77 + ", lastTerm=" + lastTerm
78 + ", installSnapshotInitiated="
79 + ", replicatedToAllIndex=" + replicatedToAllIndex
80 + ", replicatedToAllTerm=" + replicatedToAllTerm
81 + ", unAppliedEntries size=" + unAppliedEntries.size()
82 + ", mandatoryTrim=" + mandatoryTrim + "]";