public class HowlJournal extends Object implements Journal
Constructor and Description |
---|
HowlJournal(Configuration configuration) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the Journal.
|
RecordLocation |
getMark()
Obtains the mark that was set in the Journal.
|
RecordLocation |
getNextRecordLocation(RecordLocation lastLocation)
Allows you to get the next RecordLocation after the
location that
is in the journal. |
Packet |
read(RecordLocation location)
Reads a previously written record from the journal.
|
void |
setJournalEventListener(JournalEventListener eventListener)
Registers a
JournalEventListener that will receive notifications from the Journal. |
void |
setMark(RecordLocation recordLocator,
boolean force)
Informs the journal that all the journal space up to the
location is no longer
needed and can be reclaimed for reuse. |
RecordLocation |
write(Packet packet,
boolean sync)
Writes a
Packet of data to the journal. |
public HowlJournal(Configuration configuration) throws InvalidFileSetException, LogConfigurationException, InvalidLogBufferException, ClassNotFoundException, IOException, InterruptedException
InvalidFileSetException
LogConfigurationException
InvalidLogBufferException
ClassNotFoundException
IOException
InterruptedException
public RecordLocation write(Packet packet, boolean sync) throws IOException
Journal
Packet
of data to the journal. If sync
is true, then this call blocks until the data has landed on the physical
disk. Otherwise, this enqueues the write request and returns.write
in interface Journal
sync
- - If this call should block until the data lands on disk.IOException
- if the write failed.org.apache.activeio.journal.Journal#write(byte[], boolean)
public void setMark(RecordLocation recordLocator, boolean force) throws InvalidRecordLocationException, IOException
Journal
location
is no longer
needed and can be reclaimed for reuse.setMark
in interface Journal
recordLocator
- the location of the record to mark. All record locations before the marked
location will no longger be vaild.force
- if this call should block until the mark is set on the journal.InvalidRecordLocationException
- if location
parameter is out of range.
It cannot be a location that is before the current mark.IOException
- if the record could not be read.org.apache.activeio.journal.Journal#setMark(org.codehaus.activemq.journal.RecordLocation, boolean)
public RecordLocation getMark()
Journal
getMark
in interface Journal
Journal.getMark()
public void close() throws IOException
Journal
close
in interface Journal
IOException
- if an error occurs while the journal is being closed.Journal.close()
public void setJournalEventListener(JournalEventListener eventListener)
Journal
JournalEventListener
that will receive notifications from the Journal.setJournalEventListener
in interface Journal
eventListener
- object that will receive journal events.org.apache.activeio.journal.Journal#setJournalEventListener(org.codehaus.activemq.journal.JournalEventListener)
public RecordLocation getNextRecordLocation(RecordLocation lastLocation) throws InvalidRecordLocationException
Journal
location
that
is in the journal.getNextRecordLocation
in interface Journal
lastLocation
- the reference location the is used to find the next location.
To get the oldest location available in the journal, location
should be set to null.InvalidRecordLocationException
- if location
parameter is out of range.
It cannot be a location that is before the current mark.org.apache.activeio.journal.Journal#getNextRecordLocation(org.codehaus.activemq.journal.RecordLocation)
public Packet read(RecordLocation location) throws InvalidRecordLocationException, IOException
Journal
read
in interface Journal
location
- is where to read the record from.location
.InvalidRecordLocationException
- if location
parameter is out of range.
It cannot be a location that is before the current mark.IOException
- if the record could not be read.org.apache.activeio.journal.Journal#read(org.codehaus.activemq.journal.RecordLocation)
Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.