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 voidclose()close the iterator and release the resources.protected InputArchivecreateInputArchive(File logFile)Invoked to indicate that the input stream has been created.TxnDigestgetDigest()TxnHeadergetHeader()return the current headerlonggetStorageSize()Return total storage size of txnlog that will return by this iterator.RecordgetTxn()return the current transactionprotected voidinStreamCreated(InputArchive ia, InputStream is)read the header from the inputarchiveprotected ChecksummakeChecksumAlgorithm()create a checksum algorithmbooleannext()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:
getStorageSizein 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 IOExceptionthe iterator that moves to the next transaction- Specified by:
nextin 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:
getHeaderin interfaceTxnLog.TxnIterator- Returns:
- the current header that is read
-
getTxn
public Record getTxn()
return the current transaction- Specified by:
getTxnin interfaceTxnLog.TxnIterator- Returns:
- the current transaction that is read
-
getDigest
public TxnDigest getDigest()
- Specified by:
getDigestin interfaceTxnLog.TxnIterator- Returns:
- the digest associated with the transaction.
-
close
public void close() throws IOExceptionclose the iterator and release the resources.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceTxnLog.TxnIterator- Throws:
IOException
-
-