diff options
author | Leon Zaruvinsky <leon@mongodb.com> | 2016-06-22 17:34:05 -0400 |
---|---|---|
committer | Leon Zaruvinsky <leon@mongodb.com> | 2016-07-07 17:44:19 -0400 |
commit | abaa59f3990f42aadba3b04e32dabbf3c1e47ce3 (patch) | |
tree | bf88ab49e7ec53cea70626b83e8020db75631389 /src/mongo/db/s/metadata_manager.h | |
parent | 419a2e4eaf791a8d217050dbf0ca63149f261e0f (diff) | |
download | mongo-abaa59f3990f42aadba3b04e32dabbf3c1e47ce3.tar.gz |
SERVER-24415 Replace instances of shared_ptr<CollectionMetadata> with ScopedCollectionMetadata
Diffstat (limited to 'src/mongo/db/s/metadata_manager.h')
-rw-r--r-- | src/mongo/db/s/metadata_manager.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mongo/db/s/metadata_manager.h b/src/mongo/db/s/metadata_manager.h index 73f91f7e44f..04135cef840 100644 --- a/src/mongo/db/s/metadata_manager.h +++ b/src/mongo/db/s/metadata_manager.h @@ -123,6 +123,12 @@ class ScopedCollectionMetadata { public: /** + * Creates an empty ScopedCollectionMetadata. Using the default constructor means that no + * metadata is available. + */ + ScopedCollectionMetadata(); + + /** * Decrements the usageCounter and conditionally makes a call to _removeMetadata on * the tracker if the count has reached zero. */ @@ -137,6 +143,9 @@ public: CollectionMetadata* operator->(); CollectionMetadata* getMetadata(); + /** True if the ScopedCollectionMetadata stores a metadata (is not empty) */ + operator bool() const; + private: friend ScopedCollectionMetadata MetadataManager::getActiveMetadata(); @@ -146,8 +155,8 @@ private: ScopedCollectionMetadata(MetadataManager* manager, MetadataManager::CollectionMetadataTracker* tracker); - MetadataManager* _manager; - MetadataManager::CollectionMetadataTracker* _tracker; + MetadataManager* _manager{nullptr}; + MetadataManager::CollectionMetadataTracker* _tracker{nullptr}; }; } // namespace mongo |