diff options
author | Andrew Morrow <acm@mongodb.com> | 2015-06-10 18:08:48 -0400 |
---|---|---|
committer | Andrew Morrow <acm@mongodb.com> | 2015-06-10 22:37:49 -0400 |
commit | d7d1fdb75966c684e9a42150e6e9b69c4a10ee08 (patch) | |
tree | d28b0767cbd8c1a09535f1676152e7ac57e829ce /src/mongo/db/exec | |
parent | a9b6612f5322f916298c19a6728817a1034c6aab (diff) | |
download | mongo-d7d1fdb75966c684e9a42150e6e9b69c4a10ee08.tar.gz |
SERVER-17308 Replace boost::scoped_ptr<T> with std::unique_ptr<T>
Diffstat (limited to 'src/mongo/db/exec')
25 files changed, 42 insertions, 65 deletions
diff --git a/src/mongo/db/exec/and_hash.h b/src/mongo/db/exec/and_hash.h index 1fe60234c85..a6acc353ac9 100644 --- a/src/mongo/db/exec/and_hash.h +++ b/src/mongo/db/exec/and_hash.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include <vector> #include "mongo/db/jsobj.h" diff --git a/src/mongo/db/exec/count.h b/src/mongo/db/exec/count.h index 13cf7de83a6..ff70f3b2170 100644 --- a/src/mongo/db/exec/count.h +++ b/src/mongo/db/exec/count.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" @@ -123,7 +122,7 @@ namespace mongo { // by us. WorkingSet* _ws; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; CommonStats _commonStats; CountStats _specificStats; diff --git a/src/mongo/db/exec/count_scan.h b/src/mongo/db/exec/count_scan.h index d04b2b89e8b..e63f672637d 100644 --- a/src/mongo/db/exec/count_scan.h +++ b/src/mongo/db/exec/count_scan.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/db/index/index_access_method.h" diff --git a/src/mongo/db/exec/delete.h b/src/mongo/db/exec/delete.h index c84d0e9bfd6..028cd086279 100644 --- a/src/mongo/db/exec/delete.h +++ b/src/mongo/db/exec/delete.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/db/jsobj.h" @@ -127,7 +126,7 @@ namespace mongo { // stage. Collection* _collection; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // If not WorkingSet::INVALID_ID, we use this rather than asking our child what to do next. WorkingSetID _idRetrying; diff --git a/src/mongo/db/exec/distinct_scan.h b/src/mongo/db/exec/distinct_scan.h index 8d7f0a8a18b..d87f5249535 100644 --- a/src/mongo/db/exec/distinct_scan.h +++ b/src/mongo/db/exec/distinct_scan.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/db/index/index_access_method.h" diff --git a/src/mongo/db/exec/geo_near.cpp b/src/mongo/db/exec/geo_near.cpp index 3755af02bb3..65d4428b3a8 100644 --- a/src/mongo/db/exec/geo_near.cpp +++ b/src/mongo/db/exec/geo_near.cpp @@ -47,12 +47,11 @@ #include "mongo/db/index/expression_params.h" #include "mongo/util/log.h" -#include <boost/scoped_ptr.hpp> #include <algorithm> namespace mongo { - using boost::scoped_ptr; + using std::unique_ptr; using std::abs; using std::unique_ptr; @@ -312,8 +311,8 @@ namespace mongo { const IndexDescriptor* _twoDIndex; // Not owned here. const GeoNearParams* _nearParams; // Not owned here. - scoped_ptr<IndexScan> _indexScan; - scoped_ptr<GeoHashConverter> _converter; + unique_ptr<IndexScan> _indexScan; + unique_ptr<GeoHashConverter> _converter; GeoHash _centroidCell; unsigned _currentLevel; }; @@ -624,7 +623,7 @@ namespace mongo { private: - const scoped_ptr<R2Region> _region; + const unique_ptr<R2Region> _region; const GeoHashConverter _unhasher; }; @@ -645,7 +644,7 @@ namespace mongo { private: // Owns matcher - const scoped_ptr<MatchExpression> _matcher; + const unique_ptr<MatchExpression> _matcher; }; // Helper class to maintain ownership of a match expression alongside an index scan @@ -666,7 +665,7 @@ namespace mongo { private: // Owns matcher - const scoped_ptr<MatchExpression> _matcher; + const unique_ptr<MatchExpression> _matcher; }; } @@ -1009,7 +1008,7 @@ namespace mongo { private: - const scoped_ptr<S2Region> _region; + const unique_ptr<S2Region> _region; }; } @@ -1046,7 +1045,7 @@ namespace mongo { const IndexDescriptor* _s2Index; // Not owned here. const GeoNearParams* _nearParams; // Not owned here. int _currentLevel; - scoped_ptr<IndexScan> _indexScan; + unique_ptr<IndexScan> _indexScan; }; // Setup the index scan stage for neighbors at this level. diff --git a/src/mongo/db/exec/geo_near.h b/src/mongo/db/exec/geo_near.h index af7352cbe47..52c28ed8303 100644 --- a/src/mongo/db/exec/geo_near.h +++ b/src/mongo/db/exec/geo_near.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/near.h" #include "mongo/db/exec/working_set.h" @@ -115,7 +114,7 @@ namespace mongo { double _boundsIncrement; class DensityEstimator; - boost::scoped_ptr<DensityEstimator> _densityEstimator; + std::unique_ptr<DensityEstimator> _densityEstimator; }; /** @@ -171,7 +170,7 @@ namespace mongo { double _boundsIncrement; class DensityEstimator; - boost::scoped_ptr<DensityEstimator> _densityEstimator; + std::unique_ptr<DensityEstimator> _densityEstimator; }; } // namespace mongo diff --git a/src/mongo/db/exec/group.h b/src/mongo/db/exec/group.h index 2b2e5bb3d04..b9f525b95bb 100644 --- a/src/mongo/db/exec/group.h +++ b/src/mongo/db/exec/group.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/scripting/engine.h" @@ -144,7 +143,7 @@ namespace mongo { CommonStats _commonStats; GroupStats _specificStats; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // Current state for this stage. GroupState _groupState; diff --git a/src/mongo/db/exec/index_scan.h b/src/mongo/db/exec/index_scan.h index 0a3c1436103..555b00c4beb 100644 --- a/src/mongo/db/exec/index_scan.h +++ b/src/mongo/db/exec/index_scan.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/db/index/index_access_method.h" @@ -167,7 +166,7 @@ namespace mongo { // In this case, _checker will be non-NULL. // - boost::scoped_ptr<IndexBoundsChecker> _checker; + std::unique_ptr<IndexBoundsChecker> _checker; IndexSeekPoint _seekPoint; // diff --git a/src/mongo/db/exec/keep_mutations.h b/src/mongo/db/exec/keep_mutations.h index a4c594a1f33..111d777d894 100644 --- a/src/mongo/db/exec/keep_mutations.h +++ b/src/mongo/db/exec/keep_mutations.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/jsobj.h" #include "mongo/db/exec/plan_stage.h" @@ -73,7 +72,7 @@ namespace mongo { // Not owned here. WorkingSet* _workingSet; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // Not owned here. Should be the full query expression tree. const MatchExpression* _filter; diff --git a/src/mongo/db/exec/limit.h b/src/mongo/db/exec/limit.h index 484df742439..f3f722fd1a1 100644 --- a/src/mongo/db/exec/limit.h +++ b/src/mongo/db/exec/limit.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/jsobj.h" #include "mongo/db/exec/plan_stage.h" @@ -69,7 +68,7 @@ namespace mongo { private: WorkingSet* _ws; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // We only return this many results. int _numToReturn; diff --git a/src/mongo/db/exec/multi_plan.h b/src/mongo/db/exec/multi_plan.h index d820324dfe8..189190163ca 100644 --- a/src/mongo/db/exec/multi_plan.h +++ b/src/mongo/db/exec/multi_plan.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/jsobj.h" #include "mongo/db/catalog/collection.h" @@ -223,7 +222,7 @@ namespace mongo { // to use to pull the record into memory. We take ownership of the RecordFetcher here, // deleting it after we've had a chance to do the fetch. For timing-based yields, we // just pass a NULL fetcher. - boost::scoped_ptr<RecordFetcher> _fetcher; + std::unique_ptr<RecordFetcher> _fetcher; // Stats CommonStats _commonStats; diff --git a/src/mongo/db/exec/near.h b/src/mongo/db/exec/near.h index a3db2c2b126..f21758617ac 100644 --- a/src/mongo/db/exec/near.h +++ b/src/mongo/db/exec/near.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include <queue> #include "mongo/base/string_data.h" @@ -193,14 +192,14 @@ namespace mongo { unordered_map<RecordId, WorkingSetID, RecordId::Hasher> _nextIntervalSeen; // Stats for the stage covering this interval - boost::scoped_ptr<IntervalStats> _nextIntervalStats; + std::unique_ptr<IntervalStats> _nextIntervalStats; // Sorted buffered results to be returned - the current interval struct SearchResult; std::priority_queue<SearchResult> _resultBuffer; // Stats - boost::scoped_ptr<PlanStageStats> _stats; + std::unique_ptr<PlanStageStats> _stats; // The current stage from which this stage should buffer results // Pointer to the last interval in _childrenIntervals. Owned by _childrenIntervals. @@ -225,7 +224,7 @@ namespace mongo { bool inclusiveMax); // Owned by NearStage - boost::scoped_ptr<PlanStage> const covering; + std::unique_ptr<PlanStage> const covering; const bool dedupCovering; const double minDistance; diff --git a/src/mongo/db/exec/oplogstart.h b/src/mongo/db/exec/oplogstart.h index 47850eafef8..d7da98f6833 100644 --- a/src/mongo/db/exec/oplogstart.h +++ b/src/mongo/db/exec/oplogstart.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/base/owned_pointer_vector.h" #include "mongo/db/exec/collection_scan.h" @@ -107,7 +106,7 @@ namespace mongo { OperationContext* _txn; // If we're backwards scanning we just punt to a collscan. - boost::scoped_ptr<CollectionScan> _cs; + std::unique_ptr<CollectionScan> _cs; // This is only used for the extent hopping scan. std::vector<std::unique_ptr<RecordCursor>> _subIterators; diff --git a/src/mongo/db/exec/plan_stats.h b/src/mongo/db/exec/plan_stats.h index a9d5a2ae187..2c5aafd1a95 100644 --- a/src/mongo/db/exec/plan_stats.h +++ b/src/mongo/db/exec/plan_stats.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include <cstdlib> #include <string> #include <vector> @@ -134,7 +133,7 @@ namespace mongo { CommonStats common; // Per-stage place to stash additional information - boost::scoped_ptr<SpecificStats> specific; + std::unique_ptr<SpecificStats> specific; // The stats of the node's children. std::vector<PlanStageStats*> children; diff --git a/src/mongo/db/exec/projection.h b/src/mongo/db/exec/projection.h index 6878861a997..d70967eebe1 100644 --- a/src/mongo/db/exec/projection.h +++ b/src/mongo/db/exec/projection.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/db/exec/projection_exec.h" @@ -124,11 +123,11 @@ namespace mongo { private: Status transform(WorkingSetMember* member); - boost::scoped_ptr<ProjectionExec> _exec; + std::unique_ptr<ProjectionExec> _exec; // _ws is not owned by us. WorkingSet* _ws; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // Stats CommonStats _commonStats; diff --git a/src/mongo/db/exec/shard_filter.h b/src/mongo/db/exec/shard_filter.h index f0b04ae9d4a..0703522b525 100644 --- a/src/mongo/db/exec/shard_filter.h +++ b/src/mongo/db/exec/shard_filter.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/db/jsobj.h" @@ -98,7 +97,7 @@ namespace mongo { private: WorkingSet* _ws; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // Stats CommonStats _commonStats; diff --git a/src/mongo/db/exec/skip.h b/src/mongo/db/exec/skip.h index ff3982a415c..77bdd5786a5 100644 --- a/src/mongo/db/exec/skip.h +++ b/src/mongo/db/exec/skip.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/plan_stage.h" #include "mongo/db/jsobj.h" @@ -68,7 +67,7 @@ namespace mongo { private: WorkingSet* _ws; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // We drop the first _toSkip results that we would have returned. int _toSkip; diff --git a/src/mongo/db/exec/sort.h b/src/mongo/db/exec/sort.h index 2255a5ce82c..692b4b3b4cb 100644 --- a/src/mongo/db/exec/sort.h +++ b/src/mongo/db/exec/sort.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include <vector> #include <set> @@ -128,10 +127,10 @@ namespace mongo { IndexBounds _bounds; // Helper to extract sorting keys from documents. - boost::scoped_ptr<BtreeKeyGenerator> _keyGen; + std::unique_ptr<BtreeKeyGenerator> _keyGen; // Helper to filter keys, ensuring keys generated with _keyGen are within _bounds. - boost::scoped_ptr<IndexBoundsChecker> _boundsChecker; + std::unique_ptr<IndexBoundsChecker> _boundsChecker; }; /** @@ -180,7 +179,7 @@ namespace mongo { WorkingSet* _ws; // Where we're reading data to sort from. - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // The raw sort _pattern as expressed by the user BSONObj _pattern; @@ -194,7 +193,7 @@ namespace mongo { // // Sort key generation // - boost::scoped_ptr<SortStageKeyGenerator> _sortKeyGen; + std::unique_ptr<SortStageKeyGenerator> _sortKeyGen; // // Data storage @@ -242,7 +241,7 @@ namespace mongo { // Comparator for data buffer // Initialization follows sort key generator - boost::scoped_ptr<WorkingSetComparator> _sortKeyComparator; + std::unique_ptr<WorkingSetComparator> _sortKeyComparator; // The data we buffer and sort. // _data will contain sorted data when all data is gathered @@ -253,7 +252,7 @@ namespace mongo { // be used to provide the results of this stage through _resultIterator. std::vector<SortableDataItem> _data; typedef std::set<SortableDataItem, WorkingSetComparator> SortableDataItemSet; - boost::scoped_ptr<SortableDataItemSet> _dataSet; + std::unique_ptr<SortableDataItemSet> _dataSet; // Iterates through _data post-sort returning it. std::vector<SortableDataItem>::iterator _resultIterator; diff --git a/src/mongo/db/exec/stagedebug_cmd.cpp b/src/mongo/db/exec/stagedebug_cmd.cpp index c3b59a84de2..fe600dcfb7c 100644 --- a/src/mongo/db/exec/stagedebug_cmd.cpp +++ b/src/mongo/db/exec/stagedebug_cmd.cpp @@ -166,7 +166,7 @@ namespace mongo { Status execStatus = PlanExecutor::make(txn, ws.release(), rootFetch, collection, PlanExecutor::YIELD_AUTO, &rawExec); fassert(28536, execStatus); - boost::scoped_ptr<PlanExecutor> exec(rawExec); + std::unique_ptr<PlanExecutor> exec(rawExec); BSONArrayBuilder resultBuilder(result.subarrayStart("results")); diff --git a/src/mongo/db/exec/subplan.cpp b/src/mongo/db/exec/subplan.cpp index 386d72eb539..0c64aa7b178 100644 --- a/src/mongo/db/exec/subplan.cpp +++ b/src/mongo/db/exec/subplan.cpp @@ -62,7 +62,7 @@ namespace mongo { _ws(ws), _plannerParams(params), _query(cq), - _child(NULL), + _child(nullptr), _commonStats(kStageType) { invariant(_collection); } diff --git a/src/mongo/db/exec/subplan.h b/src/mongo/db/exec/subplan.h index 8de399a4983..f46a25b3bc8 100644 --- a/src/mongo/db/exec/subplan.h +++ b/src/mongo/db/exec/subplan.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include <string> #include "mongo/base/owned_pointer_vector.h" @@ -129,13 +128,13 @@ namespace mongo { BranchPlanningResult() { } // A parsed version of one branch of the $or. - boost::scoped_ptr<CanonicalQuery> canonicalQuery; + std::unique_ptr<CanonicalQuery> canonicalQuery; // If there is cache data available, then we store it here rather than generating // a set of alternate plans for the branch. The index tags from the cache data // can be applied directly to the parent $or MatchExpression when generating the // composite solution. - boost::scoped_ptr<CachedSolution> cachedSolution; + std::unique_ptr<CachedSolution> cachedSolution; // Query solutions resulting from planning the $or branch. OwnedPointerVector<QuerySolution> solutions; @@ -180,9 +179,9 @@ namespace mongo { // If we successfully create a "composite solution" by planning each $or branch // independently, that solution is owned here. - boost::scoped_ptr<QuerySolution> _compositeSolution; + std::unique_ptr<QuerySolution> _compositeSolution; - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // Holds a list of the results from planning each branch. OwnedPointerVector<BranchPlanningResult> _branchResults; diff --git a/src/mongo/db/exec/update.h b/src/mongo/db/exec/update.h index c1a9372eae9..8460846aca1 100644 --- a/src/mongo/db/exec/update.h +++ b/src/mongo/db/exec/update.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include "mongo/db/catalog/collection.h" #include "mongo/db/exec/plan_stage.h" @@ -187,7 +186,7 @@ namespace mongo { Collection* _collection; // Owned by us. - boost::scoped_ptr<PlanStage> _child; + std::unique_ptr<PlanStage> _child; // If not WorkingSet::INVALID_ID, we use this rather than asking our child what to do next. WorkingSetID _idRetrying; @@ -212,7 +211,7 @@ namespace mongo { // // So, no matter what, we keep track of where the doc wound up. typedef unordered_set<RecordId, RecordId::Hasher> DiskLocSet; - const boost::scoped_ptr<DiskLocSet> _updatedLocs; + const std::unique_ptr<DiskLocSet> _updatedLocs; // These get reused for each update. mutablebson::Document& _doc; diff --git a/src/mongo/db/exec/working_set.h b/src/mongo/db/exec/working_set.h index d251f95d5c4..ac23c2cf667 100644 --- a/src/mongo/db/exec/working_set.h +++ b/src/mongo/db/exec/working_set.h @@ -28,7 +28,6 @@ #pragma once -#include <boost/scoped_ptr.hpp> #include <vector> #include "mongo/base/disallow_copying.h" @@ -338,7 +337,7 @@ namespace mongo { size_t getMemUsage() const; private: - boost::scoped_ptr<WorkingSetComputedData> _computed[WSM_COMPUTED_NUM_TYPES]; + std::unique_ptr<WorkingSetComputedData> _computed[WSM_COMPUTED_NUM_TYPES]; std::unique_ptr<RecordFetcher> _fetcher; }; diff --git a/src/mongo/db/exec/working_set_test.cpp b/src/mongo/db/exec/working_set_test.cpp index 01bd2a880c8..d4d7163831b 100644 --- a/src/mongo/db/exec/working_set_test.cpp +++ b/src/mongo/db/exec/working_set_test.cpp @@ -30,7 +30,6 @@ * This file contains tests for mongo/db/exec/working_set.cpp */ -#include <boost/scoped_ptr.hpp> #include "mongo/db/exec/working_set.h" #include "mongo/db/json.h" @@ -59,7 +58,7 @@ namespace { member = NULL; } - boost::scoped_ptr<WorkingSet> ws; + std::unique_ptr<WorkingSet> ws; WorkingSetMember* member; }; |