summaryrefslogtreecommitdiff
path: root/src/mongo/db/db_raii.h
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2018-01-27 10:25:43 -0500
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2018-02-02 15:38:47 -0500
commitb88f981042e73118d22a7ea1b2135d9ae2115d40 (patch)
tree4757c8a603a17f76f29892c3f210f0622c0e61a0 /src/mongo/db/db_raii.h
parented7af7cc923316749055d4be7486918d30ed8c59 (diff)
downloadmongo-b88f981042e73118d22a7ea1b2135d9ae2115d40.tar.gz
SERVER-32367 Pull UUID and view resolution out of db_raii
Diffstat (limited to 'src/mongo/db/db_raii.h')
-rw-r--r--src/mongo/db/db_raii.h27
1 files changed, 5 insertions, 22 deletions
diff --git a/src/mongo/db/db_raii.h b/src/mongo/db/db_raii.h
index c6201b4fafe..1be0cb541b3 100644
--- a/src/mongo/db/db_raii.h
+++ b/src/mongo/db/db_raii.h
@@ -82,44 +82,27 @@ class AutoGetCollectionForRead {
MONGO_DISALLOW_COPYING(AutoGetCollectionForRead);
public:
- AutoGetCollectionForRead(OperationContext* opCtx, const NamespaceString& nss)
- : AutoGetCollectionForRead(opCtx, nss, AutoGetCollection::ViewMode::kViewsForbidden) {}
+ AutoGetCollectionForRead(OperationContext* opCtx, const NamespaceString& nss);
AutoGetCollectionForRead(OperationContext* opCtx, const StringData dbName, const UUID& uuid);
- /**
- * This constructor is intended for internal use and should not be used outside this file.
- * AutoGetCollectionForReadCommand and AutoGetCollectionOrViewForReadCommand use 'viewMode' to
- * determine whether or not it is permissible to obtain a handle on a view namespace. Use
- * another constructor or another 'AutoGet' class instead.
- */
+ // TODO (SERVER-32367): Do not use this constructor, it is for internal purposes only
AutoGetCollectionForRead(OperationContext* opCtx,
- const NamespaceString& nss,
- AutoGetCollection::ViewMode viewMode);
-
- AutoGetCollectionForRead(OperationContext* opCtx,
- const NamespaceString& nss,
+ const NamespaceStringOrUUID& nsOrUUID,
AutoGetCollection::ViewMode viewMode,
Lock::DBLock lock);
Database* getDb() const {
- if (!_autoColl) {
- return nullptr;
- }
return _autoColl->getDb();
}
Collection* getCollection() const {
- if (!_autoColl) {
- return nullptr;
- }
return _autoColl->getCollection();
}
private:
- void _ensureMajorityCommittedSnapshotIsValid(OperationContext* opCtx,
- const NamespaceString& nss);
-
+ // This field is optional, because the code to wait for majority committed snapshot needs to
+ // release locks in order to block waiting
boost::optional<AutoGetCollection> _autoColl;
};