summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/in_memory/in_memory_record_store.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/in_memory/in_memory_record_store.h')
-rw-r--r--src/mongo/db/storage/in_memory/in_memory_record_store.h77
1 files changed, 4 insertions, 73 deletions
diff --git a/src/mongo/db/storage/in_memory/in_memory_record_store.h b/src/mongo/db/storage/in_memory/in_memory_record_store.h
index 239c4f7bb09..e091d75c4a1 100644
--- a/src/mongo/db/storage/in_memory/in_memory_record_store.h
+++ b/src/mongo/db/storage/in_memory/in_memory_record_store.h
@@ -39,8 +39,6 @@
namespace mongo {
- class InMemoryRecordIterator;
-
/**
* A RecordStore that stores all data in-memory.
*
@@ -87,13 +85,7 @@ namespace mongo {
const char* damageSource,
const mutablebson::DamageVector& damages );
- virtual RecordIterator* getIterator( OperationContext* txn,
- const RecordId& start,
- const CollectionScanParams::Direction& dir) const;
-
- virtual RecordIterator* getIteratorForRepair( OperationContext* txn ) const;
-
- virtual std::vector<RecordIterator*> getManyIterators( OperationContext* txn ) const;
+ std::unique_ptr<RecordCursor> getCursor(OperationContext* txn, bool forward) const final;
virtual Status truncate( OperationContext* txn );
@@ -166,6 +158,9 @@ namespace mongo {
class RemoveChange;
class TruncateChange;
+ class Cursor;
+ class ReverseCursor;
+
StatusWith<RecordId> extractAndCheckLocForOplog(const char* data, int len) const;
RecordId allocateLoc();
@@ -191,68 +186,4 @@ namespace mongo {
Data* const _data;
};
- class InMemoryRecordIterator : public RecordIterator {
- public:
- InMemoryRecordIterator(OperationContext* txn,
- const InMemoryRecordStore::Records& records,
- const InMemoryRecordStore& rs,
- RecordId start = RecordId(),
- bool tailable = false);
-
- virtual bool isEOF();
-
- virtual RecordId curr();
-
- virtual RecordId getNext();
-
- virtual void invalidate(const RecordId& dl);
-
- virtual void saveState();
-
- virtual bool restoreState(OperationContext* txn);
-
- virtual RecordData dataFor( const RecordId& loc ) const;
-
- private:
- OperationContext* _txn; // not owned
- InMemoryRecordStore::Records::const_iterator _it;
- bool _tailable;
- RecordId _lastLoc; // only for restarting tailable
- bool _killedByInvalidate;
-
- const InMemoryRecordStore::Records& _records;
- const InMemoryRecordStore& _rs;
- };
-
- class InMemoryRecordReverseIterator : public RecordIterator {
- public:
- InMemoryRecordReverseIterator(OperationContext* txn,
- const InMemoryRecordStore::Records& records,
- const InMemoryRecordStore& rs,
- RecordId start = RecordId());
-
- virtual bool isEOF();
-
- virtual RecordId curr();
-
- virtual RecordId getNext();
-
- virtual void invalidate(const RecordId& dl);
-
- virtual void saveState();
-
- virtual bool restoreState(OperationContext* txn);
-
- virtual RecordData dataFor( const RecordId& loc ) const;
-
- private:
- OperationContext* _txn; // not owned
- InMemoryRecordStore::Records::const_reverse_iterator _it;
- bool _killedByInvalidate;
- RecordId _savedLoc; // isNull if saved at EOF
-
- const InMemoryRecordStore::Records& _records;
- const InMemoryRecordStore& _rs;
- };
-
} // namespace mongo