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

com.sleepycat.je.log.entry.LogEntry Maven / Gradle / Ivy

The newest version!
/*-
 * Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
 *
 * This file was distributed by Oracle as part of a version of Oracle Berkeley
 * DB Java Edition made available at:
 *
 * http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
 *
 * Please see the LICENSE file included in the top-level directory of the
 * appropriate version of Oracle Berkeley DB Java Edition for a copy of the
 * license and additional information.
 */

package com.sleepycat.je.log.entry;

import java.nio.ByteBuffer;

import com.sleepycat.je.dbi.DatabaseId;
import com.sleepycat.je.dbi.DatabaseImpl;
import com.sleepycat.je.dbi.EnvironmentImpl;
import com.sleepycat.je.log.LogEntryHeader;
import com.sleepycat.je.log.LogEntryType;
import com.sleepycat.je.utilint.VLSN;

/**
 * A Log entry allows you to read, write and dump a database log entry.  Each
 * entry may be made up of one or more loggable items.
 *
 * 

The log entry on disk consists of a log header defined by LogManager and * the specific contents of the log entry. * *

Log entries that support replication are required to implement {@link * ReplicableLogEntry}. */ public interface LogEntry extends Cloneable { /** * Inform a LogEntry instance of its corresponding LogEntryType. */ public void setLogType(LogEntryType entryType); /** * @return the type of log entry */ public LogEntryType getLogType(); /** * Read in a log entry. */ public void readEntry(EnvironmentImpl envImpl, LogEntryHeader header, ByteBuffer entryBuffer); /** * Print out the contents of an entry. */ public StringBuilder dumpEntry(StringBuilder sb, boolean verbose); /** * @return the first item of the log entry */ public Object getMainItem(); /** * Construct a complete item from a item entry, fetching additional log * entries as needed to ensure that a usable main object is available. * * For an OldBINDeltaLogEntry, fetches the full BIN and merges the delta * information. This is necessary to return a Node main object. * However, for the new BINDeltaLogEntry, the full BIN is not fetched, * since the partial BIN (the delta) is usable as a Node. */ public Object getResolvedItem(DatabaseImpl dbImpl); /** * @return the ID of the database containing this entry, or null if this * entry type is not part of a database. */ public DatabaseId getDbId(); /** * @return return the transaction id if this log entry is transactional, * 0 otherwise. */ public long getTransactionId(); /** * @return size of byte buffer needed to store this entry. */ public int getSize(); /** * Serialize this object into the buffer. * @param logBuffer is the destination buffer */ public void writeEntry(ByteBuffer logBuffer); /** * Returns true if this item should be counted as obsolete when logged. */ public boolean isImmediatelyObsolete(DatabaseImpl dbImpl); /** * Returns whether this is a deleted LN. */ public boolean isDeleted(); /** * Do any processing we need to do after logging, while under the logging * latch. */ public void postLogWork(LogEntryHeader header, long justLoggedLsn, VLSN vlsn); /** * @return a shallow clone. */ public LogEntry clone(); /** * @return true if these two log entries are logically the same. * Used for replication. */ public boolean logicalEquals(LogEntry other); /** * Dump the contents of the log entry that are interesting for * replication. */ public void dumpRep(StringBuilder sb); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy