Class LogFileManager
- java.lang.Object
-
- org.apache.activeio.journal.active.LogFileManager
-
public final class LogFileManager extends java.lang.Object
Provides a logical view of many separate files as one single long log file. The separate files that compose the LogFile are Segments of the LogFile. This class is not thread safe.- Version:
- $Revision: 1.1 $
-
-
Field Summary
Fields Modifier and Type Field Description static byte
DATA_RECORD_TYPE
static int
DEFAULT_LOGFILE_COUNT
static int
DEFAULT_LOGFILE_SIZE
static byte
MARK_RECORD_TYPE
static int
SERIALIZED_SIZE
-
Constructor Summary
Constructors Constructor Description LogFileManager(java.io.File logDirectory)
LogFileManager(java.io.File logDirectory, int onlineLogFileCount, int initialLogFileSize, java.io.File archiveDirectory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
append(BatchedWrite write)
boolean
canActivateNextLogFile()
void
dispose()
Location
getFirstActiveLogLocation()
Location
getFirstRecordLocationOfSecondActiveLogFile()
int
getInitialLogFileSize()
Location
getLastMarkedRecordLocation()
java.io.File
getLogDirectory()
Location
getNextAppendLocation()
Location
getNextDataRecordLocation(Location lastLocation)
int
getOnlineLogFileCount()
boolean
isPastHalfActive()
Packet
readPacket(Location location)
-
-
-
Field Detail
-
DEFAULT_LOGFILE_COUNT
public static final int DEFAULT_LOGFILE_COUNT
-
DEFAULT_LOGFILE_SIZE
public static final int DEFAULT_LOGFILE_SIZE
-
SERIALIZED_SIZE
public static final int SERIALIZED_SIZE
- See Also:
- Constant Field Values
-
DATA_RECORD_TYPE
public static final byte DATA_RECORD_TYPE
- See Also:
- Constant Field Values
-
MARK_RECORD_TYPE
public static final byte MARK_RECORD_TYPE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
LogFileManager
public LogFileManager(java.io.File logDirectory) throws java.io.IOException
- Throws:
java.io.IOException
-
LogFileManager
public LogFileManager(java.io.File logDirectory, int onlineLogFileCount, int initialLogFileSize, java.io.File archiveDirectory) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
dispose
public void dispose()
-
append
public void append(BatchedWrite write) throws java.io.IOException
- Parameters:
write
-- Throws:
java.io.IOException
-
getNextDataRecordLocation
public Location getNextDataRecordLocation(Location lastLocation) throws java.io.IOException, InvalidRecordLocationException
- Parameters:
lastLocation
-- Returns:
- Throws:
java.io.IOException
InvalidRecordLocationException
-
readPacket
public Packet readPacket(Location location) throws java.io.IOException, InvalidRecordLocationException
- Parameters:
logFileIndex
-logFileOffset
-- Returns:
- Throws:
java.io.IOException
InvalidRecordLocationException
-
getInitialLogFileSize
public int getInitialLogFileSize()
-
getFirstActiveLogLocation
public Location getFirstActiveLogLocation()
-
getLogDirectory
public java.io.File getLogDirectory()
- Returns:
- Returns the logDirectory.
-
getLastMarkedRecordLocation
public Location getLastMarkedRecordLocation()
- Returns:
- Returns the lastMark.
-
getNextAppendLocation
public Location getNextAppendLocation()
-
getOnlineLogFileCount
public int getOnlineLogFileCount()
- Returns:
- Returns the onlineLogFileCount.
-
isPastHalfActive
public boolean isPastHalfActive()
-
getFirstRecordLocationOfSecondActiveLogFile
public Location getFirstRecordLocationOfSecondActiveLogFile()
-
canActivateNextLogFile
public boolean canActivateNextLogFile()
-
-