diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2018-01-27 10:25:43 -0500 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2018-02-02 15:38:47 -0500 |
commit | b88f981042e73118d22a7ea1b2135d9ae2115d40 (patch) | |
tree | 4757c8a603a17f76f29892c3f210f0622c0e61a0 /src/mongo/db/db_raii.h | |
parent | ed7af7cc923316749055d4be7486918d30ed8c59 (diff) | |
download | mongo-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.h | 27 |
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; }; |