|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.jini.mercury.TransientEventLog
class TransientEventLog
Class that implements the interface for an EventLog. This class encapsulates the details of reading/writing events from/to some non-persistent mechanism. This class makes certain assumptions. First, the next and remove methods are intended to be called in pairs. If remove is not called, then subsequent calls to next will attempt to return the same object. Calling remove essentially advances the read pointer to the next object, if any. There is also an implicit assumption of external synchronization by the caller. That is, only one calling thread will be accessing the log at a time.
Nested Class Summary | |
---|---|
private static class |
TransientEventLog.RemoteEventHolder
Helper class used to hold a remote event and a sequence id. |
Field Summary | |
---|---|
private boolean |
closed
Flag that is used to determine whether or not this object has been closed. |
private List |
entries
The associated, non-persistent storage for events |
private long |
eventCounter
Counter used to produce event ids. |
private boolean |
initialized
Flag that is used to determine whether or not this object has been initialized. |
private static Logger |
persistenceLogger
Logger used for persistence-related debugging messages |
private Uuid |
uuid
The associated Uuid for this EventLog. |
Constructor Summary | |
---|---|
TransientEventLog(Uuid uuid)
Simple constructor that takes a Uuid argument. |
Method Summary | |
---|---|
void |
add(RemoteEvent event)
Writes the given RemoteEvent to the underlying storage mechanism, if possible. |
void |
close()
Close this log and release any associated runtime resources. |
void |
delete()
Delete associated storage resources for this log. |
void |
init()
Initializes the state of this EventLog object. |
boolean |
isEmpty()
Returns true if this log contains no events and false otherwise. |
void |
moveAhead(Object cookie)
Effectively removes the last set of read events from the log. |
RemoteEvent |
next()
Return the next RemoteEvent to be read. |
private void |
printControlData(Logger logger,
String msg)
Output state information to the given Logger. |
RemoteEventData[] |
readAhead(int maxEvents)
Return an array of RemoteEventData with a limit of maxEvents elements. |
void |
remove()
Effectively removes the last read event from the log. |
private void |
stateCheck()
Asserts that the log is in a valid state. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Logger persistenceLogger
private Uuid uuid
private List entries
private boolean closed
private boolean initialized
private long eventCounter
Constructor Detail |
---|
TransientEventLog(Uuid uuid)
IllegalArgumentException
- if the argument is nullMethod Detail |
---|
public void init() throws IOException
EventLog
init
in interface EventLog
IOException
- if an I/O error occursprivate void stateCheck() throws IOException
IOException
- if the log is in an invalid statepublic void add(RemoteEvent event) throws IOException
EventLog
add
in interface EventLog
IOException
- if an I/O error occurspublic RemoteEvent next() throws IOException
EventLog
next
in interface EventLog
IOException
- if an I/O error occurspublic RemoteEventData[] readAhead(int maxEvents) throws IOException
EventLog
readAhead
in interface EventLog
maxEvents
- maximum number of events/elements to return
IOException
- if an I/O error occurspublic boolean isEmpty() throws IOException
EventLog
isEmpty
in interface EventLog
IOException
public void remove() throws IOException
EventLog
remove
in interface EventLog
IOException
public void moveAhead(Object cookie) throws IOException
EventLog
moveAhead
in interface EventLog
cookie
- object associated with event to read past. This object
should have been obtained from a call to
getCookie()
on a RemoteEventData
object
obtained from a call to readAhead
on this event log.
IOException
- if there was a problem advancing the read pointer.public void close() throws IOException
EventLog
close
in interface EventLog
IOException
public void delete() throws IOException
EventLog
delete
in interface EventLog
IOException
- if an IO error occursprivate void printControlData(Logger logger, String msg)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |