Class FileTxnLog.FileTxnIterator
- java.lang.Object
-
- org.apache.zookeeper.server.persistence.FileTxnLog.FileTxnIterator
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,TxnLog.TxnIterator
- Enclosing class:
- FileTxnLog
public static class FileTxnLog.FileTxnIterator extends Object implements TxnLog.TxnIterator
this class implements the txnlog iterator interface which is used for reading the transaction logs
-
-
Constructor Summary
Constructors Constructor Description FileTxnIterator(File logDir, long zxid)
create an iterator over a transaction database directoryFileTxnIterator(File logDir, long zxid, boolean fastForward)
create an iterator over a transaction database directory
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
close the iterator and release the resources.protected InputArchive
createInputArchive(File logFile)
Invoked to indicate that the input stream has been created.TxnDigest
getDigest()
TxnHeader
getHeader()
return the current headerlong
getStorageSize()
Return total storage size of txnlog that will return by this iterator.Record
getTxn()
return the current transactionprotected void
inStreamCreated(InputArchive ia, InputStream is)
read the header from the inputarchiveprotected Checksum
makeChecksumAlgorithm()
create a checksum algorithmboolean
next()
the iterator that moves to the next transaction
-
-
-
Constructor Detail
-
FileTxnIterator
public FileTxnIterator(File logDir, long zxid, boolean fastForward) throws IOException
create an iterator over a transaction database directory- Parameters:
logDir
- the transaction database directoryzxid
- the zxid to start reading fromfastForward
- true if the iterator should be fast forwarded to point to the txn of a given zxid, else the iterator will point to the starting txn of a txnlog that may contain txn of a given zxid- Throws:
IOException
-
FileTxnIterator
public FileTxnIterator(File logDir, long zxid) throws IOException
create an iterator over a transaction database directory- Parameters:
logDir
- the transaction database directoryzxid
- the zxid to start reading from- Throws:
IOException
-
-
Method Detail
-
getStorageSize
public long getStorageSize()
Return total storage size of txnlog that will return by this iterator.- Specified by:
getStorageSize
in interfaceTxnLog.TxnIterator
-
inStreamCreated
protected void inStreamCreated(InputArchive ia, InputStream is) throws IOException
read the header from the inputarchive- Parameters:
ia
- the inputarchive to be read fromis
- the inputstream- Throws:
IOException
-
createInputArchive
protected InputArchive createInputArchive(File logFile) throws IOException
Invoked to indicate that the input stream has been created.- Parameters:
logFile
- the file to read.- Throws:
IOException
-
makeChecksumAlgorithm
protected Checksum makeChecksumAlgorithm()
create a checksum algorithm- Returns:
- the checksum algorithm
-
next
public boolean next() throws IOException
the iterator that moves to the next transaction- Specified by:
next
in interfaceTxnLog.TxnIterator
- Returns:
- true if there is more transactions to be read false if not.
- Throws:
IOException
-
getHeader
public TxnHeader getHeader()
return the current header- Specified by:
getHeader
in interfaceTxnLog.TxnIterator
- Returns:
- the current header that is read
-
getTxn
public Record getTxn()
return the current transaction- Specified by:
getTxn
in interfaceTxnLog.TxnIterator
- Returns:
- the current transaction that is read
-
getDigest
public TxnDigest getDigest()
- Specified by:
getDigest
in interfaceTxnLog.TxnIterator
- Returns:
- the digest associated with the transaction.
-
close
public void close() throws IOException
close the iterator and release the resources.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceTxnLog.TxnIterator
- Throws:
IOException
-
-