All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.atomix.raft.storage.log.entry.InitialEntry Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2015-present Open Networking Foundation
 * Copyright © 2020 camunda services GmbH ([email protected])
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.atomix.raft.storage.log.entry;

import io.atomix.raft.storage.serializer.RaftEntrySerializer;
import io.atomix.raft.storage.serializer.RaftEntrySerializer.SerializedBufferWriterAdapter;
import io.camunda.zeebe.util.buffer.BufferWriter;

/**
 * Indicates a leader change has occurred.
 *
 * 

The {@code InitialEntry} is logged by a leader at the beginning of its term to indicate that a * leadership change has occurred. Initialize entries are always the first entry to be committed at * the start of a leader's term. */ public record InitialEntry() implements RaftEntry { @Override public BufferWriter toSerializable(final long term, final RaftEntrySerializer serializer) { return new SerializedBufferWriterAdapter( serializer::getInitialEntrySerializedLength, (buffer, offset) -> serializer.writeInitialEntry(term, this, buffer, offset)); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy