2ba866e0c5
Summary: WriteBatch is now used by the GetUpdatesSinceAPI. This API is external and will be used by the rocks server. Rocks Server and others will need to know about the Sequence Number in the WriteBatch. This public method will allow for that. Test Plan: make all check. Reviewers: dhruba Reviewed By: dhruba CC: leveldb Differential Revision: https://reviews.facebook.net/D7293
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
// Copyright 2008-present Facebook. All Rights Reserved.
|
|
#ifndef STORAGE_LEVELDB_INCLUDE_TRANSACTION_LOG_ITERATOR_H_
|
|
#define STORAGE_LEVELDB_INCLUDE_TRANSACTION_LOG_ITERATOR_H_
|
|
|
|
#include "leveldb/status.h"
|
|
#include "leveldb/write_batch.h"
|
|
|
|
namespace leveldb {
|
|
|
|
|
|
// A TransactionLogIterator is used to iterate over the Transaction's in a db.
|
|
class TransactionLogIterator {
|
|
public:
|
|
TransactionLogIterator() {}
|
|
virtual ~TransactionLogIterator() {}
|
|
|
|
// An iterator is either positioned at a WriteBatch or not valid.
|
|
// This method returns true if the iterator is valid.
|
|
virtual bool Valid() = 0;
|
|
|
|
// Moves the iterator to the next WriteBatch.
|
|
// REQUIRES: Valid() to be true.
|
|
virtual void Next() = 0;
|
|
|
|
// Return's ok if the iterator is in a valid stated.
|
|
// Return the Error Status when the iterator is not Valid.
|
|
virtual Status status() = 0;
|
|
|
|
// If valid return's the current write_batch and the sequence number of the
|
|
// latest transaction contained in the batch.
|
|
virtual void GetBatch(WriteBatch* batch, SequenceNumber* seq) = 0;
|
|
};
|
|
} // namespace leveldb
|
|
|
|
#endif // STORAGE_LEVELDB_INCLUDE_TRANSACTION_LOG_ITERATOR_H_
|