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;
11 import org.opendaylight.controller.cluster.raft.messages.Payload;
14 * Represents one entry in the replicated log.
16 public interface ReplicatedLogEntry {
18 * Returns the payload/data to be replicated.
20 * @return the payload/data
25 * Returns the term of the entry.
32 * Returns the index of the entry.
39 * Returns the size of the entry in bytes. An approximate number may be good enough.
41 * @return the size of the entry in bytes.
46 * Return the estimate of serialized size of this entry when passed through serialization. The estimate needs to
47 * be reasonably accurate and should err on the side of caution and report a slightly-higher size in face of
50 * @return An estimate of serialized size.
55 * Checks if persistence is pending for this entry.
57 * @return true if persistence is pending, false otherwise.
59 boolean isPersistencePending();
62 * Sets whether or not persistence is pending for this entry.
64 * @param pending the new setting.
66 void setPersistencePending(boolean pending);