summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/base/owned_pointer_vector_test.cpp4
-rw-r--r--src/mongo/bson/json.cpp7
-rw-r--r--src/mongo/bson/mutable/document.cpp3
-rw-r--r--src/mongo/bson/mutable/document.h3
-rw-r--r--src/mongo/bson/oid.cpp7
-rw-r--r--src/mongo/client/dbclient_rs.h3
-rw-r--r--src/mongo/client/dbclient_rs_test.cpp13
-rw-r--r--src/mongo/client/dbclientinterface.h5
-rw-r--r--src/mongo/client/native_sasl_client_session.cpp2
-rw-r--r--src/mongo/client/native_sasl_client_session.h3
-rw-r--r--src/mongo/client/parallel.h5
-rw-r--r--src/mongo/client/sasl_client_authenticate_impl.cpp3
-rw-r--r--src/mongo/client/sasl_scramsha1_client_conversation.cpp5
-rw-r--r--src/mongo/client/scoped_db_conn_test.cpp3
-rw-r--r--src/mongo/client/syncclusterconnection.h3
-rw-r--r--src/mongo/crypto/mechanism_scram.cpp5
-rw-r--r--src/mongo/db/auth/authz_manager_external_state_mock.cpp2
-rw-r--r--src/mongo/db/auth/native_sasl_authentication_session.cpp5
-rw-r--r--src/mongo/db/auth/native_sasl_authentication_session.h3
-rw-r--r--src/mongo/db/auth/role_name.h5
-rw-r--r--src/mongo/db/auth/sasl_commands.cpp1
-rw-r--r--src/mongo/db/auth/sasl_scramsha1_server_conversation.cpp5
-rw-r--r--src/mongo/db/auth/sasl_scramsha1_server_conversation.h1
-rw-r--r--src/mongo/db/auth/user_document_parser_test.cpp11
-rw-r--r--src/mongo/db/auth/user_name.h6
-rw-r--r--src/mongo/db/auth/user_set_test.cpp8
-rw-r--r--src/mongo/db/catalog/capped_utils.cpp2
-rw-r--r--src/mongo/db/catalog/collection.cpp7
-rw-r--r--src/mongo/db/catalog/collection_info_cache.h5
-rw-r--r--src/mongo/db/catalog/cursor_manager.cpp6
-rw-r--r--src/mongo/db/catalog/cursor_manager.h3
-rw-r--r--src/mongo/db/catalog/index_catalog_entry.cpp2
-rw-r--r--src/mongo/db/catalog/index_catalog_entry.h2
-rw-r--r--src/mongo/db/catalog/index_create.cpp5
-rw-r--r--src/mongo/db/client.h1
-rw-r--r--src/mongo/db/client_basic.h1
-rw-r--r--src/mongo/db/clientcursor.h3
-rw-r--r--src/mongo/db/clientlistplugin.cpp5
-rw-r--r--src/mongo/db/cloner.cpp7
-rw-r--r--src/mongo/db/commands/authentication_commands.cpp3
-rw-r--r--src/mongo/db/commands/collection_to_capped.cpp3
-rw-r--r--src/mongo/db/commands/count_cmd.cpp7
-rw-r--r--src/mongo/db/commands/dbhash.cpp3
-rw-r--r--src/mongo/db/commands/geo_near_cmd.cpp5
-rw-r--r--src/mongo/db/commands/group.cpp7
-rw-r--r--src/mongo/db/commands/index_filter_commands.cpp9
-rw-r--r--src/mongo/db/commands/index_filter_commands_test.cpp9
-rw-r--r--src/mongo/db/commands/list_collections.cpp5
-rw-r--r--src/mongo/db/commands/mr.cpp15
-rw-r--r--src/mongo/db/commands/mr.h11
-rw-r--r--src/mongo/db/commands/pipeline_command.cpp5
-rw-r--r--src/mongo/db/commands/plan_cache_commands.cpp11
-rw-r--r--src/mongo/db/commands/plan_cache_commands_test.cpp15
-rw-r--r--src/mongo/db/commands/test_commands.cpp2
-rw-r--r--src/mongo/db/commands/write_commands/batch_executor.cpp7
-rw-r--r--src/mongo/db/commands/write_commands/batch_executor.h3
-rw-r--r--src/mongo/db/commands/write_commands/write_commands.cpp4
-rw-r--r--src/mongo/db/concurrency/d_concurrency.h1
-rw-r--r--src/mongo/db/concurrency/lock_manager_test.cpp2
-rw-r--r--src/mongo/db/concurrency/lock_stats.cpp10
-rw-r--r--src/mongo/db/dbcommands.cpp7
-rw-r--r--src/mongo/db/dbeval.cpp4
-rw-r--r--src/mongo/db/dbwebserver.h2
-rw-r--r--src/mongo/db/exec/and_hash.h1
-rw-r--r--src/mongo/db/exec/count.h3
-rw-r--r--src/mongo/db/exec/count_scan.h1
-rw-r--r--src/mongo/db/exec/delete.h3
-rw-r--r--src/mongo/db/exec/distinct_scan.h1
-rw-r--r--src/mongo/db/exec/geo_near.cpp17
-rw-r--r--src/mongo/db/exec/geo_near.h5
-rw-r--r--src/mongo/db/exec/group.h3
-rw-r--r--src/mongo/db/exec/index_scan.h3
-rw-r--r--src/mongo/db/exec/keep_mutations.h3
-rw-r--r--src/mongo/db/exec/limit.h3
-rw-r--r--src/mongo/db/exec/multi_plan.h3
-rw-r--r--src/mongo/db/exec/near.h7
-rw-r--r--src/mongo/db/exec/oplogstart.h3
-rw-r--r--src/mongo/db/exec/plan_stats.h3
-rw-r--r--src/mongo/db/exec/projection.h5
-rw-r--r--src/mongo/db/exec/shard_filter.h3
-rw-r--r--src/mongo/db/exec/skip.h3
-rw-r--r--src/mongo/db/exec/sort.h13
-rw-r--r--src/mongo/db/exec/stagedebug_cmd.cpp2
-rw-r--r--src/mongo/db/exec/subplan.cpp2
-rw-r--r--src/mongo/db/exec/subplan.h9
-rw-r--r--src/mongo/db/exec/update.h5
-rw-r--r--src/mongo/db/exec/working_set.h3
-rw-r--r--src/mongo/db/exec/working_set_test.cpp3
-rw-r--r--src/mongo/db/geo/big_polygon.cpp3
-rw-r--r--src/mongo/db/geo/big_polygon.h7
-rw-r--r--src/mongo/db/geo/geometry_container.h23
-rw-r--r--src/mongo/db/geo/r2_region_coverer.h5
-rw-r--r--src/mongo/db/geo/shapes.h11
-rw-r--r--src/mongo/db/hasher.cpp5
-rw-r--r--src/mongo/db/index/btree_access_method.h3
-rw-r--r--src/mongo/db/index/btree_key_generator_test.cpp5
-rw-r--r--src/mongo/db/index/haystack_access_method.cpp5
-rw-r--r--src/mongo/db/instance.cpp13
-rw-r--r--src/mongo/db/introspect.cpp4
-rw-r--r--src/mongo/db/matcher/expression.h3
-rw-r--r--src/mongo/db/matcher/expression_array.h2
-rw-r--r--src/mongo/db/matcher/expression_geo.cpp2
-rw-r--r--src/mongo/db/matcher/expression_geo.h4
-rw-r--r--src/mongo/db/matcher/expression_leaf.h3
-rw-r--r--src/mongo/db/matcher/expression_parser_array_test.cpp2
-rw-r--r--src/mongo/db/matcher/expression_parser_geo_test.cpp4
-rw-r--r--src/mongo/db/matcher/expression_parser_leaf_test.cpp50
-rw-r--r--src/mongo/db/matcher/expression_parser_text_test.cpp6
-rw-r--r--src/mongo/db/matcher/expression_tree.h1
-rw-r--r--src/mongo/db/matcher/match_details.h5
-rw-r--r--src/mongo/db/matcher/matcher.h3
-rw-r--r--src/mongo/db/matcher/path.h7
-rw-r--r--src/mongo/db/operation_context_impl.h1
-rw-r--r--src/mongo/db/operation_context_noop.h3
-rw-r--r--src/mongo/db/ops/delete.cpp2
-rw-r--r--src/mongo/db/ops/modifier_add_to_set.h3
-rw-r--r--src/mongo/db/ops/modifier_bit.h3
-rw-r--r--src/mongo/db/ops/modifier_compare.h3
-rw-r--r--src/mongo/db/ops/modifier_current_date.h3
-rw-r--r--src/mongo/db/ops/modifier_inc.h3
-rw-r--r--src/mongo/db/ops/modifier_object_replace.h3
-rw-r--r--src/mongo/db/ops/modifier_pop.h3
-rw-r--r--src/mongo/db/ops/modifier_pull.h5
-rw-r--r--src/mongo/db/ops/modifier_pull_all.h3
-rw-r--r--src/mongo/db/ops/modifier_push.h3
-rw-r--r--src/mongo/db/ops/modifier_rename.h3
-rw-r--r--src/mongo/db/ops/modifier_set.h3
-rw-r--r--src/mongo/db/ops/modifier_unset.h3
-rw-r--r--src/mongo/db/ops/update.cpp2
-rw-r--r--src/mongo/db/ops/update_driver.cpp9
-rw-r--r--src/mongo/db/ops/update_driver_test.cpp5
-rw-r--r--src/mongo/db/pipeline/document_source.h23
-rw-r--r--src/mongo/db/pipeline/document_source_sort.cpp5
-rw-r--r--src/mongo/db/query/canonical_query.h7
-rw-r--r--src/mongo/db/query/explain.cpp7
-rw-r--r--src/mongo/db/query/find.cpp11
-rw-r--r--src/mongo/db/query/get_executor.cpp4
-rw-r--r--src/mongo/db/query/lite_parsed_query_test.cpp33
-rw-r--r--src/mongo/db/query/parsed_projection_test.cpp8
-rw-r--r--src/mongo/db/query/plan_cache.h13
-rw-r--r--src/mongo/db/query/plan_cache_test.cpp7
-rw-r--r--src/mongo/db/query/plan_enumerator.h9
-rw-r--r--src/mongo/db/query/plan_executor.cpp2
-rw-r--r--src/mongo/db/query/plan_executor.h13
-rw-r--r--src/mongo/db/query/query_planner.cpp2
-rw-r--r--src/mongo/db/query/query_planner_test.cpp6
-rw-r--r--src/mongo/db/query/query_planner_test_lib.cpp4
-rw-r--r--src/mongo/db/query/query_solution.h7
-rw-r--r--src/mongo/db/range_deleter.h5
-rw-r--r--src/mongo/db/range_deleter_test.cpp12
-rw-r--r--src/mongo/db/range_preserver.h3
-rw-r--r--src/mongo/db/repair_database.cpp5
-rw-r--r--src/mongo/db/repl/check_quorum_for_config_change_test.cpp7
-rw-r--r--src/mongo/db/repl/data_replicator_test.cpp4
-rw-r--r--src/mongo/db/repl/elect_cmd_runner.h5
-rw-r--r--src/mongo/db/repl/elect_cmd_runner_test.cpp9
-rw-r--r--src/mongo/db/repl/election_winner_declarer.h5
-rw-r--r--src/mongo/db/repl/election_winner_declarer_test.cpp5
-rw-r--r--src/mongo/db/repl/freshness_checker.h5
-rw-r--r--src/mongo/db/repl/freshness_checker_test.cpp11
-rw-r--r--src/mongo/db/repl/master_slave.cpp7
-rw-r--r--src/mongo/db/repl/operation_context_repl_mock.h1
-rw-r--r--src/mongo/db/repl/repl_set_heartbeat_response_test.cpp3
-rw-r--r--src/mongo/db/repl/replication_coordinator_external_state.h1
-rw-r--r--src/mongo/db/repl/replication_coordinator_external_state_impl.h7
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.cpp4
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.h11
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl_elect.cpp8
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl_test.cpp5
-rw-r--r--src/mongo/db/repl/replication_coordinator_test_fixture.h3
-rw-r--r--src/mongo/db/repl/replication_executor.h4
-rw-r--r--src/mongo/db/repl/replication_executor_test.cpp1
-rw-r--r--src/mongo/db/repl/replication_executor_test_fixture.h1
-rw-r--r--src/mongo/db/repl/replication_info.cpp1
-rw-r--r--src/mongo/db/repl/rs_rollback.cpp2
-rw-r--r--src/mongo/db/repl/scatter_gather_test.cpp7
-rw-r--r--src/mongo/db/repl/sync_source_feedback.h3
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl_test.cpp7
-rw-r--r--src/mongo/db/service_context.cpp4
-rw-r--r--src/mongo/db/service_context_d.h3
-rw-r--r--src/mongo/db/sorter/sorter.cpp2
-rw-r--r--src/mongo/db/storage/in_memory/in_memory_engine_test.cpp2
-rw-r--r--src/mongo/db/storage/kv/kv_catalog.cpp15
-rw-r--r--src/mongo/db/storage/kv/kv_catalog.h1
-rw-r--r--src/mongo/db/storage/kv/kv_collection_catalog_entry.h2
-rw-r--r--src/mongo/db/storage/kv/kv_engine_test_harness.cpp47
-rw-r--r--src/mongo/db/storage/kv/kv_storage_engine.h7
-rw-r--r--src/mongo/db/storage/mmap_v1/btree/btree_interface.cpp7
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp3
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_index.cpp2
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_index.h3
-rw-r--r--src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp3
-rw-r--r--src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.h5
-rw-r--r--src/mongo/db/storage/mmap_v1/mmap_v1_extent_manager.cpp2
-rw-r--r--src/mongo/db/storage/mmap_v1/mmap_v1_init_test.cpp3
-rw-r--r--src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp3
-rw-r--r--src/mongo/db/storage/mmap_v1/record_store_v1_base.h3
-rw-r--r--src/mongo/db/storage/mmap_v1/repair_database.cpp9
-rw-r--r--src/mongo/db/storage/record_store_test_datafor.cpp27
-rw-r--r--src/mongo/db/storage/record_store_test_datasize.cpp23
-rw-r--r--src/mongo/db/storage/record_store_test_deleterecord.cpp31
-rw-r--r--src/mongo/db/storage/record_store_test_harness.cpp103
-rw-r--r--src/mongo/db/storage/record_store_test_insertrecord.cpp43
-rw-r--r--src/mongo/db/storage/record_store_test_manyiter.cpp23
-rw-r--r--src/mongo/db/storage/record_store_test_recorditer.cpp75
-rw-r--r--src/mongo/db/storage/record_store_test_recordstore.cpp15
-rw-r--r--src/mongo/db/storage/record_store_test_repairiter.cpp35
-rw-r--r--src/mongo/db/storage/record_store_test_storagesize.cpp15
-rw-r--r--src/mongo/db/storage/record_store_test_touch.cpp43
-rw-r--r--src/mongo/db/storage/record_store_test_truncate.cpp27
-rw-r--r--src/mongo/db/storage/record_store_test_updaterecord.cpp45
-rw-r--r--src/mongo/db/storage/record_store_test_updatewithdamages.cpp59
-rw-r--r--src/mongo/db/storage/record_store_test_validate.cpp43
-rw-r--r--src/mongo/db/storage/record_store_test_validate.h11
-rw-r--r--src/mongo/db/storage/storage_engine_lock_file.h4
-rw-r--r--src/mongo/db/storage/storage_engine_lock_file_test.cpp1
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_index_test.cpp1
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_init_test.cpp3
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h5
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp2
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp3
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store.h1
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp153
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.h1
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp2
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_util_test.cpp5
-rw-r--r--src/mongo/dbtests/basictests.cpp3
-rw-r--r--src/mongo/dbtests/config_server_fixture.cpp5
-rw-r--r--src/mongo/dbtests/indexupdatetests.cpp5
-rw-r--r--src/mongo/dbtests/jstests.cpp17
-rw-r--r--src/mongo/dbtests/mock/mock_conn_registry.cpp2
-rw-r--r--src/mongo/dbtests/mock/mock_conn_registry.h3
-rw-r--r--src/mongo/dbtests/mock/mock_dbclient_cursor.h3
-rw-r--r--src/mongo/dbtests/mock_dbclient_conn_test.cpp1
-rw-r--r--src/mongo/dbtests/oplogstarttests.cpp9
-rw-r--r--src/mongo/dbtests/plan_ranking.cpp43
-rw-r--r--src/mongo/dbtests/query_multi_plan_runner.cpp11
-rw-r--r--src/mongo/dbtests/query_plan_executor.cpp13
-rw-r--r--src/mongo/dbtests/query_stage_and.cpp43
-rw-r--r--src/mongo/dbtests/query_stage_collscan.cpp15
-rw-r--r--src/mongo/dbtests/query_stage_count.cpp5
-rw-r--r--src/mongo/dbtests/query_stage_delete.cpp5
-rw-r--r--src/mongo/dbtests/query_stage_ixscan.cpp8
-rw-r--r--src/mongo/dbtests/query_stage_limit_skip.cpp7
-rw-r--r--src/mongo/dbtests/query_stage_merge_sort.cpp12
-rw-r--r--src/mongo/dbtests/query_stage_sort.cpp4
-rw-r--r--src/mongo/dbtests/query_stage_subplan.cpp8
-rw-r--r--src/mongo/dbtests/query_stage_tests.cpp2
-rw-r--r--src/mongo/dbtests/query_stage_update.cpp19
-rw-r--r--src/mongo/dbtests/replica_set_monitor_test.cpp7
-rw-r--r--src/mongo/dbtests/rollbacktests.cpp3
-rw-r--r--src/mongo/logger/console_appender.h3
-rw-r--r--src/mongo/logger/log_domain.h1
-rw-r--r--src/mongo/logger/message_log_domain.h1
-rw-r--r--src/mongo/logger/rotatable_file_appender.h3
-rw-r--r--src/mongo/logger/rotatable_file_writer.cpp6
-rw-r--r--src/mongo/logger/rotatable_file_writer.h3
-rw-r--r--src/mongo/logger/syslog_appender.h3
-rw-r--r--src/mongo/s/balance.cpp3
-rw-r--r--src/mongo/s/balance.h3
-rw-r--r--src/mongo/s/catalog/legacy/cluster_client_internal.cpp9
-rw-r--r--src/mongo/s/catalog/legacy/config_upgrade.cpp5
-rw-r--r--src/mongo/s/catalog/legacy/config_upgrade_helpers.cpp3
-rw-r--r--src/mongo/s/catalog/legacy/distlock.cpp7
-rw-r--r--src/mongo/s/chunk_manager.cpp2
-rw-r--r--src/mongo/s/client/dbclient_multi_command.cpp5
-rw-r--r--src/mongo/s/client/multi_host_query_test.cpp9
-rw-r--r--src/mongo/s/client/shard_connection_test.cpp1
-rw-r--r--src/mongo/s/cluster_write.h5
-rw-r--r--src/mongo/s/collection_metadata_test.cpp83
-rw-r--r--src/mongo/s/commands/cluster_list_databases_cmd.cpp7
-rw-r--r--src/mongo/s/commands/cluster_move_chunk_cmd.cpp5
-rw-r--r--src/mongo/s/commands/cluster_pipeline_cmd.cpp3
-rw-r--r--src/mongo/s/commands/commands_public.cpp3
-rw-r--r--src/mongo/s/config.cpp3
-rw-r--r--src/mongo/s/cursors.cpp5
-rw-r--r--src/mongo/s/metadata_loader_test.cpp25
-rw-r--r--src/mongo/s/shard_key_pattern.cpp5
-rw-r--r--src/mongo/s/strategy.cpp5
-rw-r--r--src/mongo/s/write_ops/batch_upconvert.cpp5
-rw-r--r--src/mongo/s/write_ops/batch_write_exec.h1
-rw-r--r--src/mongo/s/write_ops/batch_write_exec_test.cpp5
-rw-r--r--src/mongo/s/write_ops/batch_write_op.h3
-rw-r--r--src/mongo/s/write_ops/batched_command_request.h7
-rw-r--r--src/mongo/s/write_ops/batched_command_response.h7
-rw-r--r--src/mongo/s/write_ops/batched_delete_request.h3
-rw-r--r--src/mongo/s/write_ops/batched_insert_request.h3
-rw-r--r--src/mongo/s/write_ops/batched_request_metadata.cpp2
-rw-r--r--src/mongo/s/write_ops/batched_request_metadata.h3
-rw-r--r--src/mongo/s/write_ops/batched_update_request.h3
-rw-r--r--src/mongo/s/write_ops/write_op.h7
-rw-r--r--src/mongo/s/write_ops/write_op_test.cpp9
-rw-r--r--src/mongo/scripting/bson_template_evaluator_test.cpp2
-rw-r--r--src/mongo/scripting/engine.cpp5
-rw-r--r--src/mongo/scripting/engine_v8-3.25.h3
-rw-r--r--src/mongo/scripting/v8-3.25_utils.cpp7
-rw-r--r--src/mongo/scripting/v8_db.cpp2
-rw-r--r--src/mongo/scripting/v8_utils.cpp7
-rw-r--r--src/mongo/shell/bench.cpp6
-rw-r--r--src/mongo/shell/bench.h3
-rw-r--r--src/mongo/shell/shell_utils.cpp2
-rw-r--r--src/mongo/unittest/unittest.h1
-rw-r--r--src/mongo/util/background.h4
-rw-r--r--src/mongo/util/fail_point.cpp3
-rw-r--r--src/mongo/util/fail_point_service.cpp5
-rw-r--r--src/mongo/util/net/message_server_port.cpp5
-rw-r--r--src/mongo/util/net/sock.h3
-rw-r--r--src/mongo/util/unowned_ptr.h4
-rw-r--r--src/mongo/util/unowned_ptr_test.cpp6
309 files changed, 1124 insertions, 1375 deletions
diff --git a/src/mongo/base/owned_pointer_vector_test.cpp b/src/mongo/base/owned_pointer_vector_test.cpp
index ad00dad0ec0..3684da00c7e 100644
--- a/src/mongo/base/owned_pointer_vector_test.cpp
+++ b/src/mongo/base/owned_pointer_vector_test.cpp
@@ -272,7 +272,7 @@ namespace {
TEST(OwnedPointerVectorTest, ReleaseAt) {
DestructionLogger::destroyedNames().clear();
- boost::scoped_ptr<DestructionLogger> holder;
+ std::unique_ptr<DestructionLogger> holder;
{
// names are order of deletion
OwnedPointerVector<DestructionLogger> owned;
@@ -315,7 +315,7 @@ namespace {
{
// transfer ownership of "third" to holder
- boost::scoped_ptr<DestructionLogger> holder(owned.popAndReleaseBack());
+ std::unique_ptr<DestructionLogger> holder(owned.popAndReleaseBack());
ASSERT_EQUALS( 0U, DestructionLogger::destroyedNames().size() );
ASSERT_EQUALS( 2U, owned.size() );
// holder destroyed
diff --git a/src/mongo/bson/json.cpp b/src/mongo/bson/json.cpp
index 3bf5c531cd0..961033570da 100644
--- a/src/mongo/bson/json.cpp
+++ b/src/mongo/bson/json.cpp
@@ -29,7 +29,6 @@
#include "mongo/bson/json.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/parse_number.h"
#include "mongo/db/jsobj.h"
@@ -43,7 +42,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::ostringstream;
using std::string;
@@ -325,7 +324,7 @@ namespace mongo {
// Only create a sub builder if this is not the base object
BSONObjBuilder* objBuilder = &builder;
- scoped_ptr<BSONObjBuilder> subObjBuilder;
+ unique_ptr<BSONObjBuilder> subObjBuilder;
if (subObject) {
subObjBuilder.reset(new BSONObjBuilder(builder.subobjStart(fieldName)));
objBuilder = subObjBuilder.get();
@@ -710,7 +709,7 @@ namespace mongo {
}
BSONObjBuilder* arrayBuilder = &builder;
- scoped_ptr<BSONObjBuilder> subObjBuilder;
+ unique_ptr<BSONObjBuilder> subObjBuilder;
if (subObject) {
subObjBuilder.reset(new BSONObjBuilder(builder.subarrayStart(fieldName)));
arrayBuilder = subObjBuilder.get();
diff --git a/src/mongo/bson/mutable/document.cpp b/src/mongo/bson/mutable/document.cpp
index db7fa0bec5e..ddff3e694f2 100644
--- a/src/mongo/bson/mutable/document.cpp
+++ b/src/mongo/bson/mutable/document.cpp
@@ -29,7 +29,6 @@
#include "mongo/bson/mutable/document.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/static_assert.hpp>
#include <cstdlib>
#include <cstring>
@@ -2651,7 +2650,7 @@ namespace mutablebson {
}
inline Document::Impl& Document::getImpl() {
- // Don't use scoped_ptr<Impl>::operator* since it may generate assertions that the
+ // Don't use unique_ptr<Impl>::operator* since it may generate assertions that the
// pointer is non-null, but we already know that to be always and forever true, and
// otherwise the assertion code gets spammed into every method that inlines the call to
// this function. We just dereference the pointer returned from 'get' ourselves.
diff --git a/src/mongo/bson/mutable/document.h b/src/mongo/bson/mutable/document.h
index 2abfc1ca527..9655daddfab 100644
--- a/src/mongo/bson/mutable/document.h
+++ b/src/mongo/bson/mutable/document.h
@@ -27,7 +27,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/string_data.h"
@@ -509,7 +508,7 @@ namespace mutablebson {
Element makeRootElement(const BSONObj& value);
Element makeElement(ConstElement element, const StringData* fieldName);
- const boost::scoped_ptr<Impl> _impl;
+ const std::unique_ptr<Impl> _impl;
// The root element of this document.
const Element _root;
diff --git a/src/mongo/bson/oid.cpp b/src/mongo/bson/oid.cpp
index e9c6b87eb3a..209d43a8a38 100644
--- a/src/mongo/bson/oid.cpp
+++ b/src/mongo/bson/oid.cpp
@@ -32,7 +32,6 @@
#include "mongo/bson/oid.h"
#include <boost/functional/hash.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/init.h"
#include "mongo/bson/bsonobjbuilder.h"
@@ -43,7 +42,7 @@
namespace mongo {
namespace {
- boost::scoped_ptr<AtomicUInt32> counter;
+ std::unique_ptr<AtomicUInt32> counter;
const std::size_t kTimestampOffset = 0;
const std::size_t kInstanceUniqueOffset = kTimestampOffset +
@@ -55,7 +54,7 @@ namespace {
MONGO_INITIALIZER_GENERAL(OIDGeneration, MONGO_NO_PREREQUISITES, ("default"))
(InitializerContext* context) {
- boost::scoped_ptr<SecureRandom> entropy(SecureRandom::create());
+ std::unique_ptr<SecureRandom> entropy(SecureRandom::create());
counter.reset(new AtomicUInt32(uint32_t(entropy->nextInt64())));
_instanceUnique = OID::InstanceUnique::generate(*entropy);
return Status::OK();
@@ -120,7 +119,7 @@ namespace {
}
void OID::regenMachineId() {
- boost::scoped_ptr<SecureRandom> entropy(SecureRandom::create());
+ std::unique_ptr<SecureRandom> entropy(SecureRandom::create());
_instanceUnique = InstanceUnique::generate(*entropy);
}
diff --git a/src/mongo/client/dbclient_rs.h b/src/mongo/client/dbclient_rs.h
index ac32ccd4964..ac2fd24f161 100644
--- a/src/mongo/client/dbclient_rs.h
+++ b/src/mongo/client/dbclient_rs.h
@@ -29,7 +29,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <utility>
@@ -269,7 +268,7 @@ namespace mongo {
std::string _setName;
HostAndPort _masterHost;
- boost::scoped_ptr<DBClientConnection> _master;
+ std::unique_ptr<DBClientConnection> _master;
// Last used host in a slaveOk query (can be a primary).
HostAndPort _lastSlaveOkHost;
diff --git a/src/mongo/client/dbclient_rs_test.cpp b/src/mongo/client/dbclient_rs_test.cpp
index 34abf413d5b..dbd6b9bcf25 100644
--- a/src/mongo/client/dbclient_rs_test.cpp
+++ b/src/mongo/client/dbclient_rs_test.cpp
@@ -31,7 +31,6 @@
* the DBClientReplicaSet talks to, so the tests only covers the client side logic.
*/
-#include <boost/scoped_ptr.hpp>
#include <map>
#include <memory>
#include <string>
@@ -48,7 +47,7 @@
#include "mongo/util/assert_util.h"
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::map;
using std::make_pair;
@@ -98,7 +97,7 @@ namespace {
}
private:
- boost::scoped_ptr<MockReplicaSet> _replSet;
+ std::unique_ptr<MockReplicaSet> _replSet;
};
TEST_F(BasicRS, ReadFromPrimary) {
@@ -189,7 +188,7 @@ namespace {
}
private:
- boost::scoped_ptr<MockReplicaSet> _replSet;
+ std::unique_ptr<MockReplicaSet> _replSet;
};
TEST_F(AllNodesDown, ReadFromPrimary) {
@@ -262,7 +261,7 @@ namespace {
}
private:
- boost::scoped_ptr<MockReplicaSet> _replSet;
+ std::unique_ptr<MockReplicaSet> _replSet;
};
TEST_F(PrimaryDown, ReadFromPrimary) {
@@ -350,7 +349,7 @@ namespace {
}
private:
- boost::scoped_ptr<MockReplicaSet> _replSet;
+ std::unique_ptr<MockReplicaSet> _replSet;
};
TEST_F(SecondaryDown, ReadFromPrimary) {
@@ -528,7 +527,7 @@ namespace {
private:
ConnectionString::ConnectionHook* _originalConnectionHook;
- boost::scoped_ptr<MockReplicaSet> _replSet;
+ std::unique_ptr<MockReplicaSet> _replSet;
};
TEST_F(TaggedFiveMemberRS, ConnShouldPinIfSameSettings) {
diff --git a/src/mongo/client/dbclientinterface.h b/src/mongo/client/dbclientinterface.h
index 0aae9081a13..1e42a381d1e 100644
--- a/src/mongo/client/dbclientinterface.h
+++ b/src/mongo/client/dbclientinterface.h
@@ -29,7 +29,6 @@
#pragma once
#include <boost/noncopyable.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/string_data.h"
#include "mongo/client/connection_string.h"
@@ -1111,8 +1110,8 @@ namespace mongo {
virtual void _auth(const BSONObj& params);
virtual void sayPiggyBack( Message &toSend );
- boost::scoped_ptr<MessagingPort> p;
- boost::scoped_ptr<SockAddr> server;
+ std::unique_ptr<MessagingPort> p;
+ std::unique_ptr<SockAddr> server;
bool _failed;
const bool autoReconnect;
Backoff autoReconnectBackoff;
diff --git a/src/mongo/client/native_sasl_client_session.cpp b/src/mongo/client/native_sasl_client_session.cpp
index cb04918ea23..8824ddcbfc2 100644
--- a/src/mongo/client/native_sasl_client_session.cpp
+++ b/src/mongo/client/native_sasl_client_session.cpp
@@ -53,7 +53,7 @@ namespace {
SaslClientSession(),
_step(0),
_done(false),
- _saslConversation(NULL) {
+ _saslConversation(nullptr) {
}
NativeSaslClientSession::~NativeSaslClientSession() {}
diff --git a/src/mongo/client/native_sasl_client_session.h b/src/mongo/client/native_sasl_client_session.h
index 0849c463a78..dca7c80b03c 100644
--- a/src/mongo/client/native_sasl_client_session.h
+++ b/src/mongo/client/native_sasl_client_session.h
@@ -25,7 +25,6 @@
* then also delete it in the license file.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/sasl_client_session.h"
@@ -58,7 +57,7 @@ namespace mongo {
bool _done;
/// The client side of a SASL authentication conversation.
- boost::scoped_ptr<SaslClientConversation> _saslConversation;
+ std::unique_ptr<SaslClientConversation> _saslConversation;
};
} // namespace mongo
diff --git a/src/mongo/client/parallel.h b/src/mongo/client/parallel.h
index d530dc88a04..25b1993631a 100644
--- a/src/mongo/client/parallel.h
+++ b/src/mongo/client/parallel.h
@@ -31,7 +31,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/db/namespace_string.h"
@@ -336,10 +335,10 @@ namespace mongo {
int _options;
BSONObj _cmd;
DBClientBase * _conn;
- boost::scoped_ptr<AScopedConnection> _connHolder; // used if not provided a connection
+ std::unique_ptr<AScopedConnection> _connHolder; // used if not provided a connection
bool _useShardConn;
- boost::scoped_ptr<DBClientCursor> _cursor;
+ std::unique_ptr<DBClientCursor> _cursor;
BSONObj _res;
bool _ok;
diff --git a/src/mongo/client/sasl_client_authenticate_impl.cpp b/src/mongo/client/sasl_client_authenticate_impl.cpp
index 930db45a4f7..a2447e2c507 100644
--- a/src/mongo/client/sasl_client_authenticate_impl.cpp
+++ b/src/mongo/client/sasl_client_authenticate_impl.cpp
@@ -36,7 +36,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/init.h"
@@ -207,7 +206,7 @@ namespace {
return status;
}
- boost::scoped_ptr<SaslClientSession> session(SaslClientSession::create(mechanism));
+ std::unique_ptr<SaslClientSession> session(SaslClientSession::create(mechanism));
status = configureSession(session.get(), client, targetDatabase, saslParameters);
if (!status.isOK())
diff --git a/src/mongo/client/sasl_scramsha1_client_conversation.cpp b/src/mongo/client/sasl_scramsha1_client_conversation.cpp
index 50e54734a8f..149fa4d4346 100644
--- a/src/mongo/client/sasl_scramsha1_client_conversation.cpp
+++ b/src/mongo/client/sasl_scramsha1_client_conversation.cpp
@@ -31,7 +31,6 @@
#include "mongo/client/sasl_scramsha1_client_conversation.h"
#include <boost/algorithm/string/replace.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/parse_number.h"
#include "mongo/client/sasl_client_session.h"
@@ -43,7 +42,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
SaslSCRAMSHA1ClientConversation::SaslSCRAMSHA1ClientConversation(
@@ -103,7 +102,7 @@ namespace mongo {
const int nonceLenQWords = 3;
uint64_t binaryNonce[nonceLenQWords];
- scoped_ptr<SecureRandom> sr(SecureRandom::create());
+ unique_ptr<SecureRandom> sr(SecureRandom::create());
binaryNonce[0] = sr->nextInt64();
binaryNonce[1] = sr->nextInt64();
diff --git a/src/mongo/client/scoped_db_conn_test.cpp b/src/mongo/client/scoped_db_conn_test.cpp
index f55c666a7f6..ef68972dabc 100644
--- a/src/mongo/client/scoped_db_conn_test.cpp
+++ b/src/mongo/client/scoped_db_conn_test.cpp
@@ -41,7 +41,6 @@
#include "mongo/unittest/unittest.h"
#include <vector>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
/**
@@ -51,7 +50,7 @@
* connection).
*/
-using boost::scoped_ptr;
+using std::unique_ptr;
using mongo::DBClientBase;
using mongo::FailPoint;
using mongo::ScopedDbConnection;
diff --git a/src/mongo/client/syncclusterconnection.h b/src/mongo/client/syncclusterconnection.h
index b47d4cfe0eb..86ad8421ff1 100644
--- a/src/mongo/client/syncclusterconnection.h
+++ b/src/mongo/client/syncclusterconnection.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/bson/bsonelement.h"
#include "mongo/bson/bsonobj.h"
@@ -162,7 +161,7 @@ namespace mongo {
std::vector<BSONObj> _lastErrors;
// Optionally attached by user
- boost::scoped_ptr<QueryHandler> _customQueryHandler;
+ std::unique_ptr<QueryHandler> _customQueryHandler;
mongo::mutex _mutex;
std::map<std::string,int> _lockTypes;
diff --git a/src/mongo/crypto/mechanism_scram.cpp b/src/mongo/crypto/mechanism_scram.cpp
index 3bca59f4664..39695ca4bac 100644
--- a/src/mongo/crypto/mechanism_scram.cpp
+++ b/src/mongo/crypto/mechanism_scram.cpp
@@ -30,7 +30,6 @@
#include "mongo/crypto/mechanism_scram.h"
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/crypto/crypto.h"
@@ -40,7 +39,7 @@
namespace mongo {
namespace scram {
- using boost::scoped_ptr;
+ using std::unique_ptr;
// Compute the SCRAM step Hi() as defined in RFC5802
static void HMACIteration(const unsigned char input[],
@@ -149,7 +148,7 @@ namespace scram {
// Generate salt
uint64_t userSalt[saltLenQWords];
- scoped_ptr<SecureRandom> sr(SecureRandom::create());
+ unique_ptr<SecureRandom> sr(SecureRandom::create());
userSalt[0] = sr->nextInt64();
userSalt[1] = sr->nextInt64();
diff --git a/src/mongo/db/auth/authz_manager_external_state_mock.cpp b/src/mongo/db/auth/authz_manager_external_state_mock.cpp
index 92274c74627..dc15b46f58d 100644
--- a/src/mongo/db/auth/authz_manager_external_state_mock.cpp
+++ b/src/mongo/db/auth/authz_manager_external_state_mock.cpp
@@ -309,7 +309,7 @@ namespace {
if (!parseResult.isOK()) {
return parseResult.getStatus();
}
- const boost::scoped_ptr<MatchExpression> matcher(parseResult.getValue());
+ const std::unique_ptr<MatchExpression> matcher(parseResult.getValue());
NamespaceDocumentMap::iterator mapIt = _documents.find(collectionName);
if (mapIt == _documents.end())
diff --git a/src/mongo/db/auth/native_sasl_authentication_session.cpp b/src/mongo/db/auth/native_sasl_authentication_session.cpp
index 91bcef1fe3d..e2392beacd3 100644
--- a/src/mongo/db/auth/native_sasl_authentication_session.cpp
+++ b/src/mongo/db/auth/native_sasl_authentication_session.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/auth/native_sasl_authentication_session.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/range/size.hpp>
#include "mongo/base/init.h"
@@ -53,7 +52,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
namespace {
SaslAuthenticationSession* createNativeSaslAuthenticationSession(
@@ -87,7 +86,7 @@ namespace {
// Not a SASL mechanism; no need to smoke test built-in mechanisms.
continue;
}
- scoped_ptr<SaslAuthenticationSession>
+ unique_ptr<SaslAuthenticationSession>
session(SaslAuthenticationSession::create(authzSession.get(), mechanism));
Status status = session->start("test",
mechanism,
diff --git a/src/mongo/db/auth/native_sasl_authentication_session.h b/src/mongo/db/auth/native_sasl_authentication_session.h
index d6b5d64c4d4..57b90a145be 100644
--- a/src/mongo/db/auth/native_sasl_authentication_session.h
+++ b/src/mongo/db/auth/native_sasl_authentication_session.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -66,6 +65,6 @@ namespace mongo {
private:
std::string _mechanism;
- boost::scoped_ptr<SaslServerConversation> _saslConversation;
+ std::unique_ptr<SaslServerConversation> _saslConversation;
};
} // namespace mongo
diff --git a/src/mongo/db/auth/role_name.h b/src/mongo/db/auth/role_name.h
index ef70f8df069..05b5d30e80b 100644
--- a/src/mongo/db/auth/role_name.h
+++ b/src/mongo/db/auth/role_name.h
@@ -32,7 +32,6 @@
#include <string>
#include <vector>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/string_data.h"
@@ -118,7 +117,7 @@ namespace mongo {
virtual Impl* doClone() const = 0;
};
- RoleNameIterator() : _impl(NULL) {}
+ RoleNameIterator() : _impl(nullptr) {}
RoleNameIterator(const RoleNameIterator& other) : _impl(Impl::clone(other._impl.get())) {}
explicit RoleNameIterator(Impl* impl) : _impl(impl) {}
@@ -136,7 +135,7 @@ namespace mongo {
const RoleName* operator->() const { return &get(); }
private:
- boost::scoped_ptr<Impl> _impl;
+ std::unique_ptr<Impl> _impl;
};
} // namespace mongo
diff --git a/src/mongo/db/auth/sasl_commands.cpp b/src/mongo/db/auth/sasl_commands.cpp
index a4843e9d900..6747a35771c 100644
--- a/src/mongo/db/auth/sasl_commands.cpp
+++ b/src/mongo/db/auth/sasl_commands.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/init.h"
#include "mongo/base/status.h"
diff --git a/src/mongo/db/auth/sasl_scramsha1_server_conversation.cpp b/src/mongo/db/auth/sasl_scramsha1_server_conversation.cpp
index fb719ef8c7b..83137a8bd99 100644
--- a/src/mongo/db/auth/sasl_scramsha1_server_conversation.cpp
+++ b/src/mongo/db/auth/sasl_scramsha1_server_conversation.cpp
@@ -34,7 +34,6 @@
#include <boost/algorithm/string/join.hpp>
#include <boost/algorithm/string/replace.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/crypto/crypto.h"
#include "mongo/crypto/mechanism_scram.h"
@@ -49,7 +48,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
SaslSCRAMSHA1ServerConversation::SaslSCRAMSHA1ServerConversation(
@@ -205,7 +204,7 @@ namespace mongo {
const int nonceLenQWords = 3;
uint64_t binaryNonce[nonceLenQWords];
- scoped_ptr<SecureRandom> sr(SecureRandom::create());
+ unique_ptr<SecureRandom> sr(SecureRandom::create());
binaryNonce[0] = sr->nextInt64();
binaryNonce[1] = sr->nextInt64();
diff --git a/src/mongo/db/auth/sasl_scramsha1_server_conversation.h b/src/mongo/db/auth/sasl_scramsha1_server_conversation.h
index c0eeb231bac..1a2e1ad8fbd 100644
--- a/src/mongo/db/auth/sasl_scramsha1_server_conversation.h
+++ b/src/mongo/db/auth/sasl_scramsha1_server_conversation.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
diff --git a/src/mongo/db/auth/user_document_parser_test.cpp b/src/mongo/db/auth/user_document_parser_test.cpp
index 3d812f267df..d2dff197b12 100644
--- a/src/mongo/db/auth/user_document_parser_test.cpp
+++ b/src/mongo/db/auth/user_document_parser_test.cpp
@@ -29,7 +29,6 @@
* Unit tests of the UserDocumentParser type.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/db/auth/action_set.h"
@@ -45,14 +44,14 @@
namespace mongo {
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
class V1UserDocumentParsing : public ::mongo::unittest::Test {
public:
V1UserDocumentParsing() {}
- scoped_ptr<User> user;
- scoped_ptr<User> adminUser;
+ unique_ptr<User> user;
+ unique_ptr<User> adminUser;
V1UserDocumentParser v1parser;
void setUp() {
@@ -187,8 +186,8 @@ namespace {
public:
V2UserDocumentParsing() {}
- scoped_ptr<User> user;
- scoped_ptr<User> adminUser;
+ unique_ptr<User> user;
+ unique_ptr<User> adminUser;
V2UserDocumentParser v2parser;
void setUp() {
diff --git a/src/mongo/db/auth/user_name.h b/src/mongo/db/auth/user_name.h
index 73ff3675eb8..55220f33e10 100644
--- a/src/mongo/db/auth/user_name.h
+++ b/src/mongo/db/auth/user_name.h
@@ -28,9 +28,9 @@
#pragma once
#include <iosfwd>
+#include <memory>
#include <string>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/string_data.h"
@@ -106,7 +106,7 @@ namespace mongo {
virtual Impl* doClone() const = 0;
};
- UserNameIterator() : _impl(NULL) {}
+ UserNameIterator() : _impl(nullptr) {}
UserNameIterator(const UserNameIterator& other) : _impl(Impl::clone(other._impl.get())) {}
explicit UserNameIterator(Impl* impl) : _impl(impl) {}
@@ -124,7 +124,7 @@ namespace mongo {
const UserName* operator->() const { return &get(); }
private:
- boost::scoped_ptr<Impl> _impl;
+ std::unique_ptr<Impl> _impl;
};
diff --git a/src/mongo/db/auth/user_set_test.cpp b/src/mongo/db/auth/user_set_test.cpp
index bf65fa6ae3a..c1f036ae289 100644
--- a/src/mongo/db/auth/user_set_test.cpp
+++ b/src/mongo/db/auth/user_set_test.cpp
@@ -46,9 +46,9 @@ namespace {
User* p2 = new User(UserName("George", "test"));
User* p3 = new User(UserName("Bob", "test2"));
- const boost::scoped_ptr<User> delp1(p1);
- const boost::scoped_ptr<User> delp2(p2);
- const boost::scoped_ptr<User> delp3(p3);
+ const std::unique_ptr<User> delp1(p1);
+ const std::unique_ptr<User> delp2(p2);
+ const std::unique_ptr<User> delp3(p3);
ASSERT_NULL(set.lookup(UserName("Bob", "test")));
ASSERT_NULL(set.lookup(UserName("George", "test")));
@@ -102,7 +102,7 @@ namespace {
UserNameIterator iter = pset.getNames();
ASSERT(!iter.more());
- boost::scoped_ptr<User> user(new User(UserName("bob", "test")));
+ std::unique_ptr<User> user(new User(UserName("bob", "test")));
ASSERT_NULL(pset.add(user.get()));
iter = pset.getNames();
diff --git a/src/mongo/db/catalog/capped_utils.cpp b/src/mongo/db/catalog/capped_utils.cpp
index 2b046a64d39..8e981bd2491 100644
--- a/src/mongo/db/catalog/capped_utils.cpp
+++ b/src/mongo/db/catalog/capped_utils.cpp
@@ -138,7 +138,7 @@ namespace mongo {
long long excessSize = fromCollection->dataSize(txn) - allocatedSpaceGuess;
- boost::scoped_ptr<PlanExecutor> exec(InternalPlanner::collectionScan(
+ std::unique_ptr<PlanExecutor> exec(InternalPlanner::collectionScan(
txn,
fromNs,
fromCollection,
diff --git a/src/mongo/db/catalog/collection.cpp b/src/mongo/db/catalog/collection.cpp
index 4e2c2155254..4be5fe65529 100644
--- a/src/mongo/db/catalog/collection.cpp
+++ b/src/mongo/db/catalog/collection.cpp
@@ -34,7 +34,6 @@
#include "mongo/db/catalog/collection.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/counter.h"
#include "mongo/base/owned_pointer_map.h"
@@ -89,7 +88,7 @@ namespace {
}
}
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::endl;
using std::string;
using std::vector;
@@ -778,7 +777,7 @@ namespace {
int idxn = 0;
try {
// Only applicable when 'full' validation is requested.
- boost::scoped_ptr<BSONObjBuilder> indexDetails(full ? new BSONObjBuilder() : NULL);
+ std::unique_ptr<BSONObjBuilder> indexDetails(full ? new BSONObjBuilder() : NULL);
BSONObjBuilder indexes; // not using subObjStart to be exception safe
IndexCatalog::IndexIterator i = _indexCatalog.getIndexIterator(txn, false);
@@ -788,7 +787,7 @@ namespace {
IndexAccessMethod* iam = _indexCatalog.getIndex( descriptor );
invariant( iam );
- boost::scoped_ptr<BSONObjBuilder> bob(
+ std::unique_ptr<BSONObjBuilder> bob(
indexDetails.get() ? new BSONObjBuilder(
indexDetails->subobjStart(descriptor->indexNamespace())) :
NULL);
diff --git a/src/mongo/db/catalog/collection_info_cache.h b/src/mongo/db/catalog/collection_info_cache.h
index 5f844fa1ddc..294f371eef0 100644
--- a/src/mongo/db/catalog/collection_info_cache.h
+++ b/src/mongo/db/catalog/collection_info_cache.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/query/plan_cache.h"
#include "mongo/db/query/query_settings.h"
@@ -96,11 +95,11 @@ namespace mongo {
UpdateIndexData _indexedPaths;
// A cache for query plans.
- boost::scoped_ptr<PlanCache> _planCache;
+ std::unique_ptr<PlanCache> _planCache;
// Query settings.
// Includes index filters.
- boost::scoped_ptr<QuerySettings> _querySettings;
+ std::unique_ptr<QuerySettings> _querySettings;
/**
* Must be called under exclusive DB lock.
diff --git a/src/mongo/db/catalog/cursor_manager.cpp b/src/mongo/db/catalog/cursor_manager.cpp
index 8f72c706560..3143c3382cf 100644
--- a/src/mongo/db/catalog/cursor_manager.cpp
+++ b/src/mongo/db/catalog/cursor_manager.cpp
@@ -121,13 +121,13 @@ namespace mongo {
Map _idToNS;
unsigned _nextId;
- boost::scoped_ptr<SecureRandom> _secureRandom;
+ std::unique_ptr<SecureRandom> _secureRandom;
};
// Note that "globalCursorIdCache" must be declared before "globalCursorManager", as the latter
// calls into the former during destruction.
- boost::scoped_ptr<GlobalCursorIdCache> globalCursorIdCache;
- boost::scoped_ptr<CursorManager> globalCursorManager;
+ std::unique_ptr<GlobalCursorIdCache> globalCursorIdCache;
+ std::unique_ptr<CursorManager> globalCursorManager;
MONGO_INITIALIZER(GlobalCursorIdCache)(InitializerContext* context) {
globalCursorIdCache.reset(new GlobalCursorIdCache());
diff --git a/src/mongo/db/catalog/cursor_manager.h b/src/mongo/db/catalog/cursor_manager.h
index 60d5d673049..65fd204c5e3 100644
--- a/src/mongo/db/catalog/cursor_manager.h
+++ b/src/mongo/db/catalog/cursor_manager.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/clientcursor.h"
#include "mongo/db/invalidation_type.h"
@@ -144,7 +143,7 @@ namespace mongo {
NamespaceString _nss;
unsigned _collectionCacheRuntimeId;
- boost::scoped_ptr<PseudoRandom> _random;
+ std::unique_ptr<PseudoRandom> _random;
mutable SimpleMutex _mutex;
diff --git a/src/mongo/db/catalog/index_catalog_entry.cpp b/src/mongo/db/catalog/index_catalog_entry.cpp
index 358b5a264d7..41ad093e8cc 100644
--- a/src/mongo/db/catalog/index_catalog_entry.cpp
+++ b/src/mongo/db/catalog/index_catalog_entry.cpp
@@ -185,7 +185,7 @@ namespace mongo {
OperationContext::RecoveryUnitState const _oldRecoveryUnitState;
// Owned and life-time is controlled
- const boost::scoped_ptr<RecoveryUnit> _newRecoveryUnit;
+ const std::unique_ptr<RecoveryUnit> _newRecoveryUnit;
};
void IndexCatalogEntry::setMultikey(OperationContext* txn) {
diff --git a/src/mongo/db/catalog/index_catalog_entry.h b/src/mongo/db/catalog/index_catalog_entry.h
index 770aec496e2..ad919b2bca5 100644
--- a/src/mongo/db/catalog/index_catalog_entry.h
+++ b/src/mongo/db/catalog/index_catalog_entry.h
@@ -113,7 +113,7 @@ namespace mongo {
// Owned here.
HeadManager* _headManager;
- boost::scoped_ptr<MatchExpression> _filterExpression;
+ std::unique_ptr<MatchExpression> _filterExpression;
// cached stuff
diff --git a/src/mongo/db/catalog/index_create.cpp b/src/mongo/db/catalog/index_create.cpp
index ef80ed8e1a2..84ed9d7e99d 100644
--- a/src/mongo/db/catalog/index_create.cpp
+++ b/src/mongo/db/catalog/index_create.cpp
@@ -35,7 +35,6 @@
#include "mongo/db/catalog/index_create.h"
#include <boost/make_shared.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/error_codes.h"
#include "mongo/client/dbclientinterface.h"
@@ -56,7 +55,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using std::endl;
@@ -237,7 +236,7 @@ namespace mongo {
unsigned long long n = 0;
- scoped_ptr<PlanExecutor> exec(InternalPlanner::collectionScan(_txn,
+ unique_ptr<PlanExecutor> exec(InternalPlanner::collectionScan(_txn,
_collection->ns().ns(),
_collection));
if (_buildInBackground) {
diff --git a/src/mongo/db/client.h b/src/mongo/db/client.h
index 251fce3b6d6..1368506b9ea 100644
--- a/src/mongo/db/client.h
+++ b/src/mongo/db/client.h
@@ -36,7 +36,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
#include "mongo/db/client_basic.h"
diff --git a/src/mongo/db/client_basic.h b/src/mongo/db/client_basic.h
index 3fc6409c99d..b28bf0f4c3c 100644
--- a/src/mongo/db/client_basic.h
+++ b/src/mongo/db/client_basic.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <memory>
#include "mongo/base/disallow_copying.h"
diff --git a/src/mongo/db/clientcursor.h b/src/mongo/db/clientcursor.h
index b2afdd56e10..4e81a39d7ba 100644
--- a/src/mongo/db/clientcursor.h
+++ b/src/mongo/db/clientcursor.h
@@ -29,7 +29,6 @@
#pragma once
#include <boost/noncopyable.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/jsobj.h"
#include "mongo/db/query/plan_executor.h"
@@ -272,7 +271,7 @@ namespace mongo {
//
// The underlying execution machinery.
//
- boost::scoped_ptr<PlanExecutor> _exec;
+ std::unique_ptr<PlanExecutor> _exec;
};
/**
diff --git a/src/mongo/db/clientlistplugin.cpp b/src/mongo/db/clientlistplugin.cpp
index 42499f5c116..aaffdd83492 100644
--- a/src/mongo/db/clientlistplugin.cpp
+++ b/src/mongo/db/clientlistplugin.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/locks.hpp>
#include "mongo/bson/bsonobjbuilder.h"
@@ -47,7 +46,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
namespace {
@@ -169,7 +168,7 @@ namespace {
string& errmsg,
BSONObjBuilder& result) {
- scoped_ptr<MatchExpression> filter;
+ unique_ptr<MatchExpression> filter;
if ( cmdObj["filter"].isABSONObj() ) {
StatusWithMatchExpression res =
MatchExpressionParser::parse( cmdObj["filter"].Obj() );
diff --git a/src/mongo/db/cloner.cpp b/src/mongo/db/cloner.cpp
index 8ed98728c83..578da9b76c8 100644
--- a/src/mongo/db/cloner.cpp
+++ b/src/mongo/db/cloner.cpp
@@ -34,7 +34,6 @@
#include "mongo/db/cloner.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/bson/util/builder.h"
@@ -67,7 +66,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::list;
using std::set;
@@ -127,8 +126,8 @@ namespace mongo {
invariant(from_collection.coll() != "system.indexes");
// XXX: can probably take dblock instead
- scoped_ptr<ScopedTransaction> scopedXact(new ScopedTransaction(txn, MODE_X));
- scoped_ptr<Lock::GlobalWrite> globalWriteLock(new Lock::GlobalWrite(txn->lockState()));
+ unique_ptr<ScopedTransaction> scopedXact(new ScopedTransaction(txn, MODE_X));
+ unique_ptr<Lock::GlobalWrite> globalWriteLock(new Lock::GlobalWrite(txn->lockState()));
uassert(ErrorCodes::NotMaster,
str::stream() << "Not primary while cloning collection " << from_collection.ns()
<< " to " << to_collection.ns(),
diff --git a/src/mongo/db/commands/authentication_commands.cpp b/src/mongo/db/commands/authentication_commands.cpp
index 6ebe3f06da8..1e2dc0a2439 100644
--- a/src/mongo/db/commands/authentication_commands.cpp
+++ b/src/mongo/db/commands/authentication_commands.cpp
@@ -33,7 +33,6 @@
#include "mongo/db/commands/authentication_commands.h"
#include <boost/algorithm/string.hpp>
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -136,7 +135,7 @@ namespace mongo {
}
SimpleMutex _randMutex; // Synchronizes accesses to _random.
- boost::scoped_ptr<SecureRandom> _random;
+ std::unique_ptr<SecureRandom> _random;
} cmdGetNonce;
void CmdAuthenticate::redactForLogging(mutablebson::Document* cmdObj) {
diff --git a/src/mongo/db/commands/collection_to_capped.cpp b/src/mongo/db/commands/collection_to_capped.cpp
index 2ee13ed04ca..c9d3816a2b7 100644
--- a/src/mongo/db/commands/collection_to_capped.cpp
+++ b/src/mongo/db/commands/collection_to_capped.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/background.h"
#include "mongo/db/catalog/capped_utils.h"
@@ -47,7 +46,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using std::stringstream;
diff --git a/src/mongo/db/commands/count_cmd.cpp b/src/mongo/db/commands/count_cmd.cpp
index 452bf8209b8..00d5b4ac731 100644
--- a/src/mongo/db/commands/count_cmd.cpp
+++ b/src/mongo/db/commands/count_cmd.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/commands.h"
#include "mongo/db/curop.h"
@@ -45,7 +44,7 @@
namespace mongo {
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using std::stringstream;
@@ -103,7 +102,7 @@ namespace {
return getExecStatus;
}
- scoped_ptr<PlanExecutor> exec(rawExec);
+ unique_ptr<PlanExecutor> exec(rawExec);
Explain::explainStages(exec.get(), verbosity, out);
return Status::OK();
@@ -139,7 +138,7 @@ namespace {
return appendCommandStatus(result, getExecStatus);
}
- scoped_ptr<PlanExecutor> exec(rawExec);
+ unique_ptr<PlanExecutor> exec(rawExec);
// Store the plan summary string in CurOp.
if (NULL != CurOp::get(txn)) {
diff --git a/src/mongo/db/commands/dbhash.cpp b/src/mongo/db/commands/dbhash.cpp
index e96fb4b6288..f7cd6330366 100644
--- a/src/mongo/db/commands/dbhash.cpp
+++ b/src/mongo/db/commands/dbhash.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/commands/dbhash.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/catalog/database.h"
@@ -47,7 +46,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::list;
using std::endl;
diff --git a/src/mongo/db/commands/geo_near_cmd.cpp b/src/mongo/db/commands/geo_near_cmd.cpp
index 42c608cb2d6..6f44749925d 100644
--- a/src/mongo/db/commands/geo_near_cmd.cpp
+++ b/src/mongo/db/commands/geo_near_cmd.cpp
@@ -28,7 +28,6 @@
#define MONGO_LOG_DEFAULT_COMPONENT ::mongo::logger::LogComponent::kCommand
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/db/auth/action_set.h"
@@ -54,7 +53,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::stringstream;
class Geo2dFindNearCmd : public Command {
@@ -202,7 +201,7 @@ namespace mongo {
return false;
}
- scoped_ptr<PlanExecutor> exec(rawExec);
+ unique_ptr<PlanExecutor> exec(rawExec);
double totalDistance = 0;
BSONObjBuilder resultBuilder(result.subarrayStart("results"));
diff --git a/src/mongo/db/commands/group.cpp b/src/mongo/db/commands/group.cpp
index adfb6fae37f..31a03fa2543 100644
--- a/src/mongo/db/commands/group.cpp
+++ b/src/mongo/db/commands/group.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/commands/group.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/auth/action_set.h"
#include "mongo/db/auth/action_type.h"
@@ -45,7 +44,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
static GroupCommand cmdGroup;
@@ -152,7 +151,7 @@ namespace mongo {
return appendCommandStatus(out, getExecStatus);
}
- scoped_ptr<PlanExecutor> planExecutor(rawPlanExecutor);
+ unique_ptr<PlanExecutor> planExecutor(rawPlanExecutor);
// Group executors return ADVANCED exactly once, with the entire group result.
BSONObj retval;
@@ -211,7 +210,7 @@ namespace mongo {
return getExecStatus;
}
- scoped_ptr<PlanExecutor> planExecutor(rawPlanExecutor);
+ unique_ptr<PlanExecutor> planExecutor(rawPlanExecutor);
Explain::explainStages(planExecutor.get(), verbosity, out);
return Status::OK();
diff --git a/src/mongo/db/commands/index_filter_commands.cpp b/src/mongo/db/commands/index_filter_commands.cpp
index 17d932cffb5..ac85733d3b5 100644
--- a/src/mongo/db/commands/index_filter_commands.cpp
+++ b/src/mongo/db/commands/index_filter_commands.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <sstream>
@@ -120,7 +119,7 @@ namespace mongo {
using std::string;
using std::stringstream;
using std::vector;
- using boost::scoped_ptr;
+ using std::unique_ptr;
IndexFilterCommand::IndexFilterCommand(const string& name, const string& helpText)
: Command(name),
@@ -274,7 +273,7 @@ namespace mongo {
return status;
}
- scoped_ptr<CanonicalQuery> cq(cqRaw);
+ unique_ptr<CanonicalQuery> cq(cqRaw);
querySettings->removeAllowedIndices(planCache->computeKey(*cq));
// Remove entry from plan cache
@@ -320,7 +319,7 @@ namespace mongo {
Status result = CanonicalQuery::canonicalize(
ns, entry->query, entry->sort, entry->projection, &cqRaw, whereCallback);
invariant(result.isOK());
- scoped_ptr<CanonicalQuery> cq(cqRaw);
+ unique_ptr<CanonicalQuery> cq(cqRaw);
// Remove plan cache entry.
planCache->remove(*cq);
@@ -388,7 +387,7 @@ namespace mongo {
if (!status.isOK()) {
return status;
}
- scoped_ptr<CanonicalQuery> cq(cqRaw);
+ unique_ptr<CanonicalQuery> cq(cqRaw);
// Add allowed indices to query settings, overriding any previous entries.
querySettings->setAllowedIndices(*cq, planCache->computeKey(*cq), indexes);
diff --git a/src/mongo/db/commands/index_filter_commands_test.cpp b/src/mongo/db/commands/index_filter_commands_test.cpp
index a1781f2b5bd..baeb4b985a7 100644
--- a/src/mongo/db/commands/index_filter_commands_test.cpp
+++ b/src/mongo/db/commands/index_filter_commands_test.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/commands/index_filter_commands.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/json.h"
#include "mongo/db/operation_context_noop.h"
@@ -44,7 +43,7 @@ using namespace mongo;
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::string;
using std::vector;
@@ -121,7 +120,7 @@ namespace {
// Create canonical query.
CanonicalQuery* cqRaw;
ASSERT_OK(CanonicalQuery::canonicalize(ns, queryObj, sortObj, projectionObj, &cqRaw));
- scoped_ptr<CanonicalQuery> cq(cqRaw);
+ unique_ptr<CanonicalQuery> cq(cqRaw);
QuerySolution qs;
qs.cacheData.reset(new SolutionCacheData());
@@ -143,7 +142,7 @@ namespace {
// Create canonical query.
CanonicalQuery* cqRaw;
ASSERT_OK(CanonicalQuery::canonicalize(ns, queryObj, sortObj, projectionObj, &cqRaw));
- scoped_ptr<CanonicalQuery> cq(cqRaw);
+ unique_ptr<CanonicalQuery> cq(cqRaw);
// Retrieve cache entries from plan cache.
vector<PlanCacheEntry*> entries = planCache.getAllEntries();
@@ -157,7 +156,7 @@ namespace {
// Alternatively, we could add key to PlanCacheEntry but that would be used in one place only.
ASSERT_OK(CanonicalQuery::canonicalize(ns, entry->query, entry->sort,
entry->projection, &cqRaw));
- scoped_ptr<CanonicalQuery> currentQuery(cqRaw);
+ unique_ptr<CanonicalQuery> currentQuery(cqRaw);
if (planCache.computeKey(*currentQuery) == planCache.computeKey(*cq)) {
found = true;
diff --git a/src/mongo/db/commands/list_collections.cpp b/src/mongo/db/commands/list_collections.cpp
index a9fd6daea3b..9c4789e3cd3 100644
--- a/src/mongo/db/commands/list_collections.cpp
+++ b/src/mongo/db/commands/list_collections.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/auth/authorization_session.h"
#include "mongo/db/catalog/collection_catalog_entry.h"
@@ -49,7 +48,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::list;
using std::string;
using std::stringstream;
@@ -93,7 +92,7 @@ namespace mongo {
int,
string& errmsg,
BSONObjBuilder& result) {
- boost::scoped_ptr<MatchExpression> matcher;
+ std::unique_ptr<MatchExpression> matcher;
BSONElement filterElt = jsobj["filter"];
if (!filterElt.eoo()) {
if (filterElt.type() != mongo::Object) {
diff --git a/src/mongo/db/commands/mr.cpp b/src/mongo/db/commands/mr.cpp
index 099be62e3bc..4551380d44a 100644
--- a/src/mongo/db/commands/mr.cpp
+++ b/src/mongo/db/commands/mr.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/commands/mr.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/connpool.h"
#include "mongo/client/parallel.h"
@@ -72,7 +71,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::unique_ptr;
using std::endl;
@@ -205,7 +204,7 @@ namespace mongo {
// need to build the reduce args: ( key, [values] )
BSONObjBuilder reduceArgs( sizeEstimate );
- boost::scoped_ptr<BSONArrayBuilder> valueBuilder;
+ std::unique_ptr<BSONArrayBuilder> valueBuilder;
unsigned n = 0;
for ( ; n<tuples.size(); n++ ) {
BSONObjIterator j(tuples[n]);
@@ -1025,7 +1024,7 @@ namespace mongo {
wuow.commit();
}
- scoped_ptr<AutoGetCollectionForRead> ctx(new AutoGetCollectionForRead(_txn, _config.incLong));
+ unique_ptr<AutoGetCollectionForRead> ctx(new AutoGetCollectionForRead(_txn, _config.incLong));
BSONObj prev;
BSONList all;
@@ -1061,7 +1060,7 @@ namespace mongo {
&rawExec,
QueryPlannerParams::NO_TABLE_SCAN).isOK());
- scoped_ptr<PlanExecutor> exec(rawExec);
+ unique_ptr<PlanExecutor> exec(rawExec);
// iterate over all sorted objects
BSONObj o;
@@ -1400,9 +1399,9 @@ namespace mongo {
const NamespaceString nss(config.ns);
// Need lock and context to use it
- scoped_ptr<ScopedTransaction> scopedXact(
+ unique_ptr<ScopedTransaction> scopedXact(
new ScopedTransaction(txn, MODE_IS));
- scoped_ptr<AutoGetDb> scopedAutoDb(new AutoGetDb(txn, nss.db(), MODE_S));
+ unique_ptr<AutoGetDb> scopedAutoDb(new AutoGetDb(txn, nss.db(), MODE_S));
const WhereCallbackReal whereCallback(txn, nss.db());
@@ -1433,7 +1432,7 @@ namespace mongo {
return 0;
}
- scoped_ptr<PlanExecutor> exec(rawExec);
+ unique_ptr<PlanExecutor> exec(rawExec);
Timer mt;
diff --git a/src/mongo/db/commands/mr.h b/src/mongo/db/commands/mr.h
index 79a6980b03e..b36e36b29b9 100644
--- a/src/mongo/db/commands/mr.h
+++ b/src/mongo/db/commands/mr.h
@@ -31,7 +31,6 @@
#pragma once
#include <boost/noncopyable.hpp>
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -193,9 +192,9 @@ namespace mongo {
// functions
- boost::scoped_ptr<Mapper> mapper;
- boost::scoped_ptr<Reducer> reducer;
- boost::scoped_ptr<Finalizer> finalizer;
+ std::unique_ptr<Mapper> mapper;
+ std::unique_ptr<Reducer> reducer;
+ std::unique_ptr<Finalizer> finalizer;
BSONObj mapParams;
BSONObj scopeSetup;
@@ -352,10 +351,10 @@ namespace mongo {
int _add(InMemory* im , const BSONObj& a);
OperationContext* _txn;
- boost::scoped_ptr<Scope> _scope;
+ std::unique_ptr<Scope> _scope;
bool _onDisk; // if the end result of this map reduce is disk or not
- boost::scoped_ptr<InMemory> _temp;
+ std::unique_ptr<InMemory> _temp;
long _size; // bytes in _temp
long _dupCount; // number of duplicate key entries
diff --git a/src/mongo/db/commands/pipeline_command.cpp b/src/mongo/db/commands/pipeline_command.cpp
index 34c0c2e5976..d8e575e1dcf 100644
--- a/src/mongo/db/commands/pipeline_command.cpp
+++ b/src/mongo/db/commands/pipeline_command.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <vector>
@@ -57,7 +56,7 @@
namespace mongo {
using boost::intrusive_ptr;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::unique_ptr;
using std::string;
@@ -218,7 +217,7 @@ namespace mongo {
}
PlanExecutor* exec = NULL;
- scoped_ptr<ClientCursorPin> pin; // either this OR the execHolder will be non-null
+ unique_ptr<ClientCursorPin> pin; // either this OR the execHolder will be non-null
unique_ptr<PlanExecutor> execHolder;
{
// This will throw if the sharding version for this connection is out of date. The
diff --git a/src/mongo/db/commands/plan_cache_commands.cpp b/src/mongo/db/commands/plan_cache_commands.cpp
index 0f7003e3dd9..de19f1e10a5 100644
--- a/src/mongo/db/commands/plan_cache_commands.cpp
+++ b/src/mongo/db/commands/plan_cache_commands.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <sstream>
@@ -49,7 +48,7 @@
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using namespace mongo;
@@ -116,7 +115,7 @@ namespace mongo {
using std::string;
using std::stringstream;
using std::vector;
- using boost::scoped_ptr;
+ using std::unique_ptr;
PlanCacheCommand::PlanCacheCommand(const string& name, const string& helpText,
ActionType actionType)
@@ -309,7 +308,7 @@ namespace mongo {
return status;
}
- scoped_ptr<CanonicalQuery> cq(cqRaw);
+ unique_ptr<CanonicalQuery> cq(cqRaw);
if (!planCache->contains(*cq)) {
// Log if asked to clear non-existent query shape.
@@ -379,7 +378,7 @@ namespace mongo {
return status;
}
- scoped_ptr<CanonicalQuery> cq(cqRaw);
+ unique_ptr<CanonicalQuery> cq(cqRaw);
if (!planCache.contains(*cq)) {
// Return empty plans in results if query shape does not
@@ -394,7 +393,7 @@ namespace mongo {
if (!result.isOK()) {
return result;
}
- scoped_ptr<PlanCacheEntry> entry(entryRaw);
+ unique_ptr<PlanCacheEntry> entry(entryRaw);
BSONArrayBuilder plansBuilder(bob->subarrayStart("plans"));
size_t numPlans = entry->plannerData.size();
diff --git a/src/mongo/db/commands/plan_cache_commands_test.cpp b/src/mongo/db/commands/plan_cache_commands_test.cpp
index 69a9c461a76..abdc2f53a94 100644
--- a/src/mongo/db/commands/plan_cache_commands_test.cpp
+++ b/src/mongo/db/commands/plan_cache_commands_test.cpp
@@ -33,7 +33,6 @@
#include "mongo/db/commands/plan_cache_commands.h"
#include <algorithm>
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/json.h"
#include "mongo/db/operation_context_noop.h"
@@ -46,7 +45,7 @@ using namespace mongo;
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::string;
using std::vector;
@@ -196,36 +195,36 @@ namespace {
// Valid parameters
ASSERT_OK(PlanCacheCommand::canonicalize(&txn, ns, fromjson("{query: {a: 1, b: 1}}"), &cqRaw));
- scoped_ptr<CanonicalQuery> query(cqRaw);
+ unique_ptr<CanonicalQuery> query(cqRaw);
// Equivalent query should generate same key.
ASSERT_OK(PlanCacheCommand::canonicalize(&txn, ns, fromjson("{query: {b: 1, a: 1}}"), &cqRaw));
- scoped_ptr<CanonicalQuery> equivQuery(cqRaw);
+ unique_ptr<CanonicalQuery> equivQuery(cqRaw);
ASSERT_EQUALS(planCache.computeKey(*query), planCache.computeKey(*equivQuery));
// Sort query should generate different key from unsorted query.
ASSERT_OK(PlanCacheCommand::canonicalize(&txn, ns,
fromjson("{query: {a: 1, b: 1}, sort: {a: 1, b: 1}}"), &cqRaw));
- scoped_ptr<CanonicalQuery> sortQuery1(cqRaw);
+ unique_ptr<CanonicalQuery> sortQuery1(cqRaw);
ASSERT_NOT_EQUALS(planCache.computeKey(*query), planCache.computeKey(*sortQuery1));
// Confirm sort arguments are properly delimited (SERVER-17158)
ASSERT_OK(PlanCacheCommand::canonicalize(&txn, ns,
fromjson("{query: {a: 1, b: 1}, sort: {aab: 1}}"), &cqRaw));
- scoped_ptr<CanonicalQuery> sortQuery2(cqRaw);
+ unique_ptr<CanonicalQuery> sortQuery2(cqRaw);
ASSERT_NOT_EQUALS(planCache.computeKey(*sortQuery1), planCache.computeKey(*sortQuery2));
// Changing order and/or value of predicates should not change key
ASSERT_OK(PlanCacheCommand::canonicalize(&txn, ns,
fromjson("{query: {b: 3, a: 3}, sort: {a: 1, b: 1}}"), &cqRaw));
- scoped_ptr<CanonicalQuery> sortQuery3(cqRaw);
+ unique_ptr<CanonicalQuery> sortQuery3(cqRaw);
ASSERT_EQUALS(planCache.computeKey(*sortQuery1), planCache.computeKey(*sortQuery3));
// Projected query should generate different key from unprojected query.
ASSERT_OK(PlanCacheCommand::canonicalize(&txn, ns,
fromjson("{query: {a: 1, b: 1}, projection: {_id: 0, a: 1}}"), &cqRaw));
- scoped_ptr<CanonicalQuery> projectionQuery(cqRaw);
+ unique_ptr<CanonicalQuery> projectionQuery(cqRaw);
ASSERT_NOT_EQUALS(planCache.computeKey(*query), planCache.computeKey(*projectionQuery));
}
diff --git a/src/mongo/db/commands/test_commands.cpp b/src/mongo/db/commands/test_commands.cpp
index e0eeb67c365..1c4c9d7a508 100644
--- a/src/mongo/db/commands/test_commands.cpp
+++ b/src/mongo/db/commands/test_commands.cpp
@@ -183,7 +183,7 @@ namespace mongo {
RecordId end;
{
- boost::scoped_ptr<PlanExecutor> exec(InternalPlanner::collectionScan(txn,
+ std::unique_ptr<PlanExecutor> exec(InternalPlanner::collectionScan(txn,
nss.ns(),
collection,
InternalPlanner::BACKWARD));
diff --git a/src/mongo/db/commands/write_commands/batch_executor.cpp b/src/mongo/db/commands/write_commands/batch_executor.cpp
index f13689c1bf1..8f2ead63f7c 100644
--- a/src/mongo/db/commands/write_commands/batch_executor.cpp
+++ b/src/mongo/db/commands/write_commands/batch_executor.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/commands/write_commands/batch_executor.h"
-#include <boost/scoped_ptr.hpp>
#include <memory>
#include "mongo/base/error_codes.h"
@@ -84,7 +83,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::endl;
using std::string;
@@ -1319,7 +1318,7 @@ namespace mongo {
invariant(collection);
PlanExecutor* rawExec;
uassertStatusOK(getExecutorUpdate(txn, collection, &parsedUpdate, debug, &rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
uassertStatusOK(exec->executePlan());
UpdateResult res = UpdateStage::makeUpdateResult(exec.get(), debug);
@@ -1423,7 +1422,7 @@ namespace mongo {
autoDb.getDb()->getCollection(nss),
&parsedDelete,
&rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Execute the delete and retrieve the number deleted.
uassertStatusOK(exec->executePlan());
diff --git a/src/mongo/db/commands/write_commands/batch_executor.h b/src/mongo/db/commands/write_commands/batch_executor.h
index 6216ae65c89..0bab41d3ff8 100644
--- a/src/mongo/db/commands/write_commands/batch_executor.h
+++ b/src/mongo/db/commands/write_commands/batch_executor.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -149,7 +148,7 @@ namespace mongo {
LastError* _le;
// Stats
- boost::scoped_ptr<WriteBatchStats> _stats;
+ std::unique_ptr<WriteBatchStats> _stats;
};
/**
diff --git a/src/mongo/db/commands/write_commands/write_commands.cpp b/src/mongo/db/commands/write_commands/write_commands.cpp
index 3fbacd52b79..4bf374778fb 100644
--- a/src/mongo/db/commands/write_commands/write_commands.cpp
+++ b/src/mongo/db/commands/write_commands/write_commands.cpp
@@ -235,7 +235,7 @@ namespace mongo {
PlanExecutor* rawExec;
uassertStatusOK(getExecutorUpdate(txn, collection, &parsedUpdate, debug, &rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Explain the plan tree.
Explain::explainStages( exec.get(), verbosity, out );
@@ -275,7 +275,7 @@ namespace mongo {
PlanExecutor* rawExec;
uassertStatusOK(getExecutorDelete(txn, collection, &parsedDelete, &rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Explain the plan tree.
Explain::explainStages(exec.get(), verbosity, out);
diff --git a/src/mongo/db/concurrency/d_concurrency.h b/src/mongo/db/concurrency/d_concurrency.h
index 2503b398b50..f21d356994e 100644
--- a/src/mongo/db/concurrency/d_concurrency.h
+++ b/src/mongo/db/concurrency/d_concurrency.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <climits> // For UINT_MAX
#include "mongo/db/concurrency/locker.h"
diff --git a/src/mongo/db/concurrency/lock_manager_test.cpp b/src/mongo/db/concurrency/lock_manager_test.cpp
index 9195e5c0423..50fc9826a9b 100644
--- a/src/mongo/db/concurrency/lock_manager_test.cpp
+++ b/src/mongo/db/concurrency/lock_manager_test.cpp
@@ -135,7 +135,7 @@ namespace mongo {
LockManager lockMgr;
const ResourceId resId(RESOURCE_COLLECTION, std::string("TestDB.collection"));
- boost::scoped_ptr<MMAPV1LockerImpl> locker[6];
+ std::unique_ptr<MMAPV1LockerImpl> locker[6];
for (int i = 0; i < 6; i++) {
locker[i].reset(new MMAPV1LockerImpl());
}
diff --git a/src/mongo/db/concurrency/lock_stats.cpp b/src/mongo/db/concurrency/lock_stats.cpp
index 70d5a3da065..c115244f369 100644
--- a/src/mongo/db/concurrency/lock_stats.cpp
+++ b/src/mongo/db/concurrency/lock_stats.cpp
@@ -55,14 +55,14 @@ namespace mongo {
const char* sectionName,
const PerModeLockStatCounters& stat) const {
- boost::scoped_ptr<BSONObjBuilder> section;
+ std::unique_ptr<BSONObjBuilder> section;
// All indexing below starts from offset 1, because we do not want to report/account
// position 0, which is a sentinel value for invalid resource/no lock.
// Num acquires
{
- boost::scoped_ptr<BSONObjBuilder> numAcquires;
+ std::unique_ptr<BSONObjBuilder> numAcquires;
for (int mode = 1; mode < LockModesCount; mode++) {
const long long value = CounterOps::get(stat.modeStats[mode].numAcquisitions);
if (value > 0) {
@@ -81,7 +81,7 @@ namespace mongo {
// Num waits
{
- boost::scoped_ptr<BSONObjBuilder> numWaits;
+ std::unique_ptr<BSONObjBuilder> numWaits;
for (int mode = 1; mode < LockModesCount; mode++) {
const long long value = CounterOps::get(stat.modeStats[mode].numWaits);
if (value > 0) {
@@ -100,7 +100,7 @@ namespace mongo {
// Total time waiting
{
- boost::scoped_ptr<BSONObjBuilder> timeAcquiring;
+ std::unique_ptr<BSONObjBuilder> timeAcquiring;
for (int mode = 1; mode < LockModesCount; mode++) {
const long long value = CounterOps::get(stat.modeStats[mode].combinedWaitTimeMicros);
if (value > 0) {
@@ -119,7 +119,7 @@ namespace mongo {
// Deadlocks
{
- boost::scoped_ptr<BSONObjBuilder> deadlockCount;
+ std::unique_ptr<BSONObjBuilder> deadlockCount;
for (int mode = 1; mode < LockModesCount; mode++) {
const long long value = CounterOps::get(stat.modeStats[mode].numDeadlocks);
if (value > 0) {
diff --git a/src/mongo/db/dbcommands.cpp b/src/mongo/db/dbcommands.cpp
index af49eb9d779..e9ff7a92bb0 100644
--- a/src/mongo/db/dbcommands.cpp
+++ b/src/mongo/db/dbcommands.cpp
@@ -32,7 +32,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/optional.hpp>
#include <time.h>
@@ -109,7 +108,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::endl;
using std::ostringstream;
@@ -588,7 +587,7 @@ namespace mongo {
// Check shard version at startup.
// This will throw before we've done any work if shard version is outdated
// We drop and re-acquire these locks every document because md5'ing is expensive
- scoped_ptr<AutoGetCollectionForRead> ctx(new AutoGetCollectionForRead(txn, ns));
+ unique_ptr<AutoGetCollectionForRead> ctx(new AutoGetCollectionForRead(txn, ns));
Collection* coll = ctx->getCollection();
PlanExecutor* rawExec;
@@ -1195,7 +1194,7 @@ namespace {
BSONObj interposedCmd = request.getCommandArgs();
std::string dbname = request.getDatabase().toString();
- scoped_ptr<MaintenanceModeSetter> mmSetter;
+ unique_ptr<MaintenanceModeSetter> mmSetter;
if (isHelpRequest(request)) {
CurOp::get(txn)->ensureStarted();
diff --git a/src/mongo/db/dbeval.cpp b/src/mongo/db/dbeval.cpp
index 2bc695030c5..ae42d2a349d 100644
--- a/src/mongo/db/dbeval.cpp
+++ b/src/mongo/db/dbeval.cpp
@@ -48,7 +48,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::dec;
using std::endl;
using std::string;
@@ -93,7 +93,7 @@ namespace {
return false;
}
- scoped_ptr<Scope> s(globalScriptEngine->newScope());
+ unique_ptr<Scope> s(globalScriptEngine->newScope());
s->registerOperation(txn);
ScriptingFunction f = s->createFunction(code);
diff --git a/src/mongo/db/dbwebserver.h b/src/mongo/db/dbwebserver.h
index 0f4b6625194..10ded265989 100644
--- a/src/mongo/db/dbwebserver.h
+++ b/src/mongo/db/dbwebserver.h
@@ -129,7 +129,7 @@ namespace mongo {
std::vector<std::string>& headers);
- const boost::scoped_ptr<AdminAccess> _webUsers;
+ const std::unique_ptr<AdminAccess> _webUsers;
};
void webServerListenThread(boost::shared_ptr<DbWebServer> dbWebServer);
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;
};
diff --git a/src/mongo/db/geo/big_polygon.cpp b/src/mongo/db/geo/big_polygon.cpp
index 10241db45dc..94723eb4cae 100644
--- a/src/mongo/db/geo/big_polygon.cpp
+++ b/src/mongo/db/geo/big_polygon.cpp
@@ -28,7 +28,6 @@
#include "mongo/db/geo/big_polygon.h"
-#include <boost/scoped_ptr.hpp>
#include <map>
#include "mongo/base/owned_pointer_vector.h"
@@ -36,7 +35,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::vector;
diff --git a/src/mongo/db/geo/big_polygon.h b/src/mongo/db/geo/big_polygon.h
index 7125da35f35..c5a913ac05b 100644
--- a/src/mongo/db/geo/big_polygon.h
+++ b/src/mongo/db/geo/big_polygon.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/db/geo/s2.h"
@@ -104,7 +103,7 @@ namespace mongo {
private:
- boost::scoped_ptr<S2Loop> _loop;
+ std::unique_ptr<S2Loop> _loop;
// Cache whether the loop area is at most 2*Pi (the area of hemisphere).
//
@@ -114,8 +113,8 @@ namespace mongo {
bool _isNormalized;
// Cached to do Intersects() and Contains() with S2Polylines.
- mutable boost::scoped_ptr<S2Polyline> _borderLine;
- mutable boost::scoped_ptr<S2Polygon> _borderPoly;
+ mutable std::unique_ptr<S2Polyline> _borderLine;
+ mutable std::unique_ptr<S2Polygon> _borderPoly;
};
}
diff --git a/src/mongo/db/geo/geometry_container.h b/src/mongo/db/geo/geometry_container.h
index 415f603d178..05ca1ed2962 100644
--- a/src/mongo/db/geo/geometry_container.h
+++ b/src/mongo/db/geo/geometry_container.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -143,20 +142,20 @@ namespace mongo {
// Only one of these shared_ptrs should be non-NULL. S2Region is a
// superclass but it only supports testing against S2Cells. We need
// the most specific class we can get.
- boost::scoped_ptr<PointWithCRS> _point;
- boost::scoped_ptr<LineWithCRS> _line;
- boost::scoped_ptr<BoxWithCRS> _box;
- boost::scoped_ptr<PolygonWithCRS> _polygon;
- boost::scoped_ptr<CapWithCRS> _cap;
- boost::scoped_ptr<MultiPointWithCRS> _multiPoint;
- boost::scoped_ptr<MultiLineWithCRS> _multiLine;
- boost::scoped_ptr<MultiPolygonWithCRS> _multiPolygon;
- boost::scoped_ptr<GeometryCollection> _geometryCollection;
+ std::unique_ptr<PointWithCRS> _point;
+ std::unique_ptr<LineWithCRS> _line;
+ std::unique_ptr<BoxWithCRS> _box;
+ std::unique_ptr<PolygonWithCRS> _polygon;
+ std::unique_ptr<CapWithCRS> _cap;
+ std::unique_ptr<MultiPointWithCRS> _multiPoint;
+ std::unique_ptr<MultiLineWithCRS> _multiLine;
+ std::unique_ptr<MultiPolygonWithCRS> _multiPolygon;
+ std::unique_ptr<GeometryCollection> _geometryCollection;
// Cached for use during covering calculations
// TODO: _s2Region is currently generated immediately - don't necessarily need to do this
- boost::scoped_ptr<S2RegionUnion> _s2Region;
- boost::scoped_ptr<R2Region> _r2Region;
+ std::unique_ptr<S2RegionUnion> _s2Region;
+ std::unique_ptr<R2Region> _r2Region;
};
} // namespace mongo
diff --git a/src/mongo/db/geo/r2_region_coverer.h b/src/mongo/db/geo/r2_region_coverer.h
index ff4f820d755..ddfda208094 100644
--- a/src/mongo/db/geo/r2_region_coverer.h
+++ b/src/mongo/db/geo/r2_region_coverer.h
@@ -29,7 +29,6 @@
#pragma once
#include <boost/noncopyable.hpp>
-#include <boost/scoped_ptr.hpp>
#include <queue>
#include "mongo/db/geo/hash.h"
@@ -109,8 +108,8 @@ namespace mongo {
typedef std::pair<int, Candidate*> QueueEntry;
typedef std::priority_queue<QueueEntry, std::vector<QueueEntry>,
CompareQueueEntries> CandidateQueue;
- boost::scoped_ptr<CandidateQueue> _candidateQueue; // Priority queue owns candidate pointers.
- boost::scoped_ptr<std::vector<GeoHash> > _results;
+ std::unique_ptr<CandidateQueue> _candidateQueue; // Priority queue owns candidate pointers.
+ std::unique_ptr<std::vector<GeoHash> > _results;
};
diff --git a/src/mongo/db/geo/shapes.h b/src/mongo/db/geo/shapes.h
index 297eb8135d3..5eb2f8bceaa 100644
--- a/src/mongo/db/geo/shapes.h
+++ b/src/mongo/db/geo/shapes.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <cmath>
#include <string>
#include <vector>
@@ -191,8 +190,8 @@ namespace mongo {
std::vector<Point> _points;
// Cached attributes of the polygon
- mutable boost::scoped_ptr<Box> _bounds;
- mutable boost::scoped_ptr<Point> _centroid;
+ mutable std::unique_ptr<Box> _bounds;
+ mutable std::unique_ptr<Point> _centroid;
};
class R2Region {
@@ -301,10 +300,10 @@ namespace mongo {
PolygonWithCRS() : crs(UNSET) {}
- boost::scoped_ptr<S2Polygon> s2Polygon;
+ std::unique_ptr<S2Polygon> s2Polygon;
// Simple polygons with strict winding order may be bigger or smaller than a hemisphere.
// Only used for query. We don't support storing/indexing big polygons.
- boost::scoped_ptr<BigSimplePolygon> bigPolygon;
+ std::unique_ptr<BigSimplePolygon> bigPolygon;
Polygon oldPolygon;
CRS crs;
@@ -339,7 +338,7 @@ namespace mongo {
std::vector<PointWithCRS> points;
- // The amount of indirection here is painful but we can't operator= scoped_ptr or
+ // The amount of indirection here is painful but we can't operator= unique_ptr or
// OwnedPointerVector.
OwnedPointerVector<LineWithCRS> lines;
OwnedPointerVector<PolygonWithCRS> polygons;
diff --git a/src/mongo/db/hasher.cpp b/src/mongo/db/hasher.cpp
index 8acb2269459..3ae131a7dee 100644
--- a/src/mongo/db/hasher.cpp
+++ b/src/mongo/db/hasher.cpp
@@ -34,14 +34,13 @@
#include "mongo/db/hasher.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/jsobj.h"
#include "mongo/util/startup_test.h"
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
Hasher::Hasher( HashSeed seed ) : _seed( seed ) {
md5_init( &_md5State );
@@ -57,7 +56,7 @@ namespace mongo {
}
long long int BSONElementHasher::hash64( const BSONElement& e , HashSeed seed ){
- scoped_ptr<Hasher> h( HasherFactory::createHasher( seed ) );
+ unique_ptr<Hasher> h( HasherFactory::createHasher( seed ) );
recursiveHash( h.get() , e , false );
HashDigest d;
h->finish(d);
diff --git a/src/mongo/db/index/btree_access_method.h b/src/mongo/db/index/btree_access_method.h
index a19858ca2b4..4133b41b892 100644
--- a/src/mongo/db/index/btree_access_method.h
+++ b/src/mongo/db/index/btree_access_method.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/db/index/index_access_method.h"
@@ -52,7 +51,7 @@ namespace mongo {
virtual void getKeys(const BSONObj& obj, BSONObjSet* keys) const;
// Our keys differ for V0 and V1.
- boost::scoped_ptr<BtreeKeyGenerator> _keyGenerator;
+ std::unique_ptr<BtreeKeyGenerator> _keyGenerator;
};
} // namespace mongo
diff --git a/src/mongo/db/index/btree_key_generator_test.cpp b/src/mongo/db/index/btree_key_generator_test.cpp
index 9430171f38e..f01f6552f18 100644
--- a/src/mongo/db/index/btree_key_generator_test.cpp
+++ b/src/mongo/db/index/btree_key_generator_test.cpp
@@ -28,14 +28,13 @@
#include "mongo/db/index/btree_key_generator.h"
-#include <boost/scoped_ptr.hpp>
#include <iostream>
#include "mongo/db/json.h"
#include "mongo/unittest/unittest.h"
using namespace mongo;
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::cout;
using std::endl;
using std::vector;
@@ -87,7 +86,7 @@ namespace {
fixed.push_back(BSONElement());
}
- scoped_ptr<BtreeKeyGenerator> keyGen(
+ unique_ptr<BtreeKeyGenerator> keyGen(
new BtreeKeyGeneratorV1(fieldNames, fixed, sparse));
//
diff --git a/src/mongo/db/index/haystack_access_method.cpp b/src/mongo/db/index/haystack_access_method.cpp
index 1d7d27f233c..263568af37a 100644
--- a/src/mongo/db/index/haystack_access_method.cpp
+++ b/src/mongo/db/index/haystack_access_method.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/index/haystack_access_method.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/db/geo/hash.h"
@@ -45,7 +44,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
HaystackAccessMethod::HaystackAccessMethod(IndexCatalogEntry* btreeState, SortedDataInterface* btree)
: IndexAccessMethod(btreeState, btree) {
@@ -104,7 +103,7 @@ namespace mongo {
unordered_set<RecordId, RecordId::Hasher> thisPass;
- scoped_ptr<PlanExecutor> exec(InternalPlanner::indexScan(txn, collection,
+ unique_ptr<PlanExecutor> exec(InternalPlanner::indexScan(txn, collection,
_descriptor, key, key, true));
PlanExecutor::ExecState state;
RecordId loc;
diff --git a/src/mongo/db/instance.cpp b/src/mongo/db/instance.cpp
index 8381d244727..3cb3504c24a 100644
--- a/src/mongo/db/instance.cpp
+++ b/src/mongo/db/instance.cpp
@@ -32,7 +32,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
#include <fstream>
#include <memory>
@@ -110,7 +109,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using logger::LogComponent;
using std::unique_ptr;
using std::endl;
@@ -752,7 +751,7 @@ namespace {
&parsedUpdate,
&op.debug(),
&rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Run the plan and get stats out.
uassertStatusOK(exec->executePlan());
@@ -806,7 +805,7 @@ namespace {
&parsedUpdate,
&op.debug(),
&rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Run the plan and get stats out.
uassertStatusOK(exec->executePlan());
@@ -869,7 +868,7 @@ namespace {
ctx.db()->getCollection(nsString),
&parsedDelete,
&rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Run the plan and get the number of docs deleted.
uassertStatusOK(exec->executePlan());
@@ -904,8 +903,8 @@ namespace {
curop.debug().ntoreturn = ntoreturn;
curop.debug().cursorid = cursorid;
- scoped_ptr<AssertionException> ex;
- scoped_ptr<Timer> timer;
+ unique_ptr<AssertionException> ex;
+ unique_ptr<Timer> timer;
int pass = 0;
bool exhaust = false;
QueryResult::View msgdata = 0;
diff --git a/src/mongo/db/introspect.cpp b/src/mongo/db/introspect.cpp
index 9354f8cd3ca..b0788ad9d55 100644
--- a/src/mongo/db/introspect.cpp
+++ b/src/mongo/db/introspect.cpp
@@ -46,7 +46,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::endl;
using std::string;
@@ -112,7 +112,7 @@ namespace {
while (true) {
ScopedTransaction scopedXact(txn, MODE_IX);
- boost::scoped_ptr<AutoGetDb> autoGetDb;
+ std::unique_ptr<AutoGetDb> autoGetDb;
if (acquireDbXLock) {
autoGetDb.reset(new AutoGetDb(txn, dbName, MODE_X));
if (autoGetDb->getDb()) {
diff --git a/src/mongo/db/matcher/expression.h b/src/mongo/db/matcher/expression.h
index 288611e2b22..c3b11d74258 100644
--- a/src/mongo/db/matcher/expression.h
+++ b/src/mongo/db/matcher/expression.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/status.h"
@@ -203,7 +202,7 @@ namespace mongo {
private:
MatchType _matchType;
- boost::scoped_ptr<TagData> _tagData;
+ std::unique_ptr<TagData> _tagData;
};
/**
diff --git a/src/mongo/db/matcher/expression_array.h b/src/mongo/db/matcher/expression_array.h
index 9b6f05ab273..4bc14230eb9 100644
--- a/src/mongo/db/matcher/expression_array.h
+++ b/src/mongo/db/matcher/expression_array.h
@@ -90,7 +90,7 @@ namespace mongo {
virtual MatchExpression* getChild( size_t i ) const { return _sub.get(); }
private:
- boost::scoped_ptr<MatchExpression> _sub;
+ std::unique_ptr<MatchExpression> _sub;
};
class ElemMatchValueMatchExpression : public ArrayMatchingMatchExpression {
diff --git a/src/mongo/db/matcher/expression_geo.cpp b/src/mongo/db/matcher/expression_geo.cpp
index e8f0fac31d5..d61dba70343 100644
--- a/src/mongo/db/matcher/expression_geo.cpp
+++ b/src/mongo/db/matcher/expression_geo.cpp
@@ -45,7 +45,7 @@ namespace mongo {
// GeoExpression
//
- // Put simple constructors here for scoped_ptr.
+ // Put simple constructors here for unique_ptr.
GeoExpression::GeoExpression() : field(""), predicate(INVALID) {}
GeoExpression::GeoExpression(const std::string& f) : field(f), predicate(INVALID) {}
diff --git a/src/mongo/db/matcher/expression_geo.h b/src/mongo/db/matcher/expression_geo.h
index d8d2a0a105a..59cc2a87ac5 100644
--- a/src/mongo/db/matcher/expression_geo.h
+++ b/src/mongo/db/matcher/expression_geo.h
@@ -71,7 +71,7 @@ namespace mongo {
// Name of the field in the query.
std::string field;
- boost::scoped_ptr<GeometryContainer> geoContainer;
+ std::unique_ptr<GeometryContainer> geoContainer;
Predicate predicate;
};
@@ -120,7 +120,7 @@ namespace mongo {
std::string field;
// The starting point of the near search. Use forward declaration of geometries.
- boost::scoped_ptr<PointWithCRS> centroid;
+ std::unique_ptr<PointWithCRS> centroid;
// Min and max distance from centroid that we're willing to search.
// Distance is in units of the geometry's CRS, except SPHERE and isNearSphere => radians
diff --git a/src/mongo/db/matcher/expression_leaf.h b/src/mongo/db/matcher/expression_leaf.h
index 38648f1b127..44f889d707b 100644
--- a/src/mongo/db/matcher/expression_leaf.h
+++ b/src/mongo/db/matcher/expression_leaf.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/bson/bsonobj.h"
#include "mongo/bson/bsonmisc.h"
@@ -221,7 +220,7 @@ namespace mongo {
private:
std::string _regex;
std::string _flags;
- boost::scoped_ptr<pcrecpp::RE> _re;
+ std::unique_ptr<pcrecpp::RE> _re;
};
class ModMatchExpression : public LeafMatchExpression {
diff --git a/src/mongo/db/matcher/expression_parser_array_test.cpp b/src/mongo/db/matcher/expression_parser_array_test.cpp
index e58bb4683d5..26179f9b0c8 100644
--- a/src/mongo/db/matcher/expression_parser_array_test.cpp
+++ b/src/mongo/db/matcher/expression_parser_array_test.cpp
@@ -518,7 +518,7 @@ namespace mongo {
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> expr( result.getValue() );
+ std::unique_ptr<MatchExpression> expr( result.getValue() );
// Root node should be an AND with one child.
ASSERT_EQUALS( MatchExpression::AND, expr->matchType() );
diff --git a/src/mongo/db/matcher/expression_parser_geo_test.cpp b/src/mongo/db/matcher/expression_parser_geo_test.cpp
index a7636390403..503958ddbab 100644
--- a/src/mongo/db/matcher/expression_parser_geo_test.cpp
+++ b/src/mongo/db/matcher/expression_parser_geo_test.cpp
@@ -44,7 +44,7 @@ namespace mongo {
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT(!result.getValue()->matchesBSON(fromjson("{a: [3,4]}")));
ASSERT(result.getValue()->matchesBSON(fromjson("{a: [4,4]}")));
@@ -60,7 +60,7 @@ namespace mongo {
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
MatchExpression* exp = result.getValue();
ASSERT_EQUALS(MatchExpression::GEO_NEAR, exp->matchType());
diff --git a/src/mongo/db/matcher/expression_parser_leaf_test.cpp b/src/mongo/db/matcher/expression_parser_leaf_test.cpp
index f0ef78ae40c..10655322580 100644
--- a/src/mongo/db/matcher/expression_parser_leaf_test.cpp
+++ b/src/mongo/db/matcher/expression_parser_leaf_test.cpp
@@ -49,7 +49,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$eq" << 2 ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 1 ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
@@ -66,7 +66,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$gt" << 2 ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 3 ) ) );
@@ -76,7 +76,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$lt" << 2 ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 1 ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
@@ -87,7 +87,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$gte" << 2 ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 1 ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
@@ -98,7 +98,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$lte" << 2 ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 1 ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
@@ -109,7 +109,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$ne" << 2 ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 1 ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
@@ -120,7 +120,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$mod" << BSON_ARRAY( 3 << 2 ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy1(result.getValue());
+ std::unique_ptr<MatchExpression> destroy1(result.getValue());
query = BSON( "x" << BSON( "$mod" << BSON_ARRAY( 3 ) ) );
result = MatchExpressionParser::parse( query );
@@ -147,7 +147,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$mod" << BSON_ARRAY( 3 << 2 ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 5 ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 4 ) ) );
@@ -158,7 +158,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$mod" << BSON_ARRAY( 2 << "r" ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 4 ) ) );
@@ -171,7 +171,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$in" << BSON_ARRAY( 2 << 3 ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 1 ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
@@ -185,7 +185,7 @@ namespace mongo {
BSON( "$ref" << "coll" << "$id" << oid << "$db" << "db" ) ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
OID oidx = OID::gen();
ASSERT( !result.getValue()->matchesBSON(
@@ -222,7 +222,7 @@ namespace mongo {
BSON( "$ref" << "coll" << "$id" << oid << "$db" << "db" ) ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
OID oidx = OID::gen();
ASSERT( !result.getValue()->matchesBSON(
@@ -285,7 +285,7 @@ namespace mongo {
BSON( "$ref" << "coll" << "$id" << oid << "foo" << 12345 ) ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
OID oidx = OID::gen();
ASSERT( !result.getValue()->matchesBSON(
@@ -384,7 +384,7 @@ namespace mongo {
BSONObj query = BSON( "a" << operand.obj() );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
BSONObj matchFirst = BSON( "a" << "ax" );
BSONObj matchFirstRegex = BSONObjBuilder().appendRegex( "a", "^a", "" ).obj();
@@ -407,7 +407,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$nin" << BSON_ARRAY( 2 << 3 ) ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 1 ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 2 ) ) );
@@ -427,7 +427,7 @@ namespace mongo {
BSONObj query = b.obj();
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "abc" ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "ABC" ) ) );
@@ -438,7 +438,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$regex" << "abc" << "$options" << "i" ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "abc" ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "ABC" ) ) );
@@ -450,7 +450,7 @@ namespace mongo {
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
log() << "result: " << result.getStatus() << endl;
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "abc" ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "ABC" ) ) );
@@ -487,7 +487,7 @@ namespace mongo {
BSONObj query = BSON( "x" << b.obj() );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "abc" ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "y" << "AC" ) ) );
@@ -499,7 +499,7 @@ namespace mongo {
BSONObj query = BSON( "x" << b.obj() );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << "abc" ) ) );
ASSERT( result.getValue()->matchesBSON( BSON( "y" << "AC" ) ) );
@@ -509,7 +509,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$type" << String ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << "abc" ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 5 ) ) );
@@ -519,7 +519,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$type" << (double)NumberDouble ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( result.getValue()->matchesBSON( BSON( "x" << 5.3 ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 5 ) ) );
@@ -529,7 +529,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$type" << 1.5 ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 5.3 ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 5 ) ) );
@@ -539,7 +539,7 @@ namespace mongo {
BSONObj query = BSON( "x" << BSON( "$type" << jstNULL ) );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSONObj() ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 5 ) ) );
@@ -554,7 +554,7 @@ namespace mongo {
BSONObj query = BSON( "x" << b.obj() );
StatusWithMatchExpression result = MatchExpressionParser::parse( query );
ASSERT_TRUE( result.isOK() );
- boost::scoped_ptr<MatchExpression> destroy(result.getValue());
+ std::unique_ptr<MatchExpression> destroy(result.getValue());
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 5.3 ) ) );
ASSERT( !result.getValue()->matchesBSON( BSON( "x" << 5 ) ) );
diff --git a/src/mongo/db/matcher/expression_parser_text_test.cpp b/src/mongo/db/matcher/expression_parser_text_test.cpp
index 42eb9ce2464..2933c825b08 100644
--- a/src/mongo/db/matcher/expression_parser_text_test.cpp
+++ b/src/mongo/db/matcher/expression_parser_text_test.cpp
@@ -46,7 +46,7 @@ namespace mongo {
ASSERT_TRUE( result.isOK() );
ASSERT_EQUALS( MatchExpression::TEXT, result.getValue()->matchType() );
- boost::scoped_ptr<TextMatchExpression> textExp(
+ std::unique_ptr<TextMatchExpression> textExp(
static_cast<TextMatchExpression*>( result.getValue() ) );
ASSERT_EQUALS( textExp->getQuery(), "awesome" );
ASSERT_EQUALS( textExp->getLanguage(), "english" );
@@ -67,7 +67,7 @@ namespace mongo {
ASSERT_TRUE( result.isOK() );
ASSERT_EQUALS( MatchExpression::TEXT, result.getValue()->matchType() );
- boost::scoped_ptr<TextMatchExpression> textExp(
+ std::unique_ptr<TextMatchExpression> textExp(
static_cast<TextMatchExpression*>( result.getValue() ) );
ASSERT_EQUALS( textExp->getCaseSensitive(), true );
}
@@ -79,7 +79,7 @@ namespace mongo {
ASSERT_TRUE( result.isOK() );
ASSERT_EQUALS( MatchExpression::TEXT, result.getValue()->matchType() );
- boost::scoped_ptr<TextMatchExpression> textExp(
+ std::unique_ptr<TextMatchExpression> textExp(
static_cast<TextMatchExpression*>( result.getValue() ) );
ASSERT_EQUALS( textExp->getCaseSensitive(), false );
}
diff --git a/src/mongo/db/matcher/expression_tree.h b/src/mongo/db/matcher/expression_tree.h
index b6441e70f57..6e35af8df72 100644
--- a/src/mongo/db/matcher/expression_tree.h
+++ b/src/mongo/db/matcher/expression_tree.h
@@ -32,7 +32,6 @@
#include "mongo/db/matcher/expression.h"
-#include <boost/scoped_ptr.hpp>
/**
* this contains all Expessions that define the structure of the tree
diff --git a/src/mongo/db/matcher/match_details.h b/src/mongo/db/matcher/match_details.h
index 2209c4ac1ff..8d5f016747f 100644
--- a/src/mongo/db/matcher/match_details.h
+++ b/src/mongo/db/matcher/match_details.h
@@ -30,8 +30,7 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
-
+#include <memory>
#include <string>
namespace mongo {
@@ -69,6 +68,6 @@ namespace mongo {
private:
bool _loadedRecord;
bool _elemMatchKeyRequested;
- boost::scoped_ptr<std::string> _elemMatchKey;
+ std::unique_ptr<std::string> _elemMatchKey;
};
}
diff --git a/src/mongo/db/matcher/matcher.h b/src/mongo/db/matcher/matcher.h
index 278f6668789..629f08facd5 100644
--- a/src/mongo/db/matcher/matcher.h
+++ b/src/mongo/db/matcher/matcher.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/status.h"
@@ -62,7 +61,7 @@ namespace mongo {
private:
BSONObj _pattern;
- boost::scoped_ptr<MatchExpression> _expression;
+ std::unique_ptr<MatchExpression> _expression;
};
} // namespace mongo
diff --git a/src/mongo/db/matcher/path.h b/src/mongo/db/matcher/path.h
index 4aae82af3ef..11fec9ff673 100644
--- a/src/mongo/db/matcher/path.h
+++ b/src/mongo/db/matcher/path.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/base/string_data.h"
@@ -158,13 +157,13 @@ namespace mongo {
BSONElement _theArray;
BSONElement _current;
- boost::scoped_ptr<BSONObjIterator> _iterator;
+ std::unique_ptr<BSONObjIterator> _iterator;
};
ArrayIterationState _arrayIterationState;
- boost::scoped_ptr<ElementIterator> _subCursor;
- boost::scoped_ptr<ElementPath> _subCursorPath;
+ std::unique_ptr<ElementIterator> _subCursor;
+ std::unique_ptr<ElementPath> _subCursorPath;
};
}
diff --git a/src/mongo/db/operation_context_impl.h b/src/mongo/db/operation_context_impl.h
index 163bff53295..36b6688bfab 100644
--- a/src/mongo/db/operation_context_impl.h
+++ b/src/mongo/db/operation_context_impl.h
@@ -27,7 +27,6 @@
*/
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/db/operation_context.h"
diff --git a/src/mongo/db/operation_context_noop.h b/src/mongo/db/operation_context_noop.h
index 055c83d690c..5466806b276 100644
--- a/src/mongo/db/operation_context_noop.h
+++ b/src/mongo/db/operation_context_noop.h
@@ -27,7 +27,6 @@
*/
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/operation_context.h"
#include "mongo/db/client.h"
@@ -113,7 +112,7 @@ namespace mongo {
private:
std::unique_ptr<RecoveryUnit> _recoveryUnit;
- boost::scoped_ptr<Locker> _locker;
+ std::unique_ptr<Locker> _locker;
ProgressMeter _pm;
};
diff --git a/src/mongo/db/ops/delete.cpp b/src/mongo/db/ops/delete.cpp
index f7782d14edf..ecf4f752873 100644
--- a/src/mongo/db/ops/delete.cpp
+++ b/src/mongo/db/ops/delete.cpp
@@ -69,7 +69,7 @@ namespace mongo {
PlanExecutor* rawExec;
uassertStatusOK(getExecutorDelete(txn, collection, &parsedDelete, &rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
uassertStatusOK(exec->executePlan());
return DeleteStage::getNumDeleted(exec.get());
diff --git a/src/mongo/db/ops/modifier_add_to_set.h b/src/mongo/db/ops/modifier_add_to_set.h
index 296009385b9..bbbc37ece1e 100644
--- a/src/mongo/db/ops/modifier_add_to_set.h
+++ b/src/mongo/db/ops/modifier_add_to_set.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/bson/mutable/document.h"
@@ -80,7 +79,7 @@ namespace mongo {
mutablebson::Element _val;
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_bit.h b/src/mongo/db/ops/modifier_bit.h
index 1f5a9437f1e..812ac8f41e1 100644
--- a/src/mongo/db/ops/modifier_bit.h
+++ b/src/mongo/db/ops/modifier_bit.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -94,7 +93,7 @@ namespace mongo {
OpEntries _ops;
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_compare.h b/src/mongo/db/ops/modifier_compare.h
index 4d1afbcacf7..8285f3e10ad 100644
--- a/src/mongo/db/ops/modifier_compare.h
+++ b/src/mongo/db/ops/modifier_compare.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -105,7 +104,7 @@ namespace mongo {
// prepare() was issued and until a log() is issued. The document this mod is
// being prepared against must be live throughout all the calls.
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_current_date.h b/src/mongo/db/ops/modifier_current_date.h
index 09e56c9c8ac..291c05b377a 100644
--- a/src/mongo/db/ops/modifier_current_date.h
+++ b/src/mongo/db/ops/modifier_current_date.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -84,7 +83,7 @@ namespace mongo {
// State which changes with each call of the mod.
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_inc.h b/src/mongo/db/ops/modifier_inc.h
index 62c81cafbee..cfb7bbdf25d 100644
--- a/src/mongo/db/ops/modifier_inc.h
+++ b/src/mongo/db/ops/modifier_inc.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -95,7 +94,7 @@ namespace mongo {
SafeNum _val;
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_object_replace.h b/src/mongo/db/ops/modifier_object_replace.h
index 393036d610b..4e923e4a7fd 100644
--- a/src/mongo/db/ops/modifier_object_replace.h
+++ b/src/mongo/db/ops/modifier_object_replace.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/status.h"
@@ -93,7 +92,7 @@ namespace mongo {
// was issued and until a log() is issued. The document this mod is being prepared
// against must e live throughout all the calls.
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_pop.h b/src/mongo/db/ops/modifier_pop.h
index c495c4c07fa..41501275619 100644
--- a/src/mongo/db/ops/modifier_pop.h
+++ b/src/mongo/db/ops/modifier_pop.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -83,7 +82,7 @@ namespace mongo {
// The instance of the field in the provided doc.
// This data is valid after prepare, for use by log and apply
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_pull.h b/src/mongo/db/ops/modifier_pull.h
index 25a7f784f2a..4660fd28b62 100644
--- a/src/mongo/db/ops/modifier_pull.h
+++ b/src/mongo/db/ops/modifier_pull.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/bson/mutable/document.h"
@@ -78,11 +77,11 @@ namespace mongo {
BSONObj _exprObj;
// If we are using the matcher, this is the match expression we built around _exprObj.
- boost::scoped_ptr<MatchExpression> _matchExpr;
+ std::unique_ptr<MatchExpression> _matchExpr;
bool _matcherOnPrimitive;
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_pull_all.h b/src/mongo/db/ops/modifier_pull_all.h
index bdc96b18b74..fef6c7b03f3 100644
--- a/src/mongo/db/ops/modifier_pull_all.h
+++ b/src/mongo/db/ops/modifier_pull_all.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -78,7 +77,7 @@ namespace mongo {
// The instance of the field in the provided doc.
// This data is valid after prepare, for use by log and apply
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
// User specified elements to remove
std::vector<BSONElement> _elementsToFind;
diff --git a/src/mongo/db/ops/modifier_push.h b/src/mongo/db/ops/modifier_push.h
index bc2929555f5..708c6431d97 100644
--- a/src/mongo/db/ops/modifier_push.h
+++ b/src/mongo/db/ops/modifier_push.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -129,7 +128,7 @@ namespace mongo {
// prepare() was issued and until a log() is issued. The document this mod is
// being prepared against must be live throughout all the calls.
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
diff --git a/src/mongo/db/ops/modifier_rename.h b/src/mongo/db/ops/modifier_rename.h
index a0407ab9d31..a43523f5320 100644
--- a/src/mongo/db/ops/modifier_rename.h
+++ b/src/mongo/db/ops/modifier_rename.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -93,7 +92,7 @@ namespace mongo {
// The state carried over from prepare for apply/log
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
} // namespace mongo
diff --git a/src/mongo/db/ops/modifier_set.h b/src/mongo/db/ops/modifier_set.h
index eeae479a162..cc961163234 100644
--- a/src/mongo/db/ops/modifier_set.h
+++ b/src/mongo/db/ops/modifier_set.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -108,7 +107,7 @@ namespace mongo {
// prepare() was issued and until a log() is issued. The document this mod is
// being prepared against must be live throughout all the calls.
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
diff --git a/src/mongo/db/ops/modifier_unset.h b/src/mongo/db/ops/modifier_unset.h
index aff10a80e07..53417a3c37e 100644
--- a/src/mongo/db/ops/modifier_unset.h
+++ b/src/mongo/db/ops/modifier_unset.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -97,7 +96,7 @@ namespace mongo {
// prepare() was issued and until a log() is issued. The document this mod is
// being prepared against must be live throughout all the calls.
struct PreparedState;
- boost::scoped_ptr<PreparedState> _preparedState;
+ std::unique_ptr<PreparedState> _preparedState;
};
diff --git a/src/mongo/db/ops/update.cpp b/src/mongo/db/ops/update.cpp
index b4d8de45094..cf60978b4b8 100644
--- a/src/mongo/db/ops/update.cpp
+++ b/src/mongo/db/ops/update.cpp
@@ -101,7 +101,7 @@ namespace mongo {
PlanExecutor* rawExec;
uassertStatusOK(getExecutorUpdate(txn, collection, &parsedUpdate, opDebug, &rawExec));
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
uassertStatusOK(exec->executePlan());
return UpdateStage::makeUpdateResult(exec.get(), opDebug);
diff --git a/src/mongo/db/ops/update_driver.cpp b/src/mongo/db/ops/update_driver.cpp
index b5737419dad..0cb17de5de6 100644
--- a/src/mongo/db/ops/update_driver.cpp
+++ b/src/mongo/db/ops/update_driver.cpp
@@ -28,7 +28,6 @@
#include "mongo/db/ops/update_driver.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/error_codes.h"
#include "mongo/base/string_data.h"
@@ -48,7 +47,7 @@ namespace mongo {
namespace str = mongoutils::str;
namespace mb = mongo::mutablebson;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::vector;
@@ -181,7 +180,7 @@ namespace mongo {
Status s = CanonicalQuery::canonicalize("", query, &rawCG, WhereCallbackNoop());
if (!s.isOK())
return s;
- scoped_ptr<CanonicalQuery> cq(rawCG);
+ unique_ptr<CanonicalQuery> cq(rawCG);
return populateDocumentWithQueryFields(rawCG, immutablePaths, doc);
}
@@ -232,8 +231,8 @@ namespace mongo {
FieldRefSet* targetFields = updatedFields;
// If we didn't get a FieldRefSet* from the caller, allocate storage and use
- // the scoped_ptr for lifecycle management
- scoped_ptr<FieldRefSet> targetFieldScopedPtr;
+ // the unique_ptr for lifecycle management
+ unique_ptr<FieldRefSet> targetFieldScopedPtr;
if (!targetFields) {
targetFieldScopedPtr.reset(new FieldRefSet());
targetFields = targetFieldScopedPtr.get();
diff --git a/src/mongo/db/ops/update_driver_test.cpp b/src/mongo/db/ops/update_driver_test.cpp
index 22140b5389e..1fd93aa27c1 100644
--- a/src/mongo/db/ops/update_driver_test.cpp
+++ b/src/mongo/db/ops/update_driver_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/db/ops/update_driver.h"
-#include <boost/scoped_ptr.hpp>
#include <map>
@@ -156,8 +155,8 @@ namespace {
}
private:
- boost::scoped_ptr<UpdateDriver> _driverOps;
- boost::scoped_ptr<UpdateDriver> _driverRepl;
+ std::unique_ptr<UpdateDriver> _driverOps;
+ std::unique_ptr<UpdateDriver> _driverRepl;
Document _doc;
};
diff --git a/src/mongo/db/pipeline/document_source.h b/src/mongo/db/pipeline/document_source.h
index fd88833611d..befbfad2198 100644
--- a/src/mongo/db/pipeline/document_source.h
+++ b/src/mongo/db/pipeline/document_source.h
@@ -32,7 +32,6 @@
#include <boost/optional.hpp>
#include <boost/intrusive_ptr.hpp>
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/unordered_map.hpp>
#include <deque>
@@ -550,7 +549,7 @@ namespace mongo {
bool _spilled;
const bool _extSortAllowed;
const int _maxMemoryUsageBytes;
- boost::scoped_ptr<Variables> _variables;
+ std::unique_ptr<Variables> _variables;
std::vector<std::string> _idFieldNames; // used when id is a document
std::vector<boost::intrusive_ptr<Expression> > _idExpressions;
@@ -558,7 +557,7 @@ namespace mongo {
GroupsMap::iterator groupsIterator;
// only used when _spilled
- boost::scoped_ptr<Sorter<Value, Value>::Iterator> _sorterIterator;
+ std::unique_ptr<Sorter<Value, Value>::Iterator> _sorterIterator;
std::pair<Value, Value> _firstPartOfNextGroup;
Value _currentId;
Accumulators _currentAccumulators;
@@ -609,7 +608,7 @@ namespace mongo {
DocumentSourceMatch(const BSONObj &query,
const boost::intrusive_ptr<ExpressionContext> &pExpCtx);
- boost::scoped_ptr<Matcher> matcher;
+ std::unique_ptr<Matcher> matcher;
bool _isTextQuery;
};
@@ -759,7 +758,7 @@ namespace mongo {
const boost::intrusive_ptr<ExpressionObject>& exprObj);
// configuration state
- boost::scoped_ptr<Variables> _variables;
+ std::unique_ptr<Variables> _variables;
boost::intrusive_ptr<ExpressionObject> pEO;
BSONObj _raw;
};
@@ -788,7 +787,7 @@ namespace mongo {
Value redactValue(const Value& in);
Variables::Id _currentId;
- boost::scoped_ptr<Variables> _variables;
+ std::unique_ptr<Variables> _variables;
boost::intrusive_ptr<Expression> _expression;
};
@@ -904,7 +903,7 @@ namespace mongo {
bool _done;
bool _mergingPresorted;
- boost::scoped_ptr<MySorter::Iterator> _output;
+ std::unique_ptr<MySorter::Iterator> _output;
};
class DocumentSourceLimit : public DocumentSource
@@ -1052,11 +1051,11 @@ namespace mongo {
void unwindPath(const FieldPath &fieldPath);
// Configuration state.
- boost::scoped_ptr<FieldPath> _unwindPath;
+ std::unique_ptr<FieldPath> _unwindPath;
// Iteration state.
class Unwinder;
- boost::scoped_ptr<Unwinder> _unwinder;
+ std::unique_ptr<Unwinder> _unwinder;
};
class DocumentSourceGeoNear : public DocumentSource
@@ -1098,16 +1097,16 @@ namespace mongo {
// coords and distanceField are required, rest are optional
BSONObj coords; // "near" option, but near is a reserved keyword on windows
bool coordsIsArray;
- boost::scoped_ptr<FieldPath> distanceField; // Using scoped_ptr because FieldPath can't be empty
+ std::unique_ptr<FieldPath> distanceField; // Using unique_ptr because FieldPath can't be empty
long long limit;
double maxDistance;
BSONObj query;
bool spherical;
double distanceMultiplier;
- boost::scoped_ptr<FieldPath> includeLocs;
+ std::unique_ptr<FieldPath> includeLocs;
// these fields are used while processing the results
BSONObj cmdOutput;
- boost::scoped_ptr<BSONObjIterator> resultsIterator; // iterator over cmdOutput["results"]
+ std::unique_ptr<BSONObjIterator> resultsIterator; // iterator over cmdOutput["results"]
};
}
diff --git a/src/mongo/db/pipeline/document_source_sort.cpp b/src/mongo/db/pipeline/document_source_sort.cpp
index 95abf93400b..77fa0180332 100644
--- a/src/mongo/db/pipeline/document_source_sort.cpp
+++ b/src/mongo/db/pipeline/document_source_sort.cpp
@@ -31,7 +31,6 @@
#include "mongo/db/pipeline/document_source.h"
#include <boost/make_shared.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/jsobj.h"
#include "mongo/db/pipeline/document.h"
@@ -42,7 +41,7 @@
namespace mongo {
using boost::intrusive_ptr;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::make_pair;
using std::string;
using std::vector;
@@ -239,7 +238,7 @@ namespace mongo {
msgasserted(17196, "can only mergePresorted from MergeCursors and CommandShards");
}
} else {
- scoped_ptr<MySorter> sorter (MySorter::make(makeSortOptions(), Comparator(*this)));
+ unique_ptr<MySorter> sorter (MySorter::make(makeSortOptions(), Comparator(*this)));
while (boost::optional<Document> next = pSource->getNext()) {
sorter->add(extractKey(*next), *next);
}
diff --git a/src/mongo/db/query/canonical_query.h b/src/mongo/db/query/canonical_query.h
index b14fb29c233..365a06e4802 100644
--- a/src/mongo/db/query/canonical_query.h
+++ b/src/mongo/db/query/canonical_query.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/db/dbmessage.h"
@@ -215,12 +214,12 @@ namespace mongo {
const MatchExpressionParser::WhereCallback& whereCallback,
MatchExpression* root);
- boost::scoped_ptr<LiteParsedQuery> _pq;
+ std::unique_ptr<LiteParsedQuery> _pq;
// _root points into _pq->getFilter()
- boost::scoped_ptr<MatchExpression> _root;
+ std::unique_ptr<MatchExpression> _root;
- boost::scoped_ptr<ParsedProjection> _proj;
+ std::unique_ptr<ParsedProjection> _proj;
};
} // namespace mongo
diff --git a/src/mongo/db/query/explain.cpp b/src/mongo/db/query/explain.cpp
index e67bb343dfb..1f37907c877 100644
--- a/src/mongo/db/query/explain.cpp
+++ b/src/mongo/db/query/explain.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/query/explain.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/owned_pointer_vector.h"
#include "mongo/db/exec/multi_plan.h"
@@ -48,7 +47,7 @@
namespace {
using namespace mongo;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::string;
using std::vector;
@@ -501,7 +500,7 @@ namespace mongo {
AllowedIndices* allowedIndicesRaw;
if (querySettings->getAllowedIndices(planCacheKey, &allowedIndicesRaw)) {
// Found an index filter set on the query shape.
- boost::scoped_ptr<AllowedIndices> allowedIndices(allowedIndicesRaw);
+ std::unique_ptr<AllowedIndices> allowedIndices(allowedIndicesRaw);
indexFilterSet = true;
}
}
@@ -612,7 +611,7 @@ namespace mongo {
//
// Get stats for the winning plan.
- scoped_ptr<PlanStageStats> winningStats(exec->getStats());
+ unique_ptr<PlanStageStats> winningStats(exec->getStats());
// Get stats for the rejected plans, if more than one plan was considered.
OwnedPointerVector<PlanStageStats> allPlansStats;
diff --git a/src/mongo/db/query/find.cpp b/src/mongo/db/query/find.cpp
index a722ceb05b8..dbf656723ba 100644
--- a/src/mongo/db/query/find.cpp
+++ b/src/mongo/db/query/find.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/query/find.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/dbclientinterface.h"
#include "mongo/db/catalog/collection.h"
@@ -62,7 +61,7 @@
#include "mongo/util/log.h"
#include "mongo/util/mongoutils/str.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::unique_ptr;
using std::endl;
@@ -230,7 +229,7 @@ namespace mongo {
// Set debug information for consumption by the profiler only.
if (dbProfilingLevel > 0) {
// Get BSON stats.
- scoped_ptr<PlanStageStats> execStats(exec->getStats());
+ unique_ptr<PlanStageStats> execStats(exec->getStats());
BSONObjBuilder statsBob;
Explain::statsToBSON(*execStats, &statsBob);
curop->debug().execStats.set(statsBob.obj());
@@ -286,9 +285,9 @@ namespace mongo {
// Note that we declare our locks before our ClientCursorPin, in order to ensure that the
// pin's destructor is called before the lock destructors (so that the unpin occurs under
// the lock).
- boost::scoped_ptr<AutoGetCollectionForRead> ctx;
- boost::scoped_ptr<Lock::DBLock> unpinDBLock;
- boost::scoped_ptr<Lock::CollectionLock> unpinCollLock;
+ std::unique_ptr<AutoGetCollectionForRead> ctx;
+ std::unique_ptr<Lock::DBLock> unpinDBLock;
+ std::unique_ptr<Lock::CollectionLock> unpinCollLock;
CursorManager* cursorManager;
CursorManager* globalCursorManager = CursorManager::getGlobalCursorManager();
diff --git a/src/mongo/db/query/get_executor.cpp b/src/mongo/db/query/get_executor.cpp
index 74d0d42051a..2b7f0980b4b 100644
--- a/src/mongo/db/query/get_executor.cpp
+++ b/src/mongo/db/query/get_executor.cpp
@@ -166,7 +166,7 @@ namespace mongo {
// Filter index catalog if index filters are specified for query.
// Also, signal to planner that application hint should be ignored.
if (querySettings->getAllowedIndices(planCacheKey, &allowedIndicesRaw)) {
- boost::scoped_ptr<AllowedIndices> allowedIndices(allowedIndicesRaw);
+ std::unique_ptr<AllowedIndices> allowedIndices(allowedIndicesRaw);
filterAllowedIndexEntries(*allowedIndices, &plannerParams->indices);
plannerParams->indexFiltersApplied = true;
}
@@ -319,7 +319,7 @@ namespace mongo {
if (PlanCache::shouldCacheQuery(*canonicalQuery) &&
collection->infoCache()->getPlanCache()->get(*canonicalQuery, &rawCS).isOK()) {
// We have a CachedSolution. Have the planner turn it into a QuerySolution.
- boost::scoped_ptr<CachedSolution> cs(rawCS);
+ std::unique_ptr<CachedSolution> cs(rawCS);
QuerySolution *qs;
Status status = QueryPlanner::planFromCache(*canonicalQuery, plannerParams, *cs,
&qs);
diff --git a/src/mongo/db/query/lite_parsed_query_test.cpp b/src/mongo/db/query/lite_parsed_query_test.cpp
index b2f0bc1ad9c..820ce989a8e 100644
--- a/src/mongo/db/query/lite_parsed_query_test.cpp
+++ b/src/mongo/db/query/lite_parsed_query_test.cpp
@@ -34,13 +34,12 @@
#include <boost/optional.hpp>
#include <boost/optional/optional_io.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/json.h"
#include "mongo/unittest/unittest.h"
using namespace mongo;
-using boost::scoped_ptr;
+using std::unique_ptr;
namespace {
@@ -149,7 +148,7 @@ namespace {
false, // explain
&lpqRaw);
if (result.isOK()) {
- boost::scoped_ptr<LiteParsedQuery> lpq(lpqRaw);
+ std::unique_ptr<LiteParsedQuery> lpq(lpqRaw);
}
return result;
@@ -278,7 +277,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
}
TEST(LiteParsedQueryTest, ParseFromCommandWithOptions) {
@@ -293,7 +292,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
// Make sure the values from the command BSON are reflected in the LPQ.
ASSERT(lpq->showRecordId());
@@ -309,7 +308,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
BSONObj hintObj = lpq->getHint();
ASSERT_EQUALS(BSON("$hint" << "foo_1"), hintObj);
@@ -323,7 +322,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
}
TEST(LiteParsedQueryTest, ParseFromCommandValidSortProjMeta) {
@@ -334,7 +333,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
}
TEST(LiteParsedQueryTest, ParseFromCommandAllFlagsTrue) {
@@ -350,7 +349,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
// Test that all the flags got set to true.
ASSERT(lpq->isTailable());
@@ -371,7 +370,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
ASSERT_EQUALS("the comment", lpq->getComment());
BSONObj expectedMin = BSON("a" << 1);
@@ -395,7 +394,7 @@ namespace {
bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
// Check the values inside the LPQ.
BSONObj expectedQuery = BSON("a" << 1);
@@ -696,7 +695,7 @@ namespace {
const bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- boost::scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ std::unique_ptr<LiteParsedQuery> lpq(rawLpq);
ASSERT(lpq->getBatchSize());
ASSERT_EQ(0, lpq->getBatchSize());
@@ -711,7 +710,7 @@ namespace {
const bool isExplain = false;
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- boost::scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ std::unique_ptr<LiteParsedQuery> lpq(rawLpq);
ASSERT(!lpq->getBatchSize());
ASSERT(!lpq->getLimit());
@@ -771,7 +770,7 @@ namespace {
"sort: {b: 1}}");
status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ unique_ptr<LiteParsedQuery> lpq(rawLpq);
}
TEST(LiteParsedQueryTest, ParseCommandForbidMetaSortOnFieldWithoutMetaProject) {
@@ -810,7 +809,7 @@ namespace {
Status status = LiteParsedQuery::make("testns", cmdObj, isExplain, &rawLpq);
ASSERT_OK(status);
- boost::scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ std::unique_ptr<LiteParsedQuery> lpq(rawLpq);
ASSERT(lpq->fromFindCommand());
}
@@ -824,7 +823,7 @@ namespace {
&rawLpq);
ASSERT_OK(status);
- boost::scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ std::unique_ptr<LiteParsedQuery> lpq(rawLpq);
ASSERT(!lpq->fromFindCommand());
}
@@ -844,7 +843,7 @@ namespace {
Status status = LiteParsedQuery::make("testns", cmdObj, false, &rawLpq);
ASSERT_OK(status);
- boost::scoped_ptr<LiteParsedQuery> lpq(rawLpq);
+ std::unique_ptr<LiteParsedQuery> lpq(rawLpq);
ASSERT_EQUALS(0, lpq->getSkip());
ASSERT_EQUALS(true, lpq->wantMore());
diff --git a/src/mongo/db/query/parsed_projection_test.cpp b/src/mongo/db/query/parsed_projection_test.cpp
index 4507da17a1d..c669490f35a 100644
--- a/src/mongo/db/query/parsed_projection_test.cpp
+++ b/src/mongo/db/query/parsed_projection_test.cpp
@@ -48,7 +48,7 @@ namespace {
unique_ptr<ParsedProjection> createParsedProjection(const BSONObj& query, const BSONObj& projObj) {
StatusWithMatchExpression swme = MatchExpressionParser::parse(query);
ASSERT(swme.isOK());
- boost::scoped_ptr<MatchExpression> queryMatchExpr(swme.getValue());
+ std::unique_ptr<MatchExpression> queryMatchExpr(swme.getValue());
ParsedProjection* out = NULL;
Status status = ParsedProjection::make(projObj, queryMatchExpr.get(), &out);
if (!status.isOK()) {
@@ -74,10 +74,10 @@ namespace {
BSONObj projObj = fromjson(projStr);
StatusWithMatchExpression swme = MatchExpressionParser::parse(query);
ASSERT(swme.isOK());
- boost::scoped_ptr<MatchExpression> queryMatchExpr(swme.getValue());
+ std::unique_ptr<MatchExpression> queryMatchExpr(swme.getValue());
ParsedProjection* out = NULL;
Status status = ParsedProjection::make(projObj, queryMatchExpr.get(), &out);
- boost::scoped_ptr<ParsedProjection> destroy(out);
+ std::unique_ptr<ParsedProjection> destroy(out);
ASSERT(!status.isOK());
}
@@ -184,7 +184,7 @@ namespace {
BSONObj projObj = fromjson("{'a.$': 1}");
Status status = ParsedProjection::make(projObj, queryMatchExpr.get(), &out);
ASSERT(!status.isOK());
- boost::scoped_ptr<ParsedProjection> destroy(out);
+ std::unique_ptr<ParsedProjection> destroy(out);
// Projecting onto empty field should fail.
BSONObj emptyFieldProjObj = fromjson("{'.$': 1}");
diff --git a/src/mongo/db/query/plan_cache.h b/src/mongo/db/query/plan_cache.h
index ef90363748d..488180537e4 100644
--- a/src/mongo/db/query/plan_cache.h
+++ b/src/mongo/db/query/plan_cache.h
@@ -30,7 +30,6 @@
#include <set>
#include <boost/optional/optional.hpp>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/mutex.hpp>
#include "mongo/db/exec/plan_stats.h"
@@ -56,7 +55,7 @@ namespace mongo {
*/
struct PlanCacheEntryFeedback {
// How well did the cached plan perform?
- boost::scoped_ptr<PlanStageStats> stats;
+ std::unique_ptr<PlanStageStats> stats;
// The "goodness" score produced by the plan ranker
// corresponding to 'stats'.
@@ -87,7 +86,7 @@ namespace mongo {
* This is done by QueryPlanner::tagAccordingToCache.
*/
struct PlanCacheIndexTree {
- PlanCacheIndexTree() : entry(NULL), index_pos(0) { }
+ PlanCacheIndexTree() : entry(nullptr), index_pos(0) { }
~PlanCacheIndexTree() {
for (std::vector<PlanCacheIndexTree*>::const_iterator it = children.begin();
@@ -115,7 +114,7 @@ namespace mongo {
std::vector<PlanCacheIndexTree*> children;
// Owned here.
- boost::scoped_ptr<IndexEntry> entry;
+ std::unique_ptr<IndexEntry> entry;
size_t index_pos;
};
@@ -128,7 +127,7 @@ namespace mongo {
*/
struct SolutionCacheData {
SolutionCacheData() :
- tree(NULL),
+ tree(nullptr),
solnType(USE_INDEX_TAGS_SOLN),
wholeIXSolnDir(1),
indexFilterApplied(false) {
@@ -144,7 +143,7 @@ namespace mongo {
// can be used to tag an isomorphic match expression. If 'wholeIXSoln'
// is true, then 'tree' is used to store the relevant IndexEntry.
// If 'collscanSoln' is true, then 'tree' should be NULL.
- boost::scoped_ptr<PlanCacheIndexTree> tree;
+ std::unique_ptr<PlanCacheIndexTree> tree;
enum SolutionType {
// Indicates that the plan should use
@@ -252,7 +251,7 @@ namespace mongo {
// Information that went into picking the winning plan and also why
// the other plans lost.
- boost::scoped_ptr<PlanRankingDecision> decision;
+ std::unique_ptr<PlanRankingDecision> decision;
// Annotations from cached runs. The CachedPlanStage provides these stats about its
// runs when they complete.
diff --git a/src/mongo/db/query/plan_cache_test.cpp b/src/mongo/db/query/plan_cache_test.cpp
index 55554315376..5b286023eaa 100644
--- a/src/mongo/db/query/plan_cache_test.cpp
+++ b/src/mongo/db/query/plan_cache_test.cpp
@@ -33,7 +33,6 @@
#include "mongo/db/query/plan_cache.h"
#include <algorithm>
-#include <boost/scoped_ptr.hpp>
#include <ostream>
#include <memory>
@@ -51,7 +50,7 @@ using namespace mongo;
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::string;
using std::unique_ptr;
@@ -363,7 +362,7 @@ namespace {
PlanCache planCache;
unique_ptr<CanonicalQuery> cq(canonicalize("{a: 1}"));
std::vector<QuerySolution*> solns;
- boost::scoped_ptr<PlanRankingDecision> decision(createDecision(1U));
+ std::unique_ptr<PlanRankingDecision> decision(createDecision(1U));
ASSERT_NOT_OK(planCache.add(*cq, solns, decision.get()));
}
@@ -637,7 +636,7 @@ namespace {
CanonicalQuery* cq;
Status s = CanonicalQuery::canonicalize(ns, query, sort, proj, &cq);
ASSERT_OK(s);
- scoped_ptr<CanonicalQuery> scopedCq(cq);
+ unique_ptr<CanonicalQuery> scopedCq(cq);
cq = NULL;
// Create a CachedSolution the long way..
diff --git a/src/mongo/db/query/plan_enumerator.h b/src/mongo/db/query/plan_enumerator.h
index cfddbf7ed5c..39f0d697145 100644
--- a/src/mongo/db/query/plan_enumerator.h
+++ b/src/mongo/db/query/plan_enumerator.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/base/disallow_copying.h"
@@ -232,10 +231,10 @@ namespace mongo {
* Associates indices with predicates.
*/
struct NodeAssignment {
- boost::scoped_ptr<PredicateAssignment> pred;
- boost::scoped_ptr<OrAssignment> orAssignment;
- boost::scoped_ptr<AndAssignment> andAssignment;
- boost::scoped_ptr<ArrayAssignment> arrayAssignment;
+ std::unique_ptr<PredicateAssignment> pred;
+ std::unique_ptr<OrAssignment> orAssignment;
+ std::unique_ptr<AndAssignment> andAssignment;
+ std::unique_ptr<ArrayAssignment> arrayAssignment;
std::string toString() const;
};
diff --git a/src/mongo/db/query/plan_executor.cpp b/src/mongo/db/query/plan_executor.cpp
index c261f1b8982..6e56b9b20f0 100644
--- a/src/mongo/db/query/plan_executor.cpp
+++ b/src/mongo/db/query/plan_executor.cpp
@@ -333,7 +333,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;
// Incremented on every writeConflict, reset to 0 on any successful call to _root->work.
size_t writeConflictsInARow = 0;
diff --git a/src/mongo/db/query/plan_executor.h b/src/mongo/db/query/plan_executor.h
index 69aa7ef8397..c3e6fdc94c7 100644
--- a/src/mongo/db/query/plan_executor.h
+++ b/src/mongo/db/query/plan_executor.h
@@ -29,7 +29,6 @@
#pragma once
#include <boost/optional.hpp>
-#include <boost/scoped_ptr.hpp>
#include <queue>
#include "mongo/base/status.h"
@@ -422,13 +421,13 @@ namespace mongo {
// the plan stages. The collection must not be destroyed while there are active plans.
const Collection* _collection;
- boost::scoped_ptr<CanonicalQuery> _cq;
- boost::scoped_ptr<WorkingSet> _workingSet;
- boost::scoped_ptr<QuerySolution> _qs;
- boost::scoped_ptr<PlanStage> _root;
+ std::unique_ptr<CanonicalQuery> _cq;
+ std::unique_ptr<WorkingSet> _workingSet;
+ std::unique_ptr<QuerySolution> _qs;
+ std::unique_ptr<PlanStage> _root;
// Deregisters this executor when it is destroyed.
- boost::scoped_ptr<ScopedExecutorRegistration> _safety;
+ std::unique_ptr<ScopedExecutorRegistration> _safety;
// What namespace are we operating over?
std::string _ns;
@@ -440,7 +439,7 @@ namespace mongo {
// This is used to handle automatic yielding when allowed by the YieldPolicy. Never NULL.
// TODO make this a non-pointer member. This requires some header shuffling so that this
// file includes plan_yield_policy.h rather than the other way around.
- const boost::scoped_ptr<PlanYieldPolicy> _yieldPolicy;
+ const std::unique_ptr<PlanYieldPolicy> _yieldPolicy;
// A stash of results generated by this plan that the user of the PlanExecutor didn't want
// to consume yet. We empty the queue before retrieving further results from the plan
diff --git a/src/mongo/db/query/query_planner.cpp b/src/mongo/db/query/query_planner.cpp
index 4cdcbff54a3..852b705c532 100644
--- a/src/mongo/db/query/query_planner.cpp
+++ b/src/mongo/db/query/query_planner.cpp
@@ -750,7 +750,7 @@ namespace mongo {
// The tagged tree produced by the plan enumerator is not guaranteed
// to be canonically sorted. In order to be compatible with the cached
// data, sort the tagged tree according to CanonicalQuery ordering.
- boost::scoped_ptr<MatchExpression> clone(rawTree->shallowClone());
+ std::unique_ptr<MatchExpression> clone(rawTree->shallowClone());
CanonicalQuery::sortTree(clone.get());
PlanCacheIndexTree* cacheData;
diff --git a/src/mongo/db/query/query_planner_test.cpp b/src/mongo/db/query/query_planner_test.cpp
index c2856df15ec..7d513f1ddf1 100644
--- a/src/mongo/db/query/query_planner_test.cpp
+++ b/src/mongo/db/query/query_planner_test.cpp
@@ -3419,7 +3419,7 @@ namespace {
CanonicalQuery *cq;
Status cqStatus = CanonicalQuery::canonicalize("ns", BSON("a" << 3), &cq);
ASSERT_OK(cqStatus);
- boost::scoped_ptr<CanonicalQuery> scopedCq(cq);
+ std::unique_ptr<CanonicalQuery> scopedCq(cq);
scopedCq->root()->setTag(new IndexTag(1));
s = QueryPlanner::cacheDataFromTaggedTree(scopedCq->root(), relevantIndices, &indexTree);
@@ -3431,9 +3431,9 @@ namespace {
CanonicalQuery *cq;
Status cqStatus = CanonicalQuery::canonicalize("ns", BSON("a" << 3), &cq);
ASSERT_OK(cqStatus);
- boost::scoped_ptr<CanonicalQuery> scopedCq(cq);
+ std::unique_ptr<CanonicalQuery> scopedCq(cq);
- boost::scoped_ptr<PlanCacheIndexTree> indexTree(new PlanCacheIndexTree());
+ std::unique_ptr<PlanCacheIndexTree> indexTree(new PlanCacheIndexTree());
indexTree->setIndexEntry(IndexEntry(BSON("a" << 1)));
std::map<BSONObj, size_t> indexMap;
diff --git a/src/mongo/db/query/query_planner_test_lib.cpp b/src/mongo/db/query/query_planner_test_lib.cpp
index 6384927049d..d81fc0f27e9 100644
--- a/src/mongo/db/query/query_planner_test_lib.cpp
+++ b/src/mongo/db/query/query_planner_test_lib.cpp
@@ -54,9 +54,9 @@ namespace {
if (!swme.isOK()) {
return false;
}
- const boost::scoped_ptr<MatchExpression> root(swme.getValue());
+ const std::unique_ptr<MatchExpression> root(swme.getValue());
CanonicalQuery::sortTree(root.get());
- boost::scoped_ptr<MatchExpression> trueFilter(trueFilterNode->filter->shallowClone());
+ std::unique_ptr<MatchExpression> trueFilter(trueFilterNode->filter->shallowClone());
CanonicalQuery::sortTree(trueFilter.get());
return trueFilter->equivalent(root.get());
}
diff --git a/src/mongo/db/query/query_solution.h b/src/mongo/db/query/query_solution.h
index 95afa910864..45a4b24ecea 100644
--- a/src/mongo/db/query/query_solution.h
+++ b/src/mongo/db/query/query_solution.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/jsobj.h"
#include "mongo/db/matcher/expression.h"
@@ -150,7 +149,7 @@ namespace mongo {
// If a stage has a non-NULL filter all values outputted from that stage must pass that
// filter.
- boost::scoped_ptr<MatchExpression> filter;
+ std::unique_ptr<MatchExpression> filter;
protected:
/**
@@ -178,7 +177,7 @@ namespace mongo {
QuerySolution() : hasBlockingStage(false), indexFilterApplied(false) { }
// Owned here.
- boost::scoped_ptr<QuerySolutionNode> root;
+ std::unique_ptr<QuerySolutionNode> root;
// Any filters in root or below point into this object. Must be owned.
BSONObj filterData;
@@ -199,7 +198,7 @@ namespace mongo {
bool indexFilterApplied;
// Owned here. Used by the plan cache.
- boost::scoped_ptr<SolutionCacheData> cacheData;
+ std::unique_ptr<SolutionCacheData> cacheData;
/**
* Output a human-readable std::string representing the plan.
diff --git a/src/mongo/db/range_deleter.h b/src/mongo/db/range_deleter.h
index 69957229872..2a6b5ccb7af 100644
--- a/src/mongo/db/range_deleter.h
+++ b/src/mongo/db/range_deleter.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
#include <deque>
#include <set>
@@ -198,10 +197,10 @@ namespace mongo {
/** Returns true if stopWorkers() was called. This call is synchronized. */
bool stopRequested() const;
- boost::scoped_ptr<RangeDeleterEnv> _env;
+ std::unique_ptr<RangeDeleterEnv> _env;
// Initially not active. Must be started explicitly.
- boost::scoped_ptr<boost::thread> _worker;
+ std::unique_ptr<boost::thread> _worker;
// Protects _stopRequested.
mutable mutex _stopMutex;
diff --git a/src/mongo/db/range_deleter_test.cpp b/src/mongo/db/range_deleter_test.cpp
index d7229bdece3..a74f6f72644 100644
--- a/src/mongo/db/range_deleter_test.cpp
+++ b/src/mongo/db/range_deleter_test.cpp
@@ -63,7 +63,7 @@ namespace {
// Should not be able to queue deletes if deleter workers were not started.
TEST(QueueDelete, CantAfterStop) {
- boost::scoped_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
+ std::unique_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
new mongo::repl::ReplicationCoordinatorMock(replSettings));
mongo::repl::setGlobalReplicationCoordinator(mock.get());
@@ -93,7 +93,7 @@ namespace {
TEST(QueuedDelete, ShouldWaitCursor) {
const string ns("test.user");
- boost::scoped_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
+ std::unique_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
new mongo::repl::ReplicationCoordinatorMock(replSettings));
mongo::repl::setGlobalReplicationCoordinator(mock.get());
@@ -144,7 +144,7 @@ namespace {
TEST(QueuedDelete, StopWhileWaitingCursor) {
const string ns("test.user");
- boost::scoped_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
+ std::unique_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
new mongo::repl::ReplicationCoordinatorMock(replSettings));
mongo::repl::setGlobalReplicationCoordinator(mock.get());
@@ -188,7 +188,7 @@ namespace {
TEST(ImmediateDelete, ShouldWaitCursor) {
const string ns("test.user");
- boost::scoped_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
+ std::unique_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
new mongo::repl::ReplicationCoordinatorMock(replSettings));
mongo::repl::setGlobalReplicationCoordinator(mock.get());
@@ -245,7 +245,7 @@ namespace {
TEST(ImmediateDelete, StopWhileWaitingCursor) {
const string ns("test.user");
- boost::scoped_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
+ std::unique_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
new mongo::repl::ReplicationCoordinatorMock(replSettings));
mongo::repl::setGlobalReplicationCoordinator(mock.get());
@@ -297,7 +297,7 @@ namespace {
const string blockedNS("foo.bar");
const string ns("test.user");
- boost::scoped_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
+ std::unique_ptr<mongo::repl::ReplicationCoordinatorMock> mock(
new mongo::repl::ReplicationCoordinatorMock(replSettings));
mongo::repl::setGlobalReplicationCoordinator(mock.get());
diff --git a/src/mongo/db/range_preserver.h b/src/mongo/db/range_preserver.h
index 74912e05196..818d848914e 100644
--- a/src/mongo/db/range_preserver.h
+++ b/src/mongo/db/range_preserver.h
@@ -26,7 +26,6 @@
* it in the license file.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/clientcursor.h"
@@ -66,7 +65,7 @@ namespace mongo {
}
private:
- boost::scoped_ptr<ClientCursorPin> _pin;
+ std::unique_ptr<ClientCursorPin> _pin;
};
} // namespace mongo
diff --git a/src/mongo/db/repair_database.cpp b/src/mongo/db/repair_database.cpp
index fccf3ef21e3..80963f123b7 100644
--- a/src/mongo/db/repair_database.cpp
+++ b/src/mongo/db/repair_database.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/repair_database.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/background.h"
#include "mongo/base/status.h"
@@ -85,8 +84,8 @@ namespace {
// Skip the rest if there are no indexes to rebuild.
if (indexSpecs.empty()) return Status::OK();
- boost::scoped_ptr<Collection> collection;
- boost::scoped_ptr<MultiIndexBlock> indexer;
+ std::unique_ptr<Collection> collection;
+ std::unique_ptr<MultiIndexBlock> indexer;
{
// These steps are combined into a single WUOW to ensure there are no commits without
// the indexes.
diff --git a/src/mongo/db/repl/check_quorum_for_config_change_test.cpp b/src/mongo/db/repl/check_quorum_for_config_change_test.cpp
index 63fe5684aa9..e8e210cb78c 100644
--- a/src/mongo/db/repl/check_quorum_for_config_change_test.cpp
+++ b/src/mongo/db/repl/check_quorum_for_config_change_test.cpp
@@ -31,7 +31,6 @@
#include "mongo/platform/basic.h"
#include <boost/thread.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/db/jsobj.h"
@@ -75,7 +74,7 @@ namespace {
NetworkInterfaceMock* _net;
StorageInterfaceMock* _storage;
- boost::scoped_ptr<ReplicationExecutor> _executor;
+ std::unique_ptr<ReplicationExecutor> _executor;
private:
void setUp();
@@ -84,8 +83,8 @@ namespace {
void _runQuorumCheck(const ReplicaSetConfig& config, int myIndex);
virtual Status _runQuorumCheckImpl(const ReplicaSetConfig& config, int myIndex) = 0;
- boost::scoped_ptr<boost::thread> _executorThread;
- boost::scoped_ptr<boost::thread> _quorumCheckThread;
+ std::unique_ptr<boost::thread> _executorThread;
+ std::unique_ptr<boost::thread> _quorumCheckThread;
Status _quorumCheckStatus;
boost::mutex _mutex;
bool _isQuorumCheckDone;
diff --git a/src/mongo/db/repl/data_replicator_test.cpp b/src/mongo/db/repl/data_replicator_test.cpp
index 818fe559bec..854829ef113 100644
--- a/src/mongo/db/repl/data_replicator_test.cpp
+++ b/src/mongo/db/repl/data_replicator_test.cpp
@@ -146,7 +146,7 @@ namespace {
private:
std::unique_ptr<DataReplicator> _dr;
- boost::scoped_ptr<ReplicationCoordinatorImpl> _repl;
+ std::unique_ptr<ReplicationCoordinatorImpl> _repl;
// Owned by ReplicationCoordinatorImpl
TopologyCoordinatorImpl* _topo;
// Owned by ReplicationCoordinatorImpl
@@ -198,7 +198,7 @@ namespace {
DataReplicator* _dr;
TimestampStatus _result;
- boost::scoped_ptr<boost::thread> _thread;
+ std::unique_ptr<boost::thread> _thread;
};
class InitialSyncTest : public DataReplicatorTest {
diff --git a/src/mongo/db/repl/elect_cmd_runner.h b/src/mongo/db/repl/elect_cmd_runner.h
index d92ba9326a2..2a9a7bab435 100644
--- a/src/mongo/db/repl/elect_cmd_runner.h
+++ b/src/mongo/db/repl/elect_cmd_runner.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/base/disallow_copying.h"
@@ -117,8 +116,8 @@ namespace repl {
bool isCanceled() const { return _isCanceled; }
private:
- boost::scoped_ptr<Algorithm> _algorithm;
- boost::scoped_ptr<ScatterGatherRunner> _runner;
+ std::unique_ptr<Algorithm> _algorithm;
+ std::unique_ptr<ScatterGatherRunner> _runner;
bool _isCanceled;
};
diff --git a/src/mongo/db/repl/elect_cmd_runner_test.cpp b/src/mongo/db/repl/elect_cmd_runner_test.cpp
index 2da5db3e98b..ce7f6ad3380 100644
--- a/src/mongo/db/repl/elect_cmd_runner_test.cpp
+++ b/src/mongo/db/repl/elect_cmd_runner_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include "mongo/base/status.h"
@@ -43,7 +42,7 @@
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
namespace mongo {
namespace repl {
@@ -69,8 +68,8 @@ namespace {
NetworkInterfaceMock* _net;
StorageInterfaceMock* _storage;
- boost::scoped_ptr<ReplicationExecutor> _executor;
- boost::scoped_ptr<boost::thread> _executorThread;
+ std::unique_ptr<ReplicationExecutor> _executor;
+ std::unique_ptr<boost::thread> _executorThread;
private:
void setUp();
@@ -337,7 +336,7 @@ namespace {
}
private:
- scoped_ptr<ElectCmdRunner::Algorithm> _checker;
+ unique_ptr<ElectCmdRunner::Algorithm> _checker;
};
TEST_F(ElectScatterGatherTest, NodeRespondsWithBadVoteType) {
diff --git a/src/mongo/db/repl/election_winner_declarer.h b/src/mongo/db/repl/election_winner_declarer.h
index d721dea141e..9745ed4ce20 100644
--- a/src/mongo/db/repl/election_winner_declarer.h
+++ b/src/mongo/db/repl/election_winner_declarer.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -119,8 +118,8 @@ namespace repl {
Status getStatus() const;
private:
- boost::scoped_ptr<Algorithm> _algorithm;
- boost::scoped_ptr<ScatterGatherRunner> _runner;
+ std::unique_ptr<Algorithm> _algorithm;
+ std::unique_ptr<ScatterGatherRunner> _runner;
bool _isCanceled = false;
};
diff --git a/src/mongo/db/repl/election_winner_declarer_test.cpp b/src/mongo/db/repl/election_winner_declarer_test.cpp
index 1b264e26b56..ede769c620d 100644
--- a/src/mongo/db/repl/election_winner_declarer_test.cpp
+++ b/src/mongo/db/repl/election_winner_declarer_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include "mongo/base/status.h"
@@ -40,7 +39,7 @@
#include "mongo/unittest/unittest.h"
#include "mongo/util/mongoutils/str.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
namespace mongo {
namespace repl {
@@ -149,7 +148,7 @@ namespace {
}
private:
- scoped_ptr<ElectionWinnerDeclarer::Algorithm> _declarer;
+ unique_ptr<ElectionWinnerDeclarer::Algorithm> _declarer;
};
diff --git a/src/mongo/db/repl/freshness_checker.h b/src/mongo/db/repl/freshness_checker.h
index c2d6c99343b..188e67bd953 100644
--- a/src/mongo/db/repl/freshness_checker.h
+++ b/src/mongo/db/repl/freshness_checker.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/base/disallow_copying.h"
@@ -155,8 +154,8 @@ namespace repl {
long long getOriginalConfigVersion() const;
private:
- boost::scoped_ptr<Algorithm> _algorithm;
- boost::scoped_ptr<ScatterGatherRunner> _runner;
+ std::unique_ptr<Algorithm> _algorithm;
+ std::unique_ptr<ScatterGatherRunner> _runner;
long long _originalConfigVersion;
bool _isCanceled;
};
diff --git a/src/mongo/db/repl/freshness_checker_test.cpp b/src/mongo/db/repl/freshness_checker_test.cpp
index c271ae0c371..6f530bbc57a 100644
--- a/src/mongo/db/repl/freshness_checker_test.cpp
+++ b/src/mongo/db/repl/freshness_checker_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include "mongo/base/status.h"
@@ -44,7 +43,7 @@
#include "mongo/unittest/unittest.h"
#include "mongo/util/mongoutils/str.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
namespace mongo {
namespace repl {
@@ -76,8 +75,8 @@ namespace {
NetworkInterfaceMock* _net;
StorageInterfaceMock* _storage;
- boost::scoped_ptr<ReplicationExecutor> _executor;
- boost::scoped_ptr<boost::thread> _executorThread;
+ std::unique_ptr<ReplicationExecutor> _executor;
+ std::unique_ptr<boost::thread> _executorThread;
private:
void freshnessCheckerRunner(const ReplicationExecutor::CallbackData& data,
@@ -88,7 +87,7 @@ namespace {
void setUp();
void tearDown();
- boost::scoped_ptr<FreshnessChecker> _checker;
+ std::unique_ptr<FreshnessChecker> _checker;
ReplicationExecutor::EventHandle _checkerDoneEvent;
};
@@ -933,7 +932,7 @@ namespace {
Milliseconds(0));
}
private:
- scoped_ptr<FreshnessChecker::Algorithm> _checker;
+ unique_ptr<FreshnessChecker::Algorithm> _checker;
};
TEST_F(FreshnessScatterGatherTest, BothNodesLessFresh) {
diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp
index 2f269b625c5..8bd5ee04cce 100644
--- a/src/mongo/db/repl/master_slave.cpp
+++ b/src/mongo/db/repl/master_slave.cpp
@@ -43,7 +43,6 @@
#include "mongo/db/repl/master_slave.h"
#include <pcrecpp.h>
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/thread/thread.hpp>
@@ -73,7 +72,7 @@
#include "mongo/util/exit.h"
#include "mongo/util/log.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::unique_ptr;
using std::cout;
using std::endl;
@@ -738,7 +737,7 @@ namespace repl {
}
}
- scoped_ptr<Lock::GlobalWrite> lk(alreadyLocked ? 0 : new Lock::GlobalWrite(txn->lockState()));
+ unique_ptr<Lock::GlobalWrite> lk(alreadyLocked ? 0 : new Lock::GlobalWrite(txn->lockState()));
if ( replAllDead ) {
// hmmm why is this check here and not at top of this function? does it get set between top and here?
@@ -1051,7 +1050,7 @@ namespace repl {
int b = replApplyBatchSize.get();
bool justOne = b == 1;
- scoped_ptr<Lock::GlobalWrite> lk(justOne ? 0 : new Lock::GlobalWrite(txn->lockState()));
+ unique_ptr<Lock::GlobalWrite> lk(justOne ? 0 : new Lock::GlobalWrite(txn->lockState()));
while( 1 ) {
BSONElement ts = op.getField("ts");
diff --git a/src/mongo/db/repl/operation_context_repl_mock.h b/src/mongo/db/repl/operation_context_repl_mock.h
index c79580f1482..592a331fbb4 100644
--- a/src/mongo/db/repl/operation_context_repl_mock.h
+++ b/src/mongo/db/repl/operation_context_repl_mock.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/operation_context_noop.h"
diff --git a/src/mongo/db/repl/repl_set_heartbeat_response_test.cpp b/src/mongo/db/repl/repl_set_heartbeat_response_test.cpp
index 49f9ed1e06d..c416c3c3f3c 100644
--- a/src/mongo/db/repl/repl_set_heartbeat_response_test.cpp
+++ b/src/mongo/db/repl/repl_set_heartbeat_response_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/repl/repl_set_heartbeat_response.h"
#include "mongo/unittest/unittest.h"
@@ -38,7 +37,7 @@ namespace mongo {
namespace repl {
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
bool stringContains(const std::string &haystack, const std::string& needle) {
diff --git a/src/mongo/db/repl/replication_coordinator_external_state.h b/src/mongo/db/repl/replication_coordinator_external_state.h
index 710a01ef83e..10e842bf36a 100644
--- a/src/mongo/db/repl/replication_coordinator_external_state.h
+++ b/src/mongo/db/repl/replication_coordinator_external_state.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/bson/timestamp.h"
diff --git a/src/mongo/db/repl/replication_coordinator_external_state_impl.h b/src/mongo/db/repl/replication_coordinator_external_state_impl.h
index d9f9a49373b..62edea65c70 100644
--- a/src/mongo/db/repl/replication_coordinator_external_state_impl.h
+++ b/src/mongo/db/repl/replication_coordinator_external_state_impl.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include "mongo/base/disallow_copying.h"
@@ -81,13 +80,13 @@ namespace repl {
SyncSourceFeedback _syncSourceFeedback;
// Thread running SyncSourceFeedback::run().
- boost::scoped_ptr<boost::thread> _syncSourceFeedbackThread;
+ std::unique_ptr<boost::thread> _syncSourceFeedbackThread;
// Thread running runSyncThread().
- boost::scoped_ptr<boost::thread> _applierThread;
+ std::unique_ptr<boost::thread> _applierThread;
// Thread running BackgroundSync::producerThread().
- boost::scoped_ptr<boost::thread> _producerThread;
+ std::unique_ptr<boost::thread> _producerThread;
// Mutex guarding the _nextThreadId value to prevent concurrent incrementing.
boost::mutex _nextThreadIdMutex;
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp
index d131c902a3a..e908970c2ae 100644
--- a/src/mongo/db/repl/replication_coordinator_impl.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl.cpp
@@ -97,7 +97,7 @@ namespace {
if (elem.fieldNameStringData() == ReplicaSetConfig::kVersionFieldName &&
elem.isNumber()) {
- boost::scoped_ptr<SecureRandom> generator(SecureRandom::create());
+ std::unique_ptr<SecureRandom> generator(SecureRandom::create());
const int random = std::abs(static_cast<int>(generator->nextInt64()) % 100000);
builder.appendIntOrLL(ReplicaSetConfig::kVersionFieldName,
elem.numberLong() + 10000 + random);
@@ -185,7 +185,7 @@ namespace {
return;
}
- boost::scoped_ptr<SecureRandom> rbidGenerator(SecureRandom::create());
+ std::unique_ptr<SecureRandom> rbidGenerator(SecureRandom::create());
_rbid = static_cast<int>(rbidGenerator->nextInt64());
if (_rbid < 0) {
// Ensure _rbid is always positive
diff --git a/src/mongo/db/repl/replication_coordinator_impl.h b/src/mongo/db/repl/replication_coordinator_impl.h
index 0f6f4253239..a322699c58d 100644
--- a/src/mongo/db/repl/replication_coordinator_impl.h
+++ b/src/mongo/db/repl/replication_coordinator_impl.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition_variable.hpp>
@@ -918,7 +917,7 @@ namespace repl {
const Mode _replMode; // (R)
// Pointer to the TopologyCoordinator owned by this ReplicationCoordinator.
- boost::scoped_ptr<TopologyCoordinator> _topCoord; // (X)
+ std::unique_ptr<TopologyCoordinator> _topCoord; // (X)
// If the executer is owned then this will be set, but should not be used.
// This is only used to clean up and destroy the replExec if owned
@@ -927,11 +926,11 @@ namespace repl {
ReplicationExecutor& _replExecutor; // (S)
// Pointer to the ReplicationCoordinatorExternalState owned by this ReplicationCoordinator.
- boost::scoped_ptr<ReplicationCoordinatorExternalState> _externalState; // (PS)
+ std::unique_ptr<ReplicationCoordinatorExternalState> _externalState; // (PS)
// Thread that drives actions in the topology coordinator
// Set in startReplication() and thereafter accessed in shutdown.
- boost::scoped_ptr<boost::thread> _topCoordDriverThread; // (I)
+ std::unique_ptr<boost::thread> _topCoordDriverThread; // (I)
// Our RID, used to identify us to our sync source when sending replication progress
// updates upstream. Set once in startReplication() and then never modified again.
@@ -994,9 +993,9 @@ namespace repl {
// currently in progress. When using the V1 protocol, a non-null _voteRequester pointer
// indicates this instead.
// Only one election is allowed at a time.
- boost::scoped_ptr<FreshnessChecker> _freshnessChecker; // (X)
+ std::unique_ptr<FreshnessChecker> _freshnessChecker; // (X)
- boost::scoped_ptr<ElectCmdRunner> _electCmdRunner; // (X)
+ std::unique_ptr<ElectCmdRunner> _electCmdRunner; // (X)
std::unique_ptr<VoteRequester> _voteRequester; // (X)
diff --git a/src/mongo/db/repl/replication_coordinator_impl_elect.cpp b/src/mongo/db/repl/replication_coordinator_impl_elect.cpp
index 6d8acf59822..df686e79519 100644
--- a/src/mongo/db/repl/replication_coordinator_impl_elect.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl_elect.cpp
@@ -48,8 +48,8 @@ namespace {
LoseElectionGuard(
TopologyCoordinator* topCoord,
ReplicationExecutor* executor,
- boost::scoped_ptr<FreshnessChecker>* freshnessChecker,
- boost::scoped_ptr<ElectCmdRunner>* electCmdRunner,
+ std::unique_ptr<FreshnessChecker>* freshnessChecker,
+ std::unique_ptr<ElectCmdRunner>* electCmdRunner,
ReplicationExecutor::EventHandle* electionFinishedEvent)
: _topCoord(topCoord),
_executor(executor),
@@ -76,8 +76,8 @@ namespace {
private:
TopologyCoordinator* const _topCoord;
ReplicationExecutor* const _executor;
- boost::scoped_ptr<FreshnessChecker>* const _freshnessChecker;
- boost::scoped_ptr<ElectCmdRunner>* const _electCmdRunner;
+ std::unique_ptr<FreshnessChecker>* const _freshnessChecker;
+ std::unique_ptr<ElectCmdRunner>* const _electCmdRunner;
const ReplicationExecutor::EventHandle* _electionFinishedEvent;
bool _dismissed;
};
diff --git a/src/mongo/db/repl/replication_coordinator_impl_test.cpp b/src/mongo/db/repl/replication_coordinator_impl_test.cpp
index 82373106580..9d8144e36dc 100644
--- a/src/mongo/db/repl/replication_coordinator_impl_test.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl_test.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include <future>
#include <iostream>
@@ -699,7 +698,7 @@ namespace {
OpTime _optime;
WriteConcernOptions _writeConcern;
ReplicationCoordinator::StatusAndDuration _result;
- boost::scoped_ptr<boost::thread> _thread;
+ std::unique_ptr<boost::thread> _thread;
};
TEST_F(ReplCoordTest, AwaitReplicationNumberOfNodesBlocking) {
@@ -1118,7 +1117,7 @@ namespace {
ReplicationCoordinatorImpl* _replCoord;
bool _finished;
Status _result;
- boost::scoped_ptr<boost::thread> _thread;
+ std::unique_ptr<boost::thread> _thread;
bool _force;
Milliseconds _waitTime;
Milliseconds _stepDownTime;
diff --git a/src/mongo/db/repl/replication_coordinator_test_fixture.h b/src/mongo/db/repl/replication_coordinator_test_fixture.h
index d6a67cced2e..22ab10a1e25 100644
--- a/src/mongo/db/repl/replication_coordinator_test_fixture.h
+++ b/src/mongo/db/repl/replication_coordinator_test_fixture.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/db/repl/repl_settings.h"
@@ -182,7 +181,7 @@ namespace repl {
int64_t countLogLinesContaining(const std::string& needle);
private:
- boost::scoped_ptr<ReplicationCoordinatorImpl> _repl;
+ std::unique_ptr<ReplicationCoordinatorImpl> _repl;
// Owned by ReplicationCoordinatorImpl
TopologyCoordinatorImpl* _topo;
// Owned by ReplicationCoordinatorImpl
diff --git a/src/mongo/db/repl/replication_executor.h b/src/mongo/db/repl/replication_executor.h
index 14d9f50ccfb..8b7dd5255c9 100644
--- a/src/mongo/db/repl/replication_executor.h
+++ b/src/mongo/db/repl/replication_executor.h
@@ -435,8 +435,8 @@ namespace repl {
// PRNG; seeded at class construction time.
PseudoRandom _random;
- boost::scoped_ptr<executor::NetworkInterface> _networkInterface;
- boost::scoped_ptr<StorageInterface> _storageInterface;
+ std::unique_ptr<executor::NetworkInterface> _networkInterface;
+ std::unique_ptr<StorageInterface> _storageInterface;
boost::mutex _mutex;
boost::mutex _terribleExLockSyncMutex;
boost::condition_variable _noMoreWaitingThreads;
diff --git a/src/mongo/db/repl/replication_executor_test.cpp b/src/mongo/db/repl/replication_executor_test.cpp
index d916f3e01d2..a2bd2ee8822 100644
--- a/src/mongo/db/repl/replication_executor_test.cpp
+++ b/src/mongo/db/repl/replication_executor_test.cpp
@@ -29,7 +29,6 @@
#include "mongo/platform/basic.h"
#include <map>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
#include "mongo/db/namespace_string.h"
diff --git a/src/mongo/db/repl/replication_executor_test_fixture.h b/src/mongo/db/repl/replication_executor_test_fixture.h
index a5a7ae6bf25..c5e2a9cbc5e 100644
--- a/src/mongo/db/repl/replication_executor_test_fixture.h
+++ b/src/mongo/db/repl/replication_executor_test_fixture.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
#include "mongo/unittest/unittest.h"
diff --git a/src/mongo/db/repl/replication_info.cpp b/src/mongo/db/repl/replication_info.cpp
index 6d75a351957..343a939fc95 100644
--- a/src/mongo/db/repl/replication_info.cpp
+++ b/src/mongo/db/repl/replication_info.cpp
@@ -30,7 +30,6 @@
#include <list>
#include <vector>
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/connpool.h"
#include "mongo/db/commands/server_status.h"
diff --git a/src/mongo/db/repl/rs_rollback.cpp b/src/mongo/db/repl/rs_rollback.cpp
index 437e01f1011..bbd53eb887c 100644
--- a/src/mongo/db/repl/rs_rollback.cpp
+++ b/src/mongo/db/repl/rs_rollback.cpp
@@ -475,7 +475,7 @@ namespace {
removeSaver.reset(new Helpers::RemoveSaver("rollback", "", *it));
// perform a collection scan and write all documents in the collection to disk
- boost::scoped_ptr<PlanExecutor> exec(
+ std::unique_ptr<PlanExecutor> exec(
InternalPlanner::collectionScan(txn,
*it,
db->getCollection(*it)));
diff --git a/src/mongo/db/repl/scatter_gather_test.cpp b/src/mongo/db/repl/scatter_gather_test.cpp
index 49209e9a31a..fa00ce05e23 100644
--- a/src/mongo/db/repl/scatter_gather_test.cpp
+++ b/src/mongo/db/repl/scatter_gather_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include "mongo/db/repl/replication_executor.h"
@@ -116,8 +115,8 @@ namespace {
// owned by _executor
NetworkInterfaceMock* _net;
StorageInterfaceMock* _storage;
- boost::scoped_ptr<ReplicationExecutor> _executor;
- boost::scoped_ptr<boost::thread> _executorThread;
+ std::unique_ptr<ReplicationExecutor> _executor;
+ std::unique_ptr<boost::thread> _executorThread;
};
void ScatterGatherTest::setUp() {
@@ -164,7 +163,7 @@ namespace {
ScatterGatherRunner* _sgr;
ReplicationExecutor* _executor;
Status _result;
- boost::scoped_ptr<boost::thread> _thread;
+ std::unique_ptr<boost::thread> _thread;
};
// Simple onCompletion function which will toggle a bool, so that we can check the logs to
diff --git a/src/mongo/db/repl/sync_source_feedback.h b/src/mongo/db/repl/sync_source_feedback.h
index 054f6d6b183..40d22bddb5e 100644
--- a/src/mongo/db/repl/sync_source_feedback.h
+++ b/src/mongo/db/repl/sync_source_feedback.h
@@ -29,7 +29,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
@@ -82,7 +81,7 @@ namespace repl {
// the member we are currently syncing from
HostAndPort _syncTarget;
// our connection to our sync target
- boost::scoped_ptr<DBClientConnection> _connection;
+ std::unique_ptr<DBClientConnection> _connection;
// protects cond, _shutdownSignaled, and _positionChanged.
boost::mutex _mtx;
// used to alert our thread of changes which need to be passed up the chain
diff --git a/src/mongo/db/repl/topology_coordinator_impl_test.cpp b/src/mongo/db/repl/topology_coordinator_impl_test.cpp
index 93e5dfa8080..d1b75d4492b 100644
--- a/src/mongo/db/repl/topology_coordinator_impl_test.cpp
+++ b/src/mongo/db/repl/topology_coordinator_impl_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <iostream>
#include "mongo/db/repl/heartbeat_response_action.h"
@@ -48,7 +47,7 @@
#define ASSERT_NO_ACTION(EXPRESSION) \
ASSERT_EQUALS(mongo::repl::HeartbeatResponseAction::NoAction, (EXPRESSION))
-using boost::scoped_ptr;
+using std::unique_ptr;
namespace mongo {
namespace repl {
@@ -211,8 +210,8 @@ namespace {
}
private:
- scoped_ptr<TopologyCoordinatorImpl> _topo;
- scoped_ptr<ReplicationExecutor::CallbackData> _cbData;
+ unique_ptr<TopologyCoordinatorImpl> _topo;
+ unique_ptr<ReplicationExecutor::CallbackData> _cbData;
Date_t _now;
int _selfIndex;
};
diff --git a/src/mongo/db/service_context.cpp b/src/mongo/db/service_context.cpp
index 175702aebad..53b2857bd86 100644
--- a/src/mongo/db/service_context.cpp
+++ b/src/mongo/db/service_context.cpp
@@ -86,7 +86,7 @@ namespace mongo {
<< "' has to be an embedded document.");
}
- boost::scoped_ptr<StorageFactoriesIterator> sfi(getGlobalServiceContext()->
+ std::unique_ptr<StorageFactoriesIterator> sfi(getGlobalServiceContext()->
makeStorageFactoriesIterator());
invariant(sfi);
bool found = false;
@@ -231,7 +231,7 @@ namespace mongo {
if (!hasGlobalServiceContext())
return BSONArray();
- boost::scoped_ptr<StorageFactoriesIterator> sfi(
+ std::unique_ptr<StorageFactoriesIterator> sfi(
getGlobalServiceContext()->makeStorageFactoriesIterator());
if (!sfi)
diff --git a/src/mongo/db/service_context_d.h b/src/mongo/db/service_context_d.h
index 972063c147b..5ec8b7f6ecc 100644
--- a/src/mongo/db/service_context_d.h
+++ b/src/mongo/db/service_context_d.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/db/service_context.h"
@@ -103,7 +102,7 @@ namespace mongo {
// protected by parent class's _mutex
std::vector<KillOpListenerInterface*> _killOpListeners;
- boost::scoped_ptr<StorageEngineLockFile> _lockFile;
+ std::unique_ptr<StorageEngineLockFile> _lockFile;
// logically owned here, but never deleted by anyone.
StorageEngine* _storageEngine;
diff --git a/src/mongo/db/sorter/sorter.cpp b/src/mongo/db/sorter/sorter.cpp
index 6d6c8de179c..8b2e82ef665 100644
--- a/src/mongo/db/sorter/sorter.cpp
+++ b/src/mongo/db/sorter/sorter.cpp
@@ -258,7 +258,7 @@ namespace mongo {
const Settings _settings;
bool _done;
boost::scoped_array<char> _buffer;
- boost::scoped_ptr<BufReader> _reader;
+ std::unique_ptr<BufReader> _reader;
std::string _fileName;
boost::shared_ptr<FileDeleter> _fileDeleter; // Must outlive _file
std::ifstream _file;
diff --git a/src/mongo/db/storage/in_memory/in_memory_engine_test.cpp b/src/mongo/db/storage/in_memory/in_memory_engine_test.cpp
index 58b79a6c2b5..ec31394baae 100644
--- a/src/mongo/db/storage/in_memory/in_memory_engine_test.cpp
+++ b/src/mongo/db/storage/in_memory/in_memory_engine_test.cpp
@@ -46,7 +46,7 @@ namespace mongo {
virtual KVEngine* getEngine() { return _engine.get(); }
private:
- boost::scoped_ptr<InMemoryEngine> _engine;
+ std::unique_ptr<InMemoryEngine> _engine;
};
KVHarnessHelper* KVHarnessHelper::create() {
diff --git a/src/mongo/db/storage/kv/kv_catalog.cpp b/src/mongo/db/storage/kv/kv_catalog.cpp
index 53382bd8b93..6797cdf5bff 100644
--- a/src/mongo/db/storage/kv/kv_catalog.cpp
+++ b/src/mongo/db/storage/kv/kv_catalog.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/storage/kv/kv_catalog.h"
-#include <boost/scoped_ptr.hpp>
#include <stdlib.h>
#include "mongo/db/concurrency/d_concurrency.h"
@@ -54,7 +53,7 @@ namespace {
const ResourceId resourceIdCatalogMetadata(RESOURCE_METADATA, 1ULL);
}
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
class KVCatalog::AddIdentChange : public RecoveryUnit::Change {
@@ -107,7 +106,7 @@ namespace {
std::string KVCatalog::_newRand() {
return str::stream()
- << boost::scoped_ptr<SecureRandom>(SecureRandom::create())->nextInt64();
+ << std::unique_ptr<SecureRandom>(SecureRandom::create())->nextInt64();
}
bool KVCatalog::_hasEntryCollidingWithRand() const {
@@ -162,7 +161,7 @@ namespace {
invariant( opCtx->lockState() == NULL ||
opCtx->lockState()->isDbLockedForMode( nsToDatabaseSubstring(ns), MODE_X ) );
- boost::scoped_ptr<Lock::ResourceLock> rLk;
+ std::unique_ptr<Lock::ResourceLock> rLk;
if (!_isRsThreadSafe && opCtx->lockState()) {
rLk.reset(new Lock::ResourceLock(opCtx->lockState(),
resourceIdCatalogMetadata,
@@ -219,7 +218,7 @@ namespace {
StringData ns,
RecordId* out ) const {
- boost::scoped_ptr<Lock::ResourceLock> rLk;
+ std::unique_ptr<Lock::ResourceLock> rLk;
if (!_isRsThreadSafe && opCtx->lockState()) {
rLk.reset(new Lock::ResourceLock(opCtx->lockState(),
resourceIdCatalogMetadata,
@@ -266,7 +265,7 @@ namespace {
StringData ns,
BSONCollectionCatalogEntry::MetaData& md ) {
- boost::scoped_ptr<Lock::ResourceLock> rLk;
+ std::unique_ptr<Lock::ResourceLock> rLk;
if (!_isRsThreadSafe && opCtx->lockState()) {
rLk.reset(new Lock::ResourceLock(opCtx->lockState(),
resourceIdCatalogMetadata,
@@ -320,7 +319,7 @@ namespace {
StringData toNS,
bool stayTemp ) {
- boost::scoped_ptr<Lock::ResourceLock> rLk;
+ std::unique_ptr<Lock::ResourceLock> rLk;
if (!_isRsThreadSafe && opCtx->lockState()) {
rLk.reset(new Lock::ResourceLock(opCtx->lockState(),
resourceIdCatalogMetadata,
@@ -371,7 +370,7 @@ namespace {
StringData ns ) {
invariant( opCtx->lockState() == NULL ||
opCtx->lockState()->isDbLockedForMode( nsToDatabaseSubstring(ns), MODE_X ) );
- boost::scoped_ptr<Lock::ResourceLock> rLk;
+ std::unique_ptr<Lock::ResourceLock> rLk;
if (!_isRsThreadSafe && opCtx->lockState()) {
rLk.reset(new Lock::ResourceLock(opCtx->lockState(),
resourceIdCatalogMetadata,
diff --git a/src/mongo/db/storage/kv/kv_catalog.h b/src/mongo/db/storage/kv/kv_catalog.h
index 359fa4cfbdb..cbdbfc515bc 100644
--- a/src/mongo/db/storage/kv/kv_catalog.h
+++ b/src/mongo/db/storage/kv/kv_catalog.h
@@ -33,7 +33,6 @@
#include <map>
#include <string>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/mutex.hpp>
#include "mongo/base/string_data.h"
diff --git a/src/mongo/db/storage/kv/kv_collection_catalog_entry.h b/src/mongo/db/storage/kv/kv_collection_catalog_entry.h
index 28392db8a61..963c9d623f9 100644
--- a/src/mongo/db/storage/kv/kv_collection_catalog_entry.h
+++ b/src/mongo/db/storage/kv/kv_collection_catalog_entry.h
@@ -89,7 +89,7 @@ namespace mongo {
KVEngine* _engine; // not owned
KVCatalog* _catalog; // not owned
std::string _ident;
- boost::scoped_ptr<RecordStore> _recordStore; // owned
+ std::unique_ptr<RecordStore> _recordStore; // owned
};
}
diff --git a/src/mongo/db/storage/kv/kv_engine_test_harness.cpp b/src/mongo/db/storage/kv/kv_engine_test_harness.cpp
index f2438689f8e..36aeefcf2c4 100644
--- a/src/mongo/db/storage/kv/kv_engine_test_harness.cpp
+++ b/src/mongo/db/storage/kv/kv_engine_test_harness.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/kv/kv_engine_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/operation_context_noop.h"
#include "mongo/db/index/index_descriptor.h"
@@ -42,7 +41,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
namespace {
@@ -55,12 +54,12 @@ namespace mongo {
}
TEST( KVEngineTestHarness, SimpleRS1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
ASSERT( engine );
string ns = "a.b";
- scoped_ptr<RecordStore> rs;
+ unique_ptr<RecordStore> rs;
{
MyOperationContext opCtx( engine );
ASSERT_OK( engine->createRecordStore( &opCtx, ns, ns, CollectionOptions() ) );
@@ -94,7 +93,7 @@ namespace mongo {
}
TEST( KVEngineTestHarness, Restart1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
ASSERT( engine );
@@ -103,7 +102,7 @@ namespace mongo {
// 'loc' holds location of "abc" and is referenced after restarting engine.
RecordId loc;
{
- scoped_ptr<RecordStore> rs;
+ unique_ptr<RecordStore> rs;
{
MyOperationContext opCtx( engine );
ASSERT_OK( engine->createRecordStore( &opCtx, ns, ns, CollectionOptions() ) );
@@ -129,7 +128,7 @@ namespace mongo {
engine = helper->restartEngine();
{
- scoped_ptr<RecordStore> rs;
+ unique_ptr<RecordStore> rs;
MyOperationContext opCtx( engine );
rs.reset( engine->getRecordStore( &opCtx, ns, ns, CollectionOptions() ) );
ASSERT_EQUALS( string("abc"), rs->dataFor( &opCtx, loc ).data() );
@@ -139,13 +138,13 @@ namespace mongo {
TEST( KVEngineTestHarness, SimpleSorted1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
ASSERT( engine );
string ident = "abc";
IndexDescriptor desc( NULL, "", BSON( "key" << BSON( "a" << 1 ) ) );
- scoped_ptr<SortedDataInterface> sorted;
+ unique_ptr<SortedDataInterface> sorted;
{
MyOperationContext opCtx( engine );
ASSERT_OK( engine->createSortedDataInterface( &opCtx, ident, &desc ) );
@@ -168,11 +167,11 @@ namespace mongo {
}
TEST( KVCatalogTest, Coll1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
- scoped_ptr<RecordStore> rs;
- scoped_ptr<KVCatalog> catalog;
+ unique_ptr<RecordStore> rs;
+ unique_ptr<KVCatalog> catalog;
{
MyOperationContext opCtx( engine );
WriteUnitOfWork uow( &opCtx );
@@ -212,11 +211,11 @@ namespace mongo {
TEST( KVCatalogTest, Idx1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
- scoped_ptr<RecordStore> rs;
- scoped_ptr<KVCatalog> catalog;
+ unique_ptr<RecordStore> rs;
+ unique_ptr<KVCatalog> catalog;
{
MyOperationContext opCtx( engine );
WriteUnitOfWork uow( &opCtx );
@@ -284,11 +283,11 @@ namespace mongo {
}
TEST( KVCatalogTest, DirectoryPerDb1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
- scoped_ptr<RecordStore> rs;
- scoped_ptr<KVCatalog> catalog;
+ unique_ptr<RecordStore> rs;
+ unique_ptr<KVCatalog> catalog;
{
MyOperationContext opCtx( engine );
WriteUnitOfWork uow( &opCtx );
@@ -326,11 +325,11 @@ namespace mongo {
}
TEST( KVCatalogTest, Split1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
- scoped_ptr<RecordStore> rs;
- scoped_ptr<KVCatalog> catalog;
+ unique_ptr<RecordStore> rs;
+ unique_ptr<KVCatalog> catalog;
{
MyOperationContext opCtx( engine );
WriteUnitOfWork uow( &opCtx );
@@ -368,11 +367,11 @@ namespace mongo {
}
TEST( KVCatalogTest, DirectoryPerAndSplit1 ) {
- scoped_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
+ unique_ptr<KVHarnessHelper> helper( KVHarnessHelper::create() );
KVEngine* engine = helper->getEngine();
- scoped_ptr<RecordStore> rs;
- scoped_ptr<KVCatalog> catalog;
+ unique_ptr<RecordStore> rs;
+ unique_ptr<KVCatalog> catalog;
{
MyOperationContext opCtx( engine );
WriteUnitOfWork uow( &opCtx );
diff --git a/src/mongo/db/storage/kv/kv_storage_engine.h b/src/mongo/db/storage/kv/kv_storage_engine.h
index b6f33c2d7b5..f8106959dc3 100644
--- a/src/mongo/db/storage/kv/kv_storage_engine.h
+++ b/src/mongo/db/storage/kv/kv_storage_engine.h
@@ -33,7 +33,6 @@
#include <map>
#include <string>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/mutex.hpp>
#include "mongo/db/storage/kv/kv_catalog.h"
@@ -103,12 +102,12 @@ namespace mongo {
KVStorageEngineOptions _options;
// This must be the first member so it is destroyed last.
- boost::scoped_ptr<KVEngine> _engine;
+ std::unique_ptr<KVEngine> _engine;
const bool _supportsDocLocking;
- boost::scoped_ptr<RecordStore> _catalogRecordStore;
- boost::scoped_ptr<KVCatalog> _catalog;
+ std::unique_ptr<RecordStore> _catalogRecordStore;
+ std::unique_ptr<KVCatalog> _catalog;
typedef std::map<std::string,KVDatabaseCatalogEntry*> DBMap;
DBMap _dbs;
diff --git a/src/mongo/db/storage/mmap_v1/btree/btree_interface.cpp b/src/mongo/db/storage/mmap_v1/btree/btree_interface.cpp
index fe42c679f15..422a6441e9a 100644
--- a/src/mongo/db/storage/mmap_v1/btree/btree_interface.cpp
+++ b/src/mongo/db/storage/mmap_v1/btree/btree_interface.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/sorted_data_interface.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/operation_context.h"
#include "mongo/db/storage/mmap_v1/btree/btree_logic.h"
@@ -40,7 +39,7 @@
namespace mongo {
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using std::vector;
@@ -56,7 +55,7 @@ namespace {
}
private:
- boost::scoped_ptr<typename BtreeLogic<OnDiskFormat>::Builder> _builder;
+ std::unique_ptr<typename BtreeLogic<OnDiskFormat>::Builder> _builder;
// Not owned here.
OperationContext* _trans;
@@ -349,7 +348,7 @@ namespace {
}
private:
- scoped_ptr<BtreeLogic<OnDiskFormat> > _btree;
+ unique_ptr<BtreeLogic<OnDiskFormat> > _btree;
};
} // namespace
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp
index 35f724850be..5c95ec2bbc7 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp
@@ -30,13 +30,12 @@
#include "mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/operation_context.h"
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::numeric_limits;
BOOST_STATIC_ASSERT(RecordStoreV1Base::Buckets
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_index.cpp b/src/mongo/db/storage/mmap_v1/catalog/namespace_index.cpp
index 99c734a93d6..8f1bb505197 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_index.cpp
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_index.cpp
@@ -54,7 +54,7 @@ namespace mongo {
NamespaceIndex::NamespaceIndex(const std::string& dir, const std::string& database)
: _dir(dir),
_database(database),
- _ht(NULL) {
+ _ht(nullptr) {
}
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_index.h b/src/mongo/db/storage/mmap_v1/catalog/namespace_index.h
index 4c652b1fc25..44f429311ba 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_index.h
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_index.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <list>
#include <string>
@@ -87,7 +86,7 @@ namespace mongo {
const std::string _database;
DurableMappedFile _f;
- boost::scoped_ptr<NamespaceHashTable> _ht;
+ std::unique_ptr<NamespaceHashTable> _ht;
};
}
diff --git a/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp b/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp
index 2d9857ce64e..34dede1f702 100644
--- a/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp
+++ b/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.h"
-#include <boost/scoped_ptr.hpp>
#include <utility>
#include "mongo/db/catalog/index_catalog_entry.h"
@@ -56,7 +55,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
namespace {
diff --git a/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.h b/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.h
index 92dea158286..1db5e8a1f87 100644
--- a/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.h
+++ b/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <map>
#include <string>
@@ -137,8 +136,8 @@ namespace mongo {
// RecoveryUnit to ensure correct handling of rollback.
struct Entry {
- boost::scoped_ptr<CollectionCatalogEntry> catalogEntry;
- boost::scoped_ptr<RecordStoreV1Base> recordStore;
+ std::unique_ptr<CollectionCatalogEntry> catalogEntry;
+ std::unique_ptr<RecordStoreV1Base> recordStore;
};
typedef std::map<std::string, Entry*> CollectionMap;
diff --git a/src/mongo/db/storage/mmap_v1/mmap_v1_extent_manager.cpp b/src/mongo/db/storage/mmap_v1/mmap_v1_extent_manager.cpp
index b783d92a76c..d96b8f69b88 100644
--- a/src/mongo/db/storage/mmap_v1/mmap_v1_extent_manager.cpp
+++ b/src/mongo/db/storage/mmap_v1/mmap_v1_extent_manager.cpp
@@ -105,7 +105,7 @@ namespace mongo {
// This ensures that our MmapV1RecordHeader* does not drop out from under our feet before
// we dereference it.
- boost::scoped_ptr<LockMongoFilesShared> _filesLock;
+ std::unique_ptr<LockMongoFilesShared> _filesLock;
};
MmapV1ExtentManager::MmapV1ExtentManager(StringData dbname,
diff --git a/src/mongo/db/storage/mmap_v1/mmap_v1_init_test.cpp b/src/mongo/db/storage/mmap_v1/mmap_v1_init_test.cpp
index 2fb752eab8e..62ecdde5aa1 100644
--- a/src/mongo/db/storage/mmap_v1/mmap_v1_init_test.cpp
+++ b/src/mongo/db/storage/mmap_v1/mmap_v1_init_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/service_context.h"
#include "mongo/db/json.h"
@@ -47,7 +46,7 @@ namespace {
ServiceContext* globalEnv = getGlobalServiceContext();
ASSERT_TRUE(globalEnv);
ASSERT_TRUE(getGlobalServiceContext()->isRegisteredStorageEngine("mmapv1"));
- boost::scoped_ptr<StorageFactoriesIterator> sfi(getGlobalServiceContext()->
+ std::unique_ptr<StorageFactoriesIterator> sfi(getGlobalServiceContext()->
makeStorageFactoriesIterator());
ASSERT_TRUE(sfi);
bool found = false;
diff --git a/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp b/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp
index 4368190a532..5862a44a144 100644
--- a/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp
+++ b/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp
@@ -32,7 +32,6 @@
#include "mongo/db/storage/mmap_v1/record_store_v1_base.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/client.h"
@@ -49,7 +48,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::set;
using std::string;
diff --git a/src/mongo/db/storage/mmap_v1/record_store_v1_base.h b/src/mongo/db/storage/mmap_v1/record_store_v1_base.h
index a9b1ed78aa5..4e1aa8de338 100644
--- a/src/mongo/db/storage/mmap_v1/record_store_v1_base.h
+++ b/src/mongo/db/storage/mmap_v1/record_store_v1_base.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/util/concurrency/spin_lock.h"
#include "mongo/platform/unordered_set.h"
@@ -307,7 +306,7 @@ namespace mongo {
int len,
bool enforceQuota );
- boost::scoped_ptr<RecordStoreV1MetaData> _details;
+ std::unique_ptr<RecordStoreV1MetaData> _details;
ExtentManager* _extentManager;
bool _isSystemIndexes;
diff --git a/src/mongo/db/storage/mmap_v1/repair_database.cpp b/src/mongo/db/storage/mmap_v1/repair_database.cpp
index f85120f8a87..aa83636ae6b 100644
--- a/src/mongo/db/storage/mmap_v1/repair_database.cpp
+++ b/src/mongo/db/storage/mmap_v1/repair_database.cpp
@@ -35,7 +35,6 @@
#include "mongo/db/storage/mmap_v1/mmap_v1_engine.h"
#include <boost/filesystem/operations.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/background.h"
#include "mongo/db/catalog/collection.h"
@@ -56,7 +55,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::endl;
using std::map;
using std::string;
@@ -281,7 +280,7 @@ namespace mongo {
const std::string& dbName,
bool preserveClonedFilesOnFailure,
bool backupOriginalFiles ) {
- scoped_ptr<RepairFileDeleter> repairFileDeleter;
+ unique_ptr<RepairFileDeleter> repairFileDeleter;
// Must be done before and after repair
getDur().syncDataAndTruncateJournal(txn);
@@ -318,8 +317,8 @@ namespace mongo {
return Status(ErrorCodes::NamespaceNotFound, "database does not exist to repair");
}
- scoped_ptr<MMAPV1DatabaseCatalogEntry> dbEntry;
- scoped_ptr<Database> tempDatabase;
+ unique_ptr<MMAPV1DatabaseCatalogEntry> dbEntry;
+ unique_ptr<Database> tempDatabase;
// Must call this before MMAPV1DatabaseCatalogEntry's destructor closes the DB files
ON_BLOCK_EXIT(&dur::DurableInterface::syncDataAndTruncateJournal, &getDur(), txn);
diff --git a/src/mongo/db/storage/record_store_test_datafor.cpp b/src/mongo/db/storage/record_store_test_datafor.cpp
index a068c26ad27..7af9534acb5 100644
--- a/src/mongo/db/storage/record_store_test_datafor.cpp
+++ b/src/mongo/db/storage/record_store_test_datafor.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/record_id.h"
#include "mongo/db/storage/record_data.h"
@@ -42,23 +41,23 @@ using std::stringstream;
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
// Insert a record and verify its contents by calling dataFor()
// on the returned RecordId.
TEST( RecordStoreTestHarness, DataFor ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
string data = "record-";
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -72,12 +71,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
RecordData record = rs->dataFor( opCtx.get(), loc );
ASSERT_EQUALS( data.size() + 1, static_cast<size_t>( record.size() ) );
@@ -89,18 +88,18 @@ namespace mongo {
// Insert multiple records and verify their contents by calling dataFor()
// on each of the returned RecordIds.
TEST( RecordStoreTestHarness, DataForMultiple ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
const int nToInsert = 10;
RecordId locs[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record----" << i;
@@ -118,12 +117,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record----" << i;
diff --git a/src/mongo/db/storage/record_store_test_datasize.cpp b/src/mongo/db/storage/record_store_test_datasize.cpp
index aadcc99acb8..247adb92189 100644
--- a/src/mongo/db/storage/record_store_test_datasize.cpp
+++ b/src/mongo/db/storage/record_store_test_datasize.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
@@ -40,37 +39,37 @@ using std::stringstream;
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
// Verify that an empty collection takes up no space.
TEST( RecordStoreTestHarness, DataSizeEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT( rs->dataSize( opCtx.get() ) == 0 );
}
}
// Verify that a nonempty collection takes up some space.
TEST( RecordStoreTestHarness, DataSizeNonEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
int nToInsert = 10;
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -87,12 +86,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT( rs->dataSize( opCtx.get() ) > 0 );
}
}
diff --git a/src/mongo/db/storage/record_store_test_deleterecord.cpp b/src/mongo/db/storage/record_store_test_deleterecord.cpp
index e51ba6c224f..d2a978d733f 100644
--- a/src/mongo/db/storage/record_store_test_deleterecord.cpp
+++ b/src/mongo/db/storage/record_store_test_deleterecord.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/record_id.h"
#include "mongo/db/storage/record_data.h"
@@ -42,22 +41,22 @@ using std::stringstream;
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
// Insert a record and try to delete it.
TEST( RecordStoreTestHarness, DeleteRecord ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
string data = "my record";
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -71,12 +70,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
rs->deleteRecord( opCtx.get(), loc );
@@ -85,25 +84,25 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
}
// Insert multiple records and try to delete them.
TEST( RecordStoreTestHarness, DeleteMultipleRecords ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
const int nToInsert = 10;
RecordId locs[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -121,12 +120,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
rs->deleteRecord( opCtx.get(), locs[i] );
@@ -135,7 +134,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
}
diff --git a/src/mongo/db/storage/record_store_test_harness.cpp b/src/mongo/db/storage/record_store_test_harness.cpp
index 149509abf63..b3a4495b2e1 100644
--- a/src/mongo/db/storage/record_store_test_harness.cpp
+++ b/src/mongo/db/storage/record_store_test_harness.cpp
@@ -30,22 +30,21 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
TEST( RecordStoreTestHarness, Simple1 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -54,7 +53,7 @@ namespace mongo {
RecordId loc1;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(), s.c_str(), s.size() + 1, false );
@@ -67,7 +66,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( s, rs->dataFor( opCtx.get(), loc1 ).data() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
@@ -80,7 +79,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(), s.c_str(), s.size() + 1, false );
@@ -91,7 +90,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 2, rs->numRecords( opCtx.get() ) );
}
}
@@ -111,13 +110,13 @@ namespace mongo {
TEST( RecordStoreTestHarness, Simple1InsertDocWroter ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
RecordId loc1;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
@@ -133,11 +132,11 @@ namespace mongo {
}
TEST( RecordStoreTestHarness, Delete1 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -145,7 +144,7 @@ namespace mongo {
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
@@ -160,12 +159,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
@@ -179,11 +178,11 @@ namespace mongo {
}
TEST( RecordStoreTestHarness, Delete2 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -191,7 +190,7 @@ namespace mongo {
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
@@ -206,13 +205,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( s, rs->dataFor( opCtx.get(), loc ).data() );
ASSERT_EQUALS( 2, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
rs->deleteRecord( opCtx.get(), loc );
@@ -222,11 +221,11 @@ namespace mongo {
}
TEST( RecordStoreTestHarness, Update1 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -235,7 +234,7 @@ namespace mongo {
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -249,12 +248,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( s1, rs->dataFor( opCtx.get(), loc ).data() );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->updateRecord( opCtx.get(), loc,
@@ -268,7 +267,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
ASSERT_EQUALS( s2, rs->dataFor( opCtx.get(), loc ).data() );
}
@@ -276,8 +275,8 @@ namespace mongo {
}
TEST( RecordStoreTestHarness, UpdateInPlace1 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
if (!rs->updateWithDamagesSupported())
return;
@@ -288,7 +287,7 @@ namespace mongo {
RecordId loc;
const RecordData s1Rec(s1.c_str(), s1.size() + 1);
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -303,12 +302,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( s1, rs->dataFor( opCtx.get(), loc ).data() );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
const char* damageSource = "222";
@@ -328,18 +327,18 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( s2, rs->dataFor( opCtx.get(), loc ).data() );
}
}
TEST( RecordStoreTestHarness, Truncate1 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -347,7 +346,7 @@ namespace mongo {
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(), s.c_str(), s.size() + 1, false );
@@ -360,17 +359,17 @@ namespace mongo {
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( s, rs->dataFor( opCtx.get(), loc ).data() );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
rs->truncate( opCtx.get() );
@@ -380,7 +379,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -389,16 +388,16 @@ namespace mongo {
TEST( RecordStoreTestHarness, Cursor1 ) {
const int N = 10;
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
for ( int i = 0; i < N; i++ ) {
@@ -410,13 +409,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( N, rs->numRecords( opCtx.get() ) );
}
{
int x = 0;
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
while (auto record = cursor->next()) {
string s = str::stream() << "eliot" << x++;
@@ -428,7 +427,7 @@ namespace mongo {
{
int x = N;
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get(), false);
while (auto record = cursor->next()) {
string s = str::stream() << "eliot" << --x;
diff --git a/src/mongo/db/storage/record_store_test_insertrecord.cpp b/src/mongo/db/storage/record_store_test_insertrecord.cpp
index 5fddb8c4e01..18f72f8bab7 100644
--- a/src/mongo/db/storage/record_store_test_insertrecord.cpp
+++ b/src/mongo/db/storage/record_store_test_insertrecord.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/record_id.h"
#include "mongo/db/storage/record_data.h"
@@ -43,22 +42,22 @@ using std::stringstream;
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
// Insert a record and verify the number of entries in the collection is 1.
TEST( RecordStoreTestHarness, InsertRecord ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
string data = "my record";
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -72,7 +71,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
}
@@ -80,18 +79,18 @@ namespace mongo {
// Insert multiple records and verify the number of entries in the collection
// equals the number that were inserted.
TEST( RecordStoreTestHarness, InsertMultipleRecords ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
const int nToInsert = 10;
RecordId locs[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -109,7 +108,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
}
@@ -117,17 +116,17 @@ namespace mongo {
// Insert a record using a DocWriter and verify the number of entries
// in the collection is 1.
TEST( RecordStoreTestHarness, InsertRecordUsingDocWriter ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
StringDocWriter docWriter( "my record", false );
@@ -142,7 +141,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
}
@@ -150,18 +149,18 @@ namespace mongo {
// Insert multiple records using a DocWriter and verify the number of entries
// in the collection equals the number that were inserted.
TEST( RecordStoreTestHarness, InsertMultipleRecordsUsingDocWriter ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
const int nToInsert = 10;
RecordId locs[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -178,7 +177,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
}
diff --git a/src/mongo/db/storage/record_store_test_manyiter.cpp b/src/mongo/db/storage/record_store_test_manyiter.cpp
index 57723e23723..ec896be50a0 100644
--- a/src/mongo/db/storage/record_store_test_manyiter.cpp
+++ b/src/mongo/db/storage/record_store_test_manyiter.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/record_id.h"
#include "mongo/db/storage/record_data.h"
@@ -44,20 +43,20 @@ using std::vector;
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
// Create multiple iterators over an empty record store.
TEST( RecordStoreTestHarness, GetManyIteratorsEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
for (auto&& cursor : rs->getManyCursors(opCtx.get())) {
ASSERT(!cursor->next());
ASSERT(!cursor->next());
@@ -67,18 +66,18 @@ namespace mongo {
// Create multiple iterators over a nonempty record store.
TEST( RecordStoreTestHarness, GetManyIteratorsNonEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
const int nToInsert = 10;
RecordId locs[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -96,13 +95,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
set<RecordId> remain( locs, locs + nToInsert );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
for (auto&& cursor : rs->getManyCursors(opCtx.get())) {
while (auto record = cursor->next()) {
ASSERT_EQ(remain.erase(record->id), size_t(1));
diff --git a/src/mongo/db/storage/record_store_test_recorditer.cpp b/src/mongo/db/storage/record_store_test_recorditer.cpp
index 63edb205c6a..a4f33287ee3 100644
--- a/src/mongo/db/storage/record_store_test_recorditer.cpp
+++ b/src/mongo/db/storage/record_store_test_recorditer.cpp
@@ -31,7 +31,6 @@
#include "mongo/db/storage/record_store_test_harness.h"
#include <algorithm>
-#include <boost/scoped_ptr.hpp>
#include "mongo/bson/util/builder.h"
#include "mongo/db/record_id.h"
@@ -39,7 +38,7 @@
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
using std::stringstream;
@@ -49,11 +48,11 @@ namespace mongo {
// When curr() or getNext() is called on an iterator positioned at EOF,
// the iterator returns RecordId() and stays at EOF.
TEST( RecordStoreTestHarness, IterateOverMultipleRecords ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -61,7 +60,7 @@ namespace mongo {
RecordId locs[nToInsert];
std::string datas[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -80,13 +79,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
std::sort( locs, locs + nToInsert ); // inserted records may not be in RecordId order
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
for ( int i = 0; i < nToInsert; i++ ) {
const auto record = cursor->next();
@@ -102,11 +101,11 @@ namespace mongo {
// When curr() or getNext() is called on an iterator positioned at EOF,
// the iterator returns RecordId() and stays at EOF.
TEST( RecordStoreTestHarness, IterateOverMultipleRecordsReversed ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -114,7 +113,7 @@ namespace mongo {
RecordId locs[nToInsert];
std::string datas[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -133,13 +132,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
std::sort( locs, locs + nToInsert ); // inserted records may not be in RecordId order
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get(), false);
for ( int i = nToInsert - 1; i >= 0; i-- ) {
@@ -155,11 +154,11 @@ namespace mongo {
// Insert multiple records and try to create a forward iterator
// starting at an interior position.
TEST( RecordStoreTestHarness, IterateStartFromMiddle ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -167,7 +166,7 @@ namespace mongo {
RecordId locs[nToInsert];
std::string datas[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -186,13 +185,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
std::sort( locs, locs + nToInsert ); // inserted records may not be in RecordId order
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
int start = nToInsert / 2;
auto cursor = rs->getCursor(opCtx.get());
@@ -209,11 +208,11 @@ namespace mongo {
// Insert multiple records and try to create a reverse iterator
// starting at an interior position.
TEST( RecordStoreTestHarness, IterateStartFromMiddleReversed ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -221,7 +220,7 @@ namespace mongo {
RecordId locs[nToInsert];
std::string datas[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -240,13 +239,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
std::sort( locs, locs + nToInsert ); // inserted records may not be in RecordId order
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
int start = nToInsert / 2;
auto cursor = rs->getCursor(opCtx.get(), false);
@@ -264,11 +263,11 @@ namespace mongo {
// is EOF. Add an additional record, saving and restoring the iterator state, and check
// that the iterator remains EOF.
TEST( RecordStoreTestHarness, RecordIteratorEOF ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -276,7 +275,7 @@ namespace mongo {
RecordId locs[nToInsert];
std::string datas[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
StringBuilder sb;
sb << "record " << i;
@@ -295,12 +294,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
// Get a forward iterator starting at the beginning of the record store.
auto cursor = rs->getCursor(opCtx.get());
@@ -339,11 +338,11 @@ namespace mongo {
// Test calling savePositioned and restore after each call to next
TEST( RecordStoreTestHarness, RecordIteratorSavePositionedRestore ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -351,7 +350,7 @@ namespace mongo {
RecordId locs[nToInsert];
std::string datas[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
StringBuilder sb;
sb << "record " << i;
@@ -370,12 +369,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
// Get a forward iterator starting at the beginning of the record store.
auto cursor = rs->getCursor(opCtx.get());
diff --git a/src/mongo/db/storage/record_store_test_recordstore.cpp b/src/mongo/db/storage/record_store_test_recordstore.cpp
index c5dd2c60805..14b21c15aac 100644
--- a/src/mongo/db/storage/record_store_test_recordstore.cpp
+++ b/src/mongo/db/storage/record_store_test_recordstore.cpp
@@ -30,20 +30,19 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
namespace mongo {
// Verify that the name of the record store is not NULL and nonempty.
TEST ( RecordStoreTestHarness, RecordStoreName ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
const char *name = rs->name();
@@ -53,8 +52,8 @@ namespace mongo {
// Verify that the namespace of the record store is nonempty.
TEST( RecordStoreTestHarness, Namespace ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
string ns = rs->ns();
@@ -64,8 +63,8 @@ namespace mongo {
// Call isCapped() on a non-capped collection and verify the result is false.
TEST( RecordStoreTestHarness, IsNotCapped ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
ASSERT( !rs->isCapped() );
}
diff --git a/src/mongo/db/storage/record_store_test_repairiter.cpp b/src/mongo/db/storage/record_store_test_repairiter.cpp
index abb6e5f6bb3..b3e11e137d4 100644
--- a/src/mongo/db/storage/record_store_test_repairiter.cpp
+++ b/src/mongo/db/storage/record_store_test_repairiter.cpp
@@ -30,14 +30,13 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/record_id.h"
#include "mongo/db/storage/record_data.h"
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::set;
using std::string;
using std::stringstream;
@@ -46,16 +45,16 @@ namespace mongo {
// Create an iterator for repairing an empty record store.
TEST( RecordStoreTestHarness, GetIteratorForRepairEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursorForRepair( opCtx.get() );
// returns NULL if getCursorForRepair is not supported
if (!cursor) {
@@ -68,18 +67,18 @@ namespace mongo {
// Insert multiple records and create an iterator for repairing the record store,
// even though the it has not been corrupted.
TEST( RecordStoreTestHarness, GetIteratorForRepairNonEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
const int nToInsert = 10;
RecordId locs[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -97,13 +96,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
set<RecordId> remain( locs, locs + nToInsert );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursorForRepair( opCtx.get() );
// returns NULL if getCursorForRepair is not supported
if (!cursor) {
@@ -123,18 +122,18 @@ namespace mongo {
// Then invalidate the record and ensure that the repair iterator responds correctly.
// See SERVER-16300.
TEST(RecordStoreTestHarness, GetIteratorForRepairInvalidateSingleton) {
- scoped_ptr<HarnessHelper> harnessHelper(newHarnessHelper());
- scoped_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<HarnessHelper> harnessHelper(newHarnessHelper());
+ unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
{
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
ASSERT_EQ(0, rs->numRecords(opCtx.get()));
}
// Insert one record.
RecordId idToInvalidate;
{
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
WriteUnitOfWork uow(opCtx.get());
StatusWith<RecordId> res = rs->insertRecord(opCtx.get(), "some data", 10, false);
ASSERT_OK(res.getStatus());
@@ -144,12 +143,12 @@ namespace mongo {
// Double-check that the record store has one record in it now.
{
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
ASSERT_EQ(1, rs->numRecords(opCtx.get()));
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
auto cursor = rs->getCursorForRepair( opCtx.get() );
// returns NULL if getCursorForRepair is not supported
if (!cursor) {
diff --git a/src/mongo/db/storage/record_store_test_storagesize.cpp b/src/mongo/db/storage/record_store_test_storagesize.cpp
index 9f5ec9163cf..a0d5cfab024 100644
--- a/src/mongo/db/storage/record_store_test_storagesize.cpp
+++ b/src/mongo/db/storage/record_store_test_storagesize.cpp
@@ -30,12 +30,11 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
using std::stringstream;
@@ -43,17 +42,17 @@ namespace mongo {
// Verify that a nonempty collection maybe takes up some space on disk.
TEST( RecordStoreTestHarness, StorageSizeNonEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
int nToInsert = 10;
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -70,12 +69,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT( rs->storageSize( opCtx.get(), NULL ) >= 0 );
}
}
diff --git a/src/mongo/db/storage/record_store_test_touch.cpp b/src/mongo/db/storage/record_store_test_touch.cpp
index d1bcdfe488c..80b8909611c 100644
--- a/src/mongo/db/storage/record_store_test_touch.cpp
+++ b/src/mongo/db/storage/record_store_test_touch.cpp
@@ -30,12 +30,11 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
using std::stringstream;
@@ -43,16 +42,16 @@ namespace mongo {
// Verify that calling touch() on an empty collection returns an OK status.
TEST( RecordStoreTestHarness, TouchEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
BSONObjBuilder stats;
Status status = rs->touch( opCtx.get(), &stats );
@@ -64,17 +63,17 @@ namespace mongo {
// Insert multiple records, and verify that calling touch() on a nonempty collection
// returns an OK status.
TEST( RecordStoreTestHarness, TouchNonEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
int nToInsert = 10;
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -91,12 +90,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
BSONObjBuilder stats;
// XXX does not verify the collection was loaded into cache
@@ -110,16 +109,16 @@ namespace mongo {
// Verify that calling touch() on an empty collection returns an OK status,
// even when NULL is passed in for the stats output.
TEST( RecordStoreTestHarness, TouchEmptyWithNullStats ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
Status status = rs->touch( opCtx.get(), NULL /* stats output */ );
ASSERT( status.isOK() || status.code() == ErrorCodes::CommandNotSupported );
}
@@ -128,17 +127,17 @@ namespace mongo {
// Insert multiple records, and verify that calling touch() on a nonempty collection
// returns an OK status, even when NULL is passed in for the stats output.
TEST( RecordStoreTestHarness, TouchNonEmptyWithNullStats ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
int nToInsert = 10;
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -155,12 +154,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
// XXX does not verify the collection was loaded into cache
// (even if supported by storage engine)
Status status = rs->touch( opCtx.get(), NULL /* stats output */ );
diff --git a/src/mongo/db/storage/record_store_test_truncate.cpp b/src/mongo/db/storage/record_store_test_truncate.cpp
index a4d21b1f0cc..08870cc141f 100644
--- a/src/mongo/db/storage/record_store_test_truncate.cpp
+++ b/src/mongo/db/storage/record_store_test_truncate.cpp
@@ -30,12 +30,11 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
using std::stringstream;
@@ -43,16 +42,16 @@ namespace mongo {
// Verify that calling truncate() on an already empty collection returns an OK status.
TEST( RecordStoreTestHarness, TruncateEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
ASSERT_OK( rs->truncate( opCtx.get() ) );
@@ -61,7 +60,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
}
@@ -69,17 +68,17 @@ namespace mongo {
// Insert multiple records, and verify that calling truncate() on a nonempty collection
// removes all of them and returns an OK status.
TEST( RecordStoreTestHarness, TruncateNonEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
int nToInsert = 10;
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -96,12 +95,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
ASSERT_OK( rs->truncate( opCtx.get() ) );
@@ -110,7 +109,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
}
diff --git a/src/mongo/db/storage/record_store_test_updaterecord.cpp b/src/mongo/db/storage/record_store_test_updaterecord.cpp
index 6955f752327..260ce0e7e9e 100644
--- a/src/mongo/db/storage/record_store_test_updaterecord.cpp
+++ b/src/mongo/db/storage/record_store_test_updaterecord.cpp
@@ -30,7 +30,6 @@
#include "mongo/db/storage/record_store_test_updaterecord.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/record_id.h"
#include "mongo/db/storage/record_data.h"
@@ -38,7 +37,7 @@
#include "mongo/db/storage/record_store_test_harness.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
using std::stringstream;
@@ -46,18 +45,18 @@ namespace mongo {
// Insert a record and try to update it.
TEST( RecordStoreTestHarness, UpdateRecord ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
string data = "my record";
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -71,13 +70,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
data = "updated record-";
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->updateRecord( opCtx.get(),
@@ -93,7 +92,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
RecordData record = rs->dataFor( opCtx.get(), loc );
ASSERT_EQUALS( data.size() + 1, static_cast<size_t>( record.size() ) );
@@ -104,18 +103,18 @@ namespace mongo {
// Insert multiple records and try to update them.
TEST( RecordStoreTestHarness, UpdateMultipleRecords ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
const int nToInsert = 10;
RecordId locs[nToInsert];
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "record " << i;
@@ -133,12 +132,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( nToInsert, rs->numRecords( opCtx.get() ) );
}
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "update record-" << i;
@@ -158,7 +157,7 @@ namespace mongo {
}
for ( int i = 0; i < nToInsert; i++ ) {
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
stringstream ss;
ss << "update record-" << i;
@@ -173,18 +172,18 @@ namespace mongo {
// Insert a record, try to update it, and examine how the UpdateNotifier is called.
TEST( RecordStoreTestHarness, UpdateRecordWithMoveNotifier ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
string oldData = "my record";
RecordId loc;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -198,13 +197,13 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
string newData = "my updated record--";
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
UpdateNotifierSpy umn( opCtx.get(), loc, oldData.c_str(), oldData.size() );
@@ -233,7 +232,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
RecordData record = rs->dataFor( opCtx.get(), loc );
ASSERT_EQUALS( newData.size() + 1, static_cast<size_t>( record.size() ) );
diff --git a/src/mongo/db/storage/record_store_test_updatewithdamages.cpp b/src/mongo/db/storage/record_store_test_updatewithdamages.cpp
index 413e4f15adb..f5dc1353f15 100644
--- a/src/mongo/db/storage/record_store_test_updatewithdamages.cpp
+++ b/src/mongo/db/storage/record_store_test_updatewithdamages.cpp
@@ -30,28 +30,27 @@
#include "mongo/db/storage/record_store_test_harness.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/record_id.h"
#include "mongo/db/storage/record_data.h"
#include "mongo/db/storage/record_store.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
namespace mongo {
// Insert a record and try to perform an in-place update on it.
TEST( RecordStoreTestHarness, UpdateWithDamages ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
if (!rs->updateWithDamagesSupported())
return;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -59,7 +58,7 @@ namespace mongo {
RecordId loc;
const RecordData rec(data.c_str(), data.size() + 1);
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -73,12 +72,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
mutablebson::DamageVector dv( 3 );
dv[0].sourceOffset = 5;
@@ -99,7 +98,7 @@ namespace mongo {
data = "11101000";
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
RecordData record = rs->dataFor( opCtx.get(), loc );
ASSERT_EQUALS( data, record.data() );
@@ -110,14 +109,14 @@ namespace mongo {
// Insert a record and try to perform an in-place update on it with a DamageVector
// containing overlapping DamageEvents.
TEST( RecordStoreTestHarness, UpdateWithOverlappingDamageEvents ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
if (!rs->updateWithDamagesSupported())
return;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -125,7 +124,7 @@ namespace mongo {
RecordId loc;
const RecordData rec(data.c_str(), data.size() + 1);
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -139,12 +138,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
mutablebson::DamageVector dv( 2 );
dv[0].sourceOffset = 3;
@@ -162,7 +161,7 @@ namespace mongo {
data = "10100010";
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
RecordData record = rs->dataFor( opCtx.get(), loc );
ASSERT_EQUALS( data, record.data() );
@@ -174,14 +173,14 @@ namespace mongo {
// containing overlapping DamageEvents. The changes should be applied in the order
// specified by the DamageVector, and not -- for instance -- by the targetOffset.
TEST( RecordStoreTestHarness, UpdateWithOverlappingDamageEventsReversed ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
if (!rs->updateWithDamagesSupported())
return;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -189,7 +188,7 @@ namespace mongo {
RecordId loc;
const RecordData rec(data.c_str(), data.size() + 1);
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -203,12 +202,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
mutablebson::DamageVector dv( 2 );
dv[0].sourceOffset = 0;
@@ -226,7 +225,7 @@ namespace mongo {
data = "10111010";
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
RecordData record = rs->dataFor( opCtx.get(), loc );
ASSERT_EQUALS( data, record.data() );
@@ -236,14 +235,14 @@ namespace mongo {
// Insert a record and try to call updateWithDamages() with an empty DamageVector.
TEST( RecordStoreTestHarness, UpdateWithNoDamages ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
if (!rs->updateWithDamagesSupported())
return;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
@@ -251,7 +250,7 @@ namespace mongo {
RecordId loc;
const RecordData rec(data.c_str(), data.size() + 1);
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(),
@@ -265,12 +264,12 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 1, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
mutablebson::DamageVector dv;
@@ -281,7 +280,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
RecordData record = rs->dataFor( opCtx.get(), loc );
ASSERT_EQUALS( data, record.data() );
diff --git a/src/mongo/db/storage/record_store_test_validate.cpp b/src/mongo/db/storage/record_store_test_validate.cpp
index 984b8beb8ef..89453520073 100644
--- a/src/mongo/db/storage/record_store_test_validate.cpp
+++ b/src/mongo/db/storage/record_store_test_validate.cpp
@@ -30,13 +30,12 @@
#include "mongo/db/storage/record_store_test_validate.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_store.h"
#include "mongo/db/storage/record_store_test_harness.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::string;
namespace mongo {
@@ -46,16 +45,16 @@ namespace {
// When either of `full` or `scanData` are false, the ValidateAdaptor
// should not be used.
TEST( RecordStoreTestHarness, ValidateEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
ValidateAdaptorSpy adaptor;
ValidateResults results;
@@ -76,16 +75,16 @@ namespace {
// When either of `full` or `scanData` are false, the ValidateAdaptor
// should not be used.
TEST( RecordStoreTestHarness, ValidateEmptyAndScanData ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
ValidateAdaptorSpy adaptor;
ValidateResults results;
@@ -106,16 +105,16 @@ namespace {
// When either of `full` or `scanData` are false, the ValidateAdaptor
// should not be used.
TEST( RecordStoreTestHarness, FullValidateEmpty ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
ValidateAdaptorSpy adaptor;
ValidateResults results;
@@ -134,16 +133,16 @@ namespace {
// Verify that calling validate() on an empty collection returns an OK status.
TEST( RecordStoreTestHarness, FullValidateEmptyAndScanData ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( 0, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
ValidateAdaptorSpy adaptor;
ValidateResults results;
@@ -165,7 +164,7 @@ namespace {
// should not be used.
TEST_F( ValidateTest, ValidateNonEmpty ) {
{
- scoped_ptr<OperationContext> opCtx( newOperationContext() );
+ unique_ptr<OperationContext> opCtx( newOperationContext() );
{
ValidateAdaptorSpy adaptor;
ValidateResults results;
@@ -187,7 +186,7 @@ namespace {
// should not be used.
TEST_F( ValidateTest, ValidateAndScanDataNonEmpty ) {
{
- scoped_ptr<OperationContext> opCtx( newOperationContext() );
+ unique_ptr<OperationContext> opCtx( newOperationContext() );
{
ValidateAdaptorSpy adaptor;
ValidateResults results;
@@ -209,7 +208,7 @@ namespace {
// should not be used.
TEST_F( ValidateTest, FullValidateNonEmpty ) {
{
- scoped_ptr<OperationContext> opCtx( newOperationContext() );
+ unique_ptr<OperationContext> opCtx( newOperationContext() );
{
ValidateAdaptorSpy adaptor;
ValidateResults results;
@@ -230,7 +229,7 @@ namespace {
// returns an OK status.
TEST_F( ValidateTest, FullValidateNonEmptyAndScanData ) {
{
- scoped_ptr<OperationContext> opCtx( newOperationContext() );
+ unique_ptr<OperationContext> opCtx( newOperationContext() );
{
ValidateAdaptorSpy adaptor( getInsertedRecords() );
ValidateResults results;
diff --git a/src/mongo/db/storage/record_store_test_validate.h b/src/mongo/db/storage/record_store_test_validate.h
index c342e43dfda..e8ff30acfa3 100644
--- a/src/mongo/db/storage/record_store_test_validate.h
+++ b/src/mongo/db/storage/record_store_test_validate.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/storage/record_data.h"
#include "mongo/db/storage/record_store.h"
@@ -81,13 +80,13 @@ namespace {
void setUp() {
{
- boost::scoped_ptr<OperationContext> opCtx( newOperationContext() );
+ std::unique_ptr<OperationContext> opCtx( newOperationContext() );
ASSERT_EQUALS( 0, _rs->numRecords( opCtx.get() ) );
}
int nToInsert = 10;
for ( int i = 0; i < nToInsert; i++ ) {
- boost::scoped_ptr<OperationContext> opCtx( newOperationContext() );
+ std::unique_ptr<OperationContext> opCtx( newOperationContext() );
{
std::stringstream ss;
ss << "record " << i;
@@ -105,14 +104,14 @@ namespace {
}
{
- boost::scoped_ptr<OperationContext> opCtx( newOperationContext() );
+ std::unique_ptr<OperationContext> opCtx( newOperationContext() );
ASSERT_EQUALS( nToInsert, _rs->numRecords( opCtx.get() ) );
}
}
private:
- boost::scoped_ptr<HarnessHelper> _harnessHelper;
- boost::scoped_ptr<RecordStore> _rs;
+ std::unique_ptr<HarnessHelper> _harnessHelper;
+ std::unique_ptr<RecordStore> _rs;
std::set<std::string> _remain;
};
diff --git a/src/mongo/db/storage/storage_engine_lock_file.h b/src/mongo/db/storage/storage_engine_lock_file.h
index b28ccc29823..2cb14ac77d3 100644
--- a/src/mongo/db/storage/storage_engine_lock_file.h
+++ b/src/mongo/db/storage/storage_engine_lock_file.h
@@ -28,7 +28,7 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
+#include <memory>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -89,7 +89,7 @@ namespace mongo {
bool _uncleanShutdown;
class LockFileHandle;
- boost::scoped_ptr<LockFileHandle> _lockFileHandle;
+ std::unique_ptr<LockFileHandle> _lockFileHandle;
};
} // namespace mongo
diff --git a/src/mongo/db/storage/storage_engine_lock_file_test.cpp b/src/mongo/db/storage/storage_engine_lock_file_test.cpp
index 2ca432d0d71..7ed69bc1477 100644
--- a/src/mongo/db/storage/storage_engine_lock_file_test.cpp
+++ b/src/mongo/db/storage/storage_engine_lock_file_test.cpp
@@ -29,7 +29,6 @@
#include "mongo/platform/basic.h"
#include <boost/filesystem.hpp>
-#include <boost/scoped_ptr.hpp>
#include <fstream>
#include <ostream>
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_index_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_index_test.cpp
index b78f11564ba..f7e308e6cf2 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_index_test.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_index_test.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/db/catalog/index_catalog_entry.h"
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_init_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_init_test.cpp
index 767e23d6c37..2f3ddf38518 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_init_test.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_init_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/service_context.h"
#include "mongo/db/json.h"
@@ -49,7 +48,7 @@ namespace {
ServiceContext* globalEnv = getGlobalServiceContext();
ASSERT_TRUE(globalEnv);
ASSERT_TRUE(getGlobalServiceContext()->isRegisteredStorageEngine(kWiredTigerEngineName));
- boost::scoped_ptr<StorageFactoriesIterator> sfi(getGlobalServiceContext()->
+ std::unique_ptr<StorageFactoriesIterator> sfi(getGlobalServiceContext()->
makeStorageFactoriesIterator());
ASSERT_TRUE(sfi);
bool found = false;
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h
index 0d96c0577d3..739084bdd06 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h
@@ -34,7 +34,6 @@
#include <set>
#include <string>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/mutex.hpp>
#include <wiredtiger.h>
@@ -140,7 +139,7 @@ namespace mongo {
WT_CONNECTION* _conn;
WT_EVENT_HANDLER _eventHandler;
- boost::scoped_ptr<WiredTigerSessionCache> _sessionCache;
+ std::unique_ptr<WiredTigerSessionCache> _sessionCache;
std::string _path;
bool _durable;
@@ -150,7 +149,7 @@ namespace mongo {
std::set<std::string> _identToDrop;
mutable boost::mutex _identToDropMutex;
- boost::scoped_ptr<WiredTigerSizeStorer> _sizeStorer;
+ std::unique_ptr<WiredTigerSizeStorer> _sizeStorer;
std::string _sizeStorerUri;
mutable ElapsedTracker _sizeStorerSyncTracker;
};
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp
index 409f0452404..db944d575d2 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine_test.cpp
@@ -57,7 +57,7 @@ namespace mongo {
private:
unittest::TempDir _dbpath;
- boost::scoped_ptr<WiredTigerKVEngine> _engine;
+ std::unique_ptr<WiredTigerKVEngine> _engine;
};
KVHarnessHelper* KVHarnessHelper::create() {
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
index 4d3e1a37b79..fb603e787f9 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
@@ -35,7 +35,6 @@
#include "mongo/db/storage/wiredtiger/wiredtiger_record_store.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_array.hpp>
#include <wiredtiger.h>
@@ -62,7 +61,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
namespace {
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.h b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.h
index e613868bce2..a050c68d7fd 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.h
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.h
@@ -34,7 +34,6 @@
#include <set>
#include <string>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/mutex.hpp>
#include "mongo/db/catalog/collection_options.h"
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp
index 7bd8728109e..c03613f9b9b 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <sstream>
#include <string>
@@ -51,7 +50,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using std::stringstream;
@@ -190,14 +189,14 @@ namespace mongo {
}
TEST(WiredTigerRecordStoreTest, Isolation1 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
RecordId loc1;
RecordId loc2;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
@@ -214,11 +213,11 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
- scoped_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
- scoped_ptr<WriteUnitOfWork> w1( new WriteUnitOfWork( t1.get() ) );
- scoped_ptr<WriteUnitOfWork> w2( new WriteUnitOfWork( t2.get() ) );
+ unique_ptr<WriteUnitOfWork> w1( new WriteUnitOfWork( t1.get() ) );
+ unique_ptr<WriteUnitOfWork> w2( new WriteUnitOfWork( t2.get() ) );
rs->dataFor( t1.get(), loc1 );
rs->dataFor( t2.get(), loc1 );
@@ -241,14 +240,14 @@ namespace mongo {
}
TEST(WiredTigerRecordStoreTest, Isolation2 ) {
- scoped_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<HarnessHelper> harnessHelper( newHarnessHelper() );
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
RecordId loc1;
RecordId loc2;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
@@ -265,8 +264,8 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
- scoped_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
// ensure we start transactions
rs->dataFor( t1.get(), loc2 );
@@ -295,8 +294,8 @@ namespace mongo {
}
TEST(WiredTigerRecordStoreTest, SizeStorer1 ) {
- scoped_ptr<WiredTigerHarnessHelper> harnessHelper(new WiredTigerHarnessHelper());
- scoped_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
+ unique_ptr<WiredTigerHarnessHelper> harnessHelper(new WiredTigerHarnessHelper());
+ unique_ptr<RecordStore> rs( harnessHelper->newNonCappedRecordStore() );
string uri = checked_cast<WiredTigerRecordStore*>( rs.get() )->getURI();
@@ -307,7 +306,7 @@ namespace mongo {
int N = 12;
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
for ( int i = 0; i < N; i++ ) {
@@ -319,7 +318,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( N, rs->numRecords( opCtx.get() ) );
}
@@ -333,18 +332,18 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
rs.reset( new WiredTigerRecordStore( opCtx.get(), "a.b", uri,
false, -1, -1, NULL, &ss ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
ASSERT_EQUALS( N, rs->numRecords( opCtx.get() ) );
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
WiredTigerRecoveryUnit* ru =
checked_cast<WiredTigerRecoveryUnit*>( opCtx->recoveryUnit() );
@@ -359,7 +358,7 @@ namespace mongo {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
WiredTigerSizeStorer ss2(harnessHelper->conn(), indexUri);
ss2.fillCache();
long long numRecords;
@@ -402,7 +401,7 @@ namespace {
expectedNumRecords = WiredTigerRecordStore::kCollectionScanOnCreationThreshold;
expectedDataSize = expectedNumRecords * 2;
{
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
WriteUnitOfWork uow( opCtx.get() );
for (int i=0; i < expectedNumRecords; i++) {
ASSERT_OK(rs->insertRecord( opCtx.get(), "a", 2, false ).getStatus());
@@ -438,9 +437,9 @@ namespace {
return dataSize;
}
- boost::scoped_ptr<WiredTigerHarnessHelper> harnessHelper;
- boost::scoped_ptr<WiredTigerSizeStorer> sizeStorer;
- boost::scoped_ptr<RecordStore> rs;
+ std::unique_ptr<WiredTigerHarnessHelper> harnessHelper;
+ std::unique_ptr<WiredTigerSizeStorer> sizeStorer;
+ std::unique_ptr<RecordStore> rs;
std::string uri;
long long expectedNumRecords;
@@ -449,7 +448,7 @@ namespace {
// Basic validation - size storer data is not updated.
TEST_F(SizeStorerValidateTest, Basic) {
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
ValidateResults results;
BSONObjBuilder output;
ASSERT_OK(rs->validate(opCtx.get(), false, false, NULL, &results, &output));
@@ -461,7 +460,7 @@ namespace {
// Full validation - size storer data is updated.
TEST_F(SizeStorerValidateTest, FullWithGoodAdaptor) {
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
GoodValidateAdaptor adaptor;
ValidateResults results;
BSONObjBuilder output;
@@ -474,7 +473,7 @@ namespace {
// Full validation with a validation adaptor that fails - size storer data is not updated.
TEST_F(SizeStorerValidateTest, FullWithBadAdapter) {
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
BadValidateAdaptor adaptor;
ValidateResults results;
BSONObjBuilder output;
@@ -489,7 +488,7 @@ namespace {
TEST_F(SizeStorerValidateTest, InvalidSizeStorerAtCreation) {
rs.reset(NULL);
- scoped_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper->newOperationContext());
sizeStorer->storeToCache(uri, expectedNumRecords*2, expectedDataSize*2);
rs.reset(new WiredTigerRecordStore(opCtx.get(), "a.b", uri, false, -1, -1, NULL,
sizeStorer.get()));
@@ -513,8 +512,8 @@ namespace {
} // namespace
- StatusWith<RecordId> insertBSON(scoped_ptr<OperationContext>& opCtx,
- scoped_ptr<RecordStore>& rs,
+ StatusWith<RecordId> insertBSON(unique_ptr<OperationContext>& opCtx,
+ unique_ptr<RecordStore>& rs,
const Timestamp& opTime) {
BSONObj obj = BSON( "ts" << opTime );
WriteUnitOfWork wuow(opCtx.get());
@@ -535,9 +534,9 @@ namespace {
// TODO make generic
TEST(WiredTigerRecordStoreTest, OplogHack) {
WiredTigerHarnessHelper harnessHelper;
- scoped_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("local.oplog.foo"));
+ unique_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("local.oplog.foo"));
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
// always illegal
ASSERT_EQ(insertBSON(opCtx, rs, Timestamp(2,-1)).getStatus(),
@@ -571,7 +570,7 @@ namespace {
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
// find start
ASSERT_EQ(rs->oplogStartHack(opCtx.get(), RecordId(0,1)), RecordId()); // nothing <=
ASSERT_EQ(rs->oplogStartHack(opCtx.get(), RecordId(2,1)), RecordId(1,2)); // between
@@ -580,53 +579,53 @@ namespace {
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
rs->temp_cappedTruncateAfter(opCtx.get(), RecordId(2,2), false); // no-op
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
ASSERT_EQ(rs->oplogStartHack(opCtx.get(), RecordId(2,3)), RecordId(2,2));
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
rs->temp_cappedTruncateAfter(opCtx.get(), RecordId(1,2), false); // deletes 2,2
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
ASSERT_EQ(rs->oplogStartHack(opCtx.get(), RecordId(2,3)), RecordId(1,2));
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
rs->temp_cappedTruncateAfter(opCtx.get(), RecordId(1,2), true); // deletes 1,2
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
ASSERT_EQ(rs->oplogStartHack(opCtx.get(), RecordId(2,3)), RecordId(1,1));
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
WriteUnitOfWork wuow(opCtx.get());
ASSERT_OK(rs->truncate(opCtx.get())); // deletes 1,1 and leaves collection empty
wuow.commit();
}
{
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
ASSERT_EQ(rs->oplogStartHack(opCtx.get(), RecordId(2,3)), RecordId());
}
}
TEST(WiredTigerRecordStoreTest, OplogHackOnNonOplog) {
WiredTigerHarnessHelper harnessHelper;
- scoped_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("local.NOT_oplog.foo"));
+ unique_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("local.NOT_oplog.foo"));
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
BSONObj obj = BSON( "ts" << Timestamp(2,-1) );
{
@@ -639,13 +638,13 @@ namespace {
}
TEST(WiredTigerRecordStoreTest, CappedOrder) {
- scoped_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
- scoped_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("a.b", 100000,10000));
+ unique_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
+ unique_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("a.b", 100000,10000));
RecordId loc1;
{ // first insert a document
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(), "a", 2, false );
@@ -656,7 +655,7 @@ namespace {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
auto record = cursor->seekExact(loc1);
ASSERT_EQ( loc1, record->id );
@@ -666,13 +665,13 @@ namespace {
{
// now we insert 2 docs, but commit the 2nd one fiirst
// we make sure we can't find the 2nd until the first is commited
- scoped_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
- scoped_ptr<WriteUnitOfWork> w1( new WriteUnitOfWork( t1.get() ) );
+ unique_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
+ unique_ptr<WriteUnitOfWork> w1( new WriteUnitOfWork( t1.get() ) );
rs->insertRecord( t1.get(), "b", 2, false );
// do not commit yet
{ // create 2nd doc
- scoped_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
{
WriteUnitOfWork w2( t2.get() );
rs->insertRecord( t2.get(), "c", 2, false );
@@ -681,7 +680,7 @@ namespace {
}
{ // state should be the same
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
auto record = cursor->seekExact(loc1);
ASSERT_EQ( loc1, record->id );
@@ -692,7 +691,7 @@ namespace {
}
{ // now all 3 docs should be visible
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
auto record = cursor->seekExact(loc1);
ASSERT_EQ( loc1, record->id );
@@ -703,11 +702,11 @@ namespace {
}
TEST(WiredTigerRecordStoreTest, CappedCursorRollover) {
- scoped_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
- scoped_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("a.b", 10000, 5));
+ unique_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
+ unique_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("a.b", 10000, 5));
{ // first insert 3 documents
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
for ( int i = 0; i < 3; ++i ) {
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(), "a", 2, false );
@@ -717,14 +716,14 @@ namespace {
}
// set up our cursor that should rollover
- scoped_ptr<OperationContext> cursorCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> cursorCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(cursorCtx.get());
ASSERT(cursor->next());
cursor->savePositioned();
cursorCtx->recoveryUnit()->abandonSnapshot();
{ // insert 100 documents which causes rollover
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
for ( int i = 0; i < 100; i++ ) {
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(), "a", 2, false );
@@ -739,7 +738,7 @@ namespace {
}
RecordId _oplogOrderInsertOplog( OperationContext* txn,
- scoped_ptr<RecordStore>& rs,
+ unique_ptr<RecordStore>& rs,
int inc ) {
Timestamp opTime = Timestamp(5,inc);
WiredTigerRecordStore* wrs = checked_cast<WiredTigerRecordStore*>(rs.get());
@@ -752,8 +751,8 @@ namespace {
}
TEST(WiredTigerRecordStoreTest, OplogOrder) {
- scoped_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
- scoped_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("local.oplog.foo",
+ unique_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
+ unique_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("local.oplog.foo",
100000,
-1));
@@ -766,7 +765,7 @@ namespace {
RecordId loc1;
{ // first insert a document
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
{
WriteUnitOfWork uow( opCtx.get() );
loc1 = _oplogOrderInsertOplog( opCtx.get(), rs, 1 );
@@ -775,7 +774,7 @@ namespace {
}
{
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
auto record = cursor->seekExact(loc1);
ASSERT_EQ( loc1, record->id );
@@ -785,13 +784,13 @@ namespace {
{
// now we insert 2 docs, but commit the 2nd one fiirst
// we make sure we can't find the 2nd until the first is commited
- scoped_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
- scoped_ptr<WriteUnitOfWork> w1( new WriteUnitOfWork( t1.get() ) );
+ unique_ptr<OperationContext> t1( harnessHelper->newOperationContext() );
+ unique_ptr<WriteUnitOfWork> w1( new WriteUnitOfWork( t1.get() ) );
_oplogOrderInsertOplog( t1.get(), rs, 2 );
// do not commit yet
{ // create 2nd doc
- scoped_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> t2( harnessHelper->newOperationContext() );
{
WriteUnitOfWork w2( t2.get() );
_oplogOrderInsertOplog( t2.get(), rs, 3 );
@@ -800,7 +799,7 @@ namespace {
}
{ // state should be the same
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
auto record = cursor->seekExact(loc1);
ASSERT_EQ( loc1, record->id );
@@ -811,7 +810,7 @@ namespace {
}
{ // now all 3 docs should be visible
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(opCtx.get());
auto record = cursor->seekExact(loc1);
ASSERT_EQ( loc1, record->id );
@@ -823,17 +822,17 @@ namespace {
TEST(WiredTigerRecordStoreTest, StorageSizeStatisticsDisabled) {
WiredTigerHarnessHelper harnessHelper("statistics=(none)");
- scoped_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("a.b"));
+ unique_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("a.b"));
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
ASSERT_THROWS(rs->storageSize(opCtx.get()), UserException);
}
TEST(WiredTigerRecordStoreTest, AppendCustomStatsMetadata) {
WiredTigerHarnessHelper harnessHelper;
- scoped_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("a.b"));
+ unique_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("a.b"));
- scoped_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
+ unique_ptr<OperationContext> opCtx(harnessHelper.newOperationContext());
BSONObjBuilder builder;
rs->appendCustomStats(opCtx.get(), &builder, 1.0);
BSONObj customStats = builder.obj();
@@ -854,13 +853,13 @@ namespace {
}
TEST(WiredTigerRecordStoreTest, CappedCursorYieldFirst) {
- scoped_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
- scoped_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("a.b", 10000, 50));
+ unique_ptr<WiredTigerHarnessHelper> harnessHelper( new WiredTigerHarnessHelper() );
+ unique_ptr<RecordStore> rs(harnessHelper->newCappedRecordStore("a.b", 10000, 50));
RecordId loc1;
{ // first insert a document
- scoped_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> opCtx( harnessHelper->newOperationContext() );
WriteUnitOfWork uow( opCtx.get() );
StatusWith<RecordId> res = rs->insertRecord( opCtx.get(), "a", 2, false );
ASSERT_OK( res.getStatus() );
@@ -868,7 +867,7 @@ namespace {
uow.commit();
}
- scoped_ptr<OperationContext> cursorCtx( harnessHelper->newOperationContext() );
+ unique_ptr<OperationContext> cursorCtx( harnessHelper->newOperationContext() );
auto cursor = rs->getCursor(cursorCtx.get());
// See that things work if you yield before you first call getNext().
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.h b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.h
index a11e4333d6e..4dcb216c060 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.h
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.h
@@ -34,7 +34,6 @@
#include <memory.h>
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/owned_pointer_vector.h"
#include "mongo/db/operation_context.h"
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp
index 25f68dfeb72..d546a4997da 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp
@@ -33,8 +33,6 @@
#include "mongo/db/storage/wiredtiger/wiredtiger_server_status.h"
-#include "boost/scoped_ptr.hpp"
-
#include "mongo/base/checked_cast.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h"
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_util_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_util_test.cpp
index 75472f6fcc5..d699c3903ba 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_util_test.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_util_test.cpp
@@ -30,7 +30,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <sstream>
#include <string>
@@ -116,8 +115,8 @@ namespace mongo {
ASSERT_OK(wtRCToStatus(wtSession->create(wtSession, getURI(), config)));
}
private:
- boost::scoped_ptr<WiredTigerUtilHarnessHelper> _harnessHelper;
- boost::scoped_ptr<OperationContext> _opCtx;
+ std::unique_ptr<WiredTigerUtilHarnessHelper> _harnessHelper;
+ std::unique_ptr<OperationContext> _opCtx;
};
TEST_F(WiredTigerUtilMetadataTest, GetConfigurationStringInvalidURI) {
diff --git a/src/mongo/dbtests/basictests.cpp b/src/mongo/dbtests/basictests.cpp
index 93ac8d0a1c3..907389d3403 100644
--- a/src/mongo/dbtests/basictests.cpp
+++ b/src/mongo/dbtests/basictests.cpp
@@ -31,7 +31,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <iostream>
@@ -48,7 +47,7 @@
namespace BasicTests {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::cout;
using std::dec;
diff --git a/src/mongo/dbtests/config_server_fixture.cpp b/src/mongo/dbtests/config_server_fixture.cpp
index ad3dc3b9e7b..a0e382c266f 100644
--- a/src/mongo/dbtests/config_server_fixture.cpp
+++ b/src/mongo/dbtests/config_server_fixture.cpp
@@ -32,7 +32,6 @@
#include "mongo/dbtests/config_server_fixture.h"
-#include <boost/scoped_ptr.hpp>
#include <list>
#include "mongo/dbtests/dbtests.h"
@@ -45,7 +44,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::endl;
using std::list;
using std::string;
@@ -100,7 +99,7 @@ namespace mongo {
{
const string& collection = *it;
- scoped_ptr<DBClientCursor> cursor(_client.query(collection, BSONObj()).release());
+ unique_ptr<DBClientCursor> cursor(_client.query(collection, BSONObj()).release());
ASSERT(cursor.get() != NULL);
log() << "Dumping collection " << collection << endl;
diff --git a/src/mongo/dbtests/indexupdatetests.cpp b/src/mongo/dbtests/indexupdatetests.cpp
index 1141009a5ea..77d7b7edf59 100644
--- a/src/mongo/dbtests/indexupdatetests.cpp
+++ b/src/mongo/dbtests/indexupdatetests.cpp
@@ -28,7 +28,6 @@
* then also delete it in the license file.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/catalog/index_catalog.h"
@@ -45,7 +44,7 @@
namespace IndexUpdateTests {
- using boost::scoped_ptr;
+ using std::unique_ptr;
static const char* const _ns = "unittests.indexupdate";
@@ -248,7 +247,7 @@ namespace IndexUpdateTests {
// The index's root is set after the build is complete.
ASSERT( !id->getHead().isNull() );
// Create a cursor over the index.
- scoped_ptr<BtreeCursor> cursor(
+ unique_ptr<BtreeCursor> cursor(
BtreeCursor::make( nsdetails( _ns ),
id->getOnDisk(),
BSON( "" << -1 ), // startKey below minimum key.
diff --git a/src/mongo/dbtests/jstests.cpp b/src/mongo/dbtests/jstests.cpp
index fcd271bd3fc..c715db5e76d 100644
--- a/src/mongo/dbtests/jstests.cpp
+++ b/src/mongo/dbtests/jstests.cpp
@@ -33,7 +33,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <iostream>
#include <limits>
@@ -47,7 +46,7 @@
#include "mongo/util/log.h"
#include "mongo/util/timer.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::unique_ptr;
using std::cout;
using std::endl;
@@ -68,7 +67,7 @@ namespace JSTests {
class BasicScope {
public:
void run() {
- scoped_ptr<Scope> s;
+ unique_ptr<Scope> s;
s.reset( globalScriptEngine->newScope() );
s->setNumber( "x" , 5 );
@@ -108,7 +107,7 @@ namespace JSTests {
public:
void run() {
// Test falsy javascript values
- scoped_ptr<Scope> s;
+ unique_ptr<Scope> s;
s.reset( globalScriptEngine->newScope() );
ASSERT( ! s->getBoolean( "notSet" ) );
@@ -838,7 +837,7 @@ namespace JSTests {
class ExecTimeout {
public:
void run() {
- scoped_ptr<Scope> scope(globalScriptEngine->newScope());
+ unique_ptr<Scope> scope(globalScriptEngine->newScope());
// assert timeout occurred
ASSERT(!scope->exec("var a = 1; while (true) { ; }",
@@ -852,7 +851,7 @@ namespace JSTests {
class ExecNoTimeout {
public:
void run() {
- scoped_ptr<Scope> scope(globalScriptEngine->newScope());
+ unique_ptr<Scope> scope(globalScriptEngine->newScope());
// assert no timeout occurred
ASSERT(scope->exec("var a = function() { return 1; }",
@@ -866,7 +865,7 @@ namespace JSTests {
class InvokeTimeout {
public:
void run() {
- scoped_ptr<Scope> scope(globalScriptEngine->newScope());
+ unique_ptr<Scope> scope(globalScriptEngine->newScope());
// scope timeout after 500ms
bool caught = false;
@@ -888,7 +887,7 @@ namespace JSTests {
class InvokeNoTimeout {
public:
void run() {
- scoped_ptr<Scope> scope(globalScriptEngine->newScope());
+ unique_ptr<Scope> scope(globalScriptEngine->newScope());
// invoke completes before timeout
scope->invokeSafe("function() { "
@@ -2004,7 +2003,7 @@ namespace JSTests {
DBDirectClient client(&txn);
client.update( "test.system.js" , query.obj() , update.obj() , true /* upsert */ );
- scoped_ptr<Scope> s( globalScriptEngine->newScope() );
+ unique_ptr<Scope> s( globalScriptEngine->newScope() );
client.eval( "test" , "invalidstoredjs1()" );
BSONObj info;
diff --git a/src/mongo/dbtests/mock/mock_conn_registry.cpp b/src/mongo/dbtests/mock/mock_conn_registry.cpp
index 92f1382c542..67b27cb2316 100644
--- a/src/mongo/dbtests/mock/mock_conn_registry.cpp
+++ b/src/mongo/dbtests/mock/mock_conn_registry.cpp
@@ -35,7 +35,7 @@ namespace mongo {
using std::string;
- boost::scoped_ptr<MockConnRegistry> MockConnRegistry::_instance;
+ std::unique_ptr<MockConnRegistry> MockConnRegistry::_instance;
MONGO_INITIALIZER(MockConnRegistry)(InitializerContext* context) {
return MockConnRegistry::init();
diff --git a/src/mongo/dbtests/mock/mock_conn_registry.h b/src/mongo/dbtests/mock/mock_conn_registry.h
index f87196748ab..a4177ae5592 100644
--- a/src/mongo/dbtests/mock/mock_conn_registry.h
+++ b/src/mongo/dbtests/mock/mock_conn_registry.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/client/dbclientinterface.h"
@@ -111,7 +110,7 @@ namespace mongo {
MockConnRegistry();
- static boost::scoped_ptr<MockConnRegistry> _instance;
+ static std::unique_ptr<MockConnRegistry> _instance;
MockConnHook _mockConnStrHook;
diff --git a/src/mongo/dbtests/mock/mock_dbclient_cursor.h b/src/mongo/dbtests/mock/mock_dbclient_cursor.h
index c8aa3a38bcf..22fec61898b 100644
--- a/src/mongo/dbtests/mock/mock_dbclient_cursor.h
+++ b/src/mongo/dbtests/mock/mock_dbclient_cursor.h
@@ -29,7 +29,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/dbclientcursor.h"
#include "mongo/client/dbclientmockcursor.h"
@@ -54,7 +53,7 @@ namespace mongo {
mongo::BSONObj next();
private:
- boost::scoped_ptr<mongo::DBClientMockCursor> _cursor;
+ std::unique_ptr<mongo::DBClientMockCursor> _cursor;
mongo::BSONObj _resultSet;
};
}
diff --git a/src/mongo/dbtests/mock_dbclient_conn_test.cpp b/src/mongo/dbtests/mock_dbclient_conn_test.cpp
index e88bf1f5054..c69fb80134a 100644
--- a/src/mongo/dbtests/mock_dbclient_conn_test.cpp
+++ b/src/mongo/dbtests/mock_dbclient_conn_test.cpp
@@ -35,7 +35,6 @@
#include "mongo/unittest/unittest.h"
#include "mongo/util/timer.h"
-#include <boost/scoped_ptr.hpp>
#include <ctime>
#include <string>
#include <vector>
diff --git a/src/mongo/dbtests/oplogstarttests.cpp b/src/mongo/dbtests/oplogstarttests.cpp
index 9cf68150fb5..9c3efe42afe 100644
--- a/src/mongo/dbtests/oplogstarttests.cpp
+++ b/src/mongo/dbtests/oplogstarttests.cpp
@@ -22,7 +22,6 @@
#include "mongo/dbtests/dbtests.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/db.h"
@@ -37,7 +36,7 @@
namespace OplogStartTests {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
class Base {
@@ -98,9 +97,9 @@ namespace OplogStartTests {
ASSERT_EQUALS(idEl.numberInt(), expectedId);
}
- scoped_ptr<CanonicalQuery> _cq;
- scoped_ptr<WorkingSet> _oplogws;
- scoped_ptr<OplogStart> _stage;
+ unique_ptr<CanonicalQuery> _cq;
+ unique_ptr<WorkingSet> _oplogws;
+ unique_ptr<OplogStart> _stage;
private:
// The order of these is important in order to ensure order of destruction
diff --git a/src/mongo/dbtests/plan_ranking.cpp b/src/mongo/dbtests/plan_ranking.cpp
index f5a0320d3d6..db937935c83 100644
--- a/src/mongo/dbtests/plan_ranking.cpp
+++ b/src/mongo/dbtests/plan_ranking.cpp
@@ -30,7 +30,6 @@
* This file tests db/query/plan_ranker.cpp and db/query/multi_plan_runner.cpp.
*/
-#include <boost/scoped_ptr.hpp>
#include <iostream>
#include "mongo/client/dbclientcursor.h"
@@ -61,7 +60,7 @@ namespace mongo {
namespace PlanRankingTests {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::vector;
static const char* ns = "unittests.PlanRankingTests";
@@ -119,7 +118,7 @@ namespace PlanRankingTests {
// Fill out the MPR.
_mps.reset(new MultiPlanStage(&_txn, collection, cq));
- boost::scoped_ptr<WorkingSet> ws(new WorkingSet());
+ std::unique_ptr<WorkingSet> ws(new WorkingSet());
// Put each solution from the planner into the MPR.
for (size_t i = 0; i < solutions.size(); ++i) {
PlanStage* root;
@@ -164,7 +163,7 @@ namespace PlanRankingTests {
// of the test.
bool _enableHashIntersection;
- scoped_ptr<MultiPlanStage> _mps;
+ unique_ptr<MultiPlanStage> _mps;
DBDirectClient _client;
};
@@ -191,7 +190,7 @@ namespace PlanRankingTests {
CanonicalQuery* cq;
verify(CanonicalQuery::canonicalize(ns, BSON("a" << 100 << "b" << 1), &cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// {a:100} is super selective so choose that.
// Takes ownership of cq.
@@ -206,7 +205,7 @@ namespace PlanRankingTests {
// And run the same query again.
ASSERT(CanonicalQuery::canonicalize(ns, BSON("a" << 100 << "b" << 1), &cq).isOK());
- boost::scoped_ptr<CanonicalQuery> killCq2(cq);
+ std::unique_ptr<CanonicalQuery> killCq2(cq);
// With the "ranking picks ixisect always" option we pick an intersection plan that uses
// both the {a:1} and {b:1} indices even though it performs poorly.
@@ -241,7 +240,7 @@ namespace PlanRankingTests {
verify(CanonicalQuery::canonicalize(ns, BSON("a" << 1 << "b" << BSON("$gt" << 1)),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Turn on the "force intersect" option.
// This will be reverted by PlanRankingTestBase's destructor when the test completes.
@@ -284,7 +283,7 @@ namespace PlanRankingTests {
BSON("_id" << 0 << "a" << 1 << "b" << 1),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Takes ownership of cq.
QuerySolution* soln = pickBestPlan(cq);
@@ -318,7 +317,7 @@ namespace PlanRankingTests {
BSONObj queryObj = BSON("a" << 1 << "b" << 1 << "c" << 99);
ASSERT(CanonicalQuery::canonicalize(ns, queryObj, &cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Takes ownership of cq.
QuerySolution* soln = pickBestPlan(cq);
@@ -361,7 +360,7 @@ namespace PlanRankingTests {
BSON("_id" << 0 << "a" << 1 << "b" << 1),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Takes ownership of cq.
QuerySolution* soln = pickBestPlan(cq);
@@ -393,7 +392,7 @@ namespace PlanRankingTests {
CanonicalQuery* cq;
verify(CanonicalQuery::canonicalize(ns, BSON("a" << N + 1 << "b" << 1), &cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// {a: 100} is super selective so choose that.
// Takes ownership of cq.
@@ -430,7 +429,7 @@ namespace PlanRankingTests {
verify(CanonicalQuery::canonicalize(ns, BSON("a" << BSON("$gte" << N + 1)
<< "b" << 1), &cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// {a: 100} is super selective so choose that.
// Takes ownership of cq.
@@ -465,7 +464,7 @@ namespace PlanRankingTests {
sortObj,
projObj,
&cq).isOK());
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Takes ownership of cq.
QuerySolution* soln = pickBestPlan(cq);
@@ -494,7 +493,7 @@ namespace PlanRankingTests {
CanonicalQuery* cq;
verify(CanonicalQuery::canonicalize(ns, BSON("foo" << 2001), &cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Takes ownership of cq.
QuerySolution* soln = pickBestPlan(cq);
@@ -531,7 +530,7 @@ namespace PlanRankingTests {
BSON("_id" << 0 << "a" << 1 << "b" << 1),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// We should choose an ixisect plan because it requires fewer fetches.
// Takes ownership of cq.
@@ -568,7 +567,7 @@ namespace PlanRankingTests {
BSON("a" << 1 << "b" << 1),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// The intersection is large, and ixisect does not make the
// query covered. We should NOT choose an intersection plan.
@@ -620,7 +619,7 @@ namespace PlanRankingTests {
fromjson("{a: 1, b: 1}"),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
QuerySolution* soln = pickBestPlan(cq);
ASSERT(QueryPlannerTestLib::solutionMatches(
@@ -661,7 +660,7 @@ namespace PlanRankingTests {
fromjson("{a: 1, b: 1}"),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Choose the index intersection plan.
QuerySolution* soln = pickBestPlan(cq);
@@ -704,7 +703,7 @@ namespace PlanRankingTests {
fromjson("{a: 1, b: 1, c: 1}"),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Intersection between 'b' and 'c' should hit EOF while the
// other plans are busy fetching documents.
@@ -742,7 +741,7 @@ namespace PlanRankingTests {
BSONObj(), // projection
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// No results will be returned during the trial period,
// so we expect to choose {d: 1, e: 1}, as it allows us
@@ -779,7 +778,7 @@ namespace PlanRankingTests {
fromjson("{a: 1, b: 1, c: {$gte: 5000}}"),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Use index on 'b'.
QuerySolution* soln = pickBestPlan(cq);
@@ -812,7 +811,7 @@ namespace PlanRankingTests {
fromjson("{a: 9, b: {$ne: 10}, c: 9}"),
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Expect to use index {a: 1, b: 1}.
QuerySolution* soln = pickBestPlan(cq);
diff --git a/src/mongo/dbtests/query_multi_plan_runner.cpp b/src/mongo/dbtests/query_multi_plan_runner.cpp
index c43b5ab111b..6e033631f02 100644
--- a/src/mongo/dbtests/query_multi_plan_runner.cpp
+++ b/src/mongo/dbtests/query_multi_plan_runner.cpp
@@ -26,7 +26,6 @@
* then also delete it in the license file.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/catalog/database.h"
@@ -57,7 +56,7 @@ namespace mongo {
namespace QueryMultiPlanRunner {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::vector;
@@ -170,7 +169,7 @@ namespace QueryMultiPlanRunner {
Status status = PlanExecutor::make(&_txn, sharedWs.release(), mps, cq, coll,
PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Get all our results out.
int results = 0;
@@ -207,7 +206,7 @@ namespace QueryMultiPlanRunner {
BSONObj(), // proj
&cq).isOK());
ASSERT(NULL != cq);
- boost::scoped_ptr<CanonicalQuery> killCq(cq);
+ std::unique_ptr<CanonicalQuery> killCq(cq);
// Force index intersection.
bool forceIxisectOldValue = internalQueryForceIntersectionPlans;
@@ -229,8 +228,8 @@ namespace QueryMultiPlanRunner {
ASSERT_EQUALS(solutions.size(), 3U);
// Fill out the MultiPlanStage.
- scoped_ptr<MultiPlanStage> mps(new MultiPlanStage(&_txn, collection, cq));
- scoped_ptr<WorkingSet> ws(new WorkingSet());
+ unique_ptr<MultiPlanStage> mps(new MultiPlanStage(&_txn, collection, cq));
+ unique_ptr<WorkingSet> ws(new WorkingSet());
// Put each solution from the planner into the MPR.
for (size_t i = 0; i < solutions.size(); ++i) {
PlanStage* root;
diff --git a/src/mongo/dbtests/query_plan_executor.cpp b/src/mongo/dbtests/query_plan_executor.cpp
index e79c9980898..137ee3b9984 100644
--- a/src/mongo/dbtests/query_plan_executor.cpp
+++ b/src/mongo/dbtests/query_plan_executor.cpp
@@ -26,7 +26,6 @@
* then also delete it in the license file.
*/
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/db/catalog/collection.h"
@@ -51,7 +50,7 @@
namespace QueryPlanExecutor {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::unique_ptr;
using std::string;
@@ -210,7 +209,7 @@ namespace QueryPlanExecutor {
BSONObj filterObj = fromjson("{_id: {$gt: 0}}");
Collection* coll = ctx.getCollection();
- scoped_ptr<PlanExecutor> exec(makeCollScanExec(coll, filterObj));
+ unique_ptr<PlanExecutor> exec(makeCollScanExec(coll, filterObj));
registerExec(exec.get());
BSONObj objOut;
@@ -239,7 +238,7 @@ namespace QueryPlanExecutor {
BSONObj indexSpec = BSON("a" << 1);
addIndex(indexSpec);
- scoped_ptr<PlanExecutor> exec(makeIndexScanExec(ctx.db(), indexSpec, 7, 10));
+ unique_ptr<PlanExecutor> exec(makeIndexScanExec(ctx.db(), indexSpec, 7, 10));
registerExec(exec.get());
BSONObj objOut;
@@ -293,7 +292,7 @@ namespace QueryPlanExecutor {
Status status = PlanExecutor::make(&_txn, ws.release(), proxy.release(), collection,
PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> outerExec(rawExec);
+ std::unique_ptr<PlanExecutor> outerExec(rawExec);
// Only the outer executor gets registered.
registerExec(outerExec.get());
@@ -363,7 +362,7 @@ namespace QueryPlanExecutor {
BSONObj filterObj = fromjson("{a: {$gte: 2}}");
Collection* coll = ctx.getCollection();
- scoped_ptr<PlanExecutor> exec(makeCollScanExec(coll, filterObj));
+ unique_ptr<PlanExecutor> exec(makeCollScanExec(coll, filterObj));
BSONObj objOut;
ASSERT_EQUALS(PlanExecutor::ADVANCED, exec->getNext(&objOut, NULL));
@@ -390,7 +389,7 @@ namespace QueryPlanExecutor {
addIndex(indexSpec);
BSONObj filterObj = fromjson("{a: {$gte: 2}}");
- scoped_ptr<PlanExecutor> exec(makeIndexScanExec(ctx.db(), indexSpec, 2, 5));
+ unique_ptr<PlanExecutor> exec(makeIndexScanExec(ctx.db(), indexSpec, 2, 5));
BSONObj objOut;
ASSERT_EQUALS(PlanExecutor::ADVANCED, exec->getNext(&objOut, NULL));
diff --git a/src/mongo/dbtests/query_stage_and.cpp b/src/mongo/dbtests/query_stage_and.cpp
index 8b59cc7304b..5b421b5807a 100644
--- a/src/mongo/dbtests/query_stage_and.cpp
+++ b/src/mongo/dbtests/query_stage_and.cpp
@@ -31,7 +31,6 @@
* so we cannot test it outside of a dbtest.
*/
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/client/dbclientcursor.h"
@@ -54,7 +53,7 @@
namespace QueryStageAnd {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::unique_ptr;
using std::set;
@@ -179,7 +178,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo <= 20
IndexScanParams params;
@@ -283,7 +282,7 @@ namespace QueryStageAnd {
addIndex(BSON("baz" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo <= 20 (descending)
IndexScanParams params;
@@ -370,7 +369,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo <= 20
IndexScanParams params;
@@ -425,7 +424,7 @@ namespace QueryStageAnd {
// before hashed AND is done reading the first child (stage has to
// hold 21 keys in buffer for Foo <= 20).
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll, 20 * big.size()));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll, 20 * big.size()));
// Foo <= 20
IndexScanParams params;
@@ -478,7 +477,7 @@ namespace QueryStageAnd {
// keys in last child's index are not buffered. There are 6 keys
// that satisfy the criteria Foo <= 20 and Bar >= 10 and 5 <= baz <= 15.
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll, 5 * big.size()));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll, 5 * big.size()));
// Foo <= 20
IndexScanParams params;
@@ -526,7 +525,7 @@ namespace QueryStageAnd {
addIndex(BSON("baz" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo <= 20
IndexScanParams params;
@@ -593,7 +592,7 @@ namespace QueryStageAnd {
// before hashed AND is done reading the second child (stage has to
// hold 11 keys in buffer for Foo <= 20 and Bar >= 10).
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll, 10 * big.size()));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll, 10 * big.size()));
// Foo <= 20
IndexScanParams params;
@@ -647,7 +646,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo <= 20
IndexScanParams params;
@@ -708,7 +707,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo >= 100
IndexScanParams params;
@@ -760,7 +759,7 @@ namespace QueryStageAnd {
StatusWithMatchExpression swme = MatchExpressionParser::parse(filter);
verify(swme.isOK());
unique_ptr<MatchExpression> filterExpr(swme.getValue());
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, filterExpr.get(), coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, filterExpr.get(), coll));
// Foo <= 20
IndexScanParams params;
@@ -809,7 +808,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo <= 20
IndexScanParams params;
@@ -868,7 +867,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Foo <= 20
IndexScanParams params;
@@ -1069,7 +1068,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
+ unique_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
// Scan over foo == 1
IndexScanParams params;
@@ -1196,7 +1195,7 @@ namespace QueryStageAnd {
addIndex(BSON("baz" << 1));
WorkingSet ws;
- scoped_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
+ unique_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
// Scan over foo == 1
IndexScanParams params;
@@ -1241,7 +1240,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
+ unique_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
// Foo == 7. Should be EOF.
IndexScanParams params;
@@ -1290,7 +1289,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
+ unique_ptr<AndSortedStage> ah(new AndSortedStage(&ws, NULL, coll));
// foo == 7.
IndexScanParams params;
@@ -1339,7 +1338,7 @@ namespace QueryStageAnd {
StatusWithMatchExpression swme = MatchExpressionParser::parse(filterObj);
verify(swme.isOK());
unique_ptr<MatchExpression> filterExpr(swme.getValue());
- scoped_ptr<AndSortedStage> ah(new AndSortedStage(&ws, filterExpr.get(), coll));
+ unique_ptr<AndSortedStage> ah(new AndSortedStage(&ws, filterExpr.get(), coll));
// Scan over foo == 1
IndexScanParams params;
@@ -1381,7 +1380,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
+ unique_ptr<AndHashStage> ah(new AndHashStage(&ws, NULL, coll));
// Scan over foo == 1
IndexScanParams params;
@@ -1445,7 +1444,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndSortedStage> as(new AndSortedStage(&ws, NULL, coll));
+ unique_ptr<AndSortedStage> as(new AndSortedStage(&ws, NULL, coll));
// Scan over foo == 1
IndexScanParams params;
@@ -1499,7 +1498,7 @@ namespace QueryStageAnd {
addIndex(BSON("bar" << 1));
WorkingSet ws;
- scoped_ptr<AndSortedStage> as(new AndSortedStage(&ws, NULL, coll));
+ unique_ptr<AndSortedStage> as(new AndSortedStage(&ws, NULL, coll));
// Scan over foo == 1
IndexScanParams params;
diff --git a/src/mongo/dbtests/query_stage_collscan.cpp b/src/mongo/dbtests/query_stage_collscan.cpp
index ffb204c2623..b190e852df8 100644
--- a/src/mongo/dbtests/query_stage_collscan.cpp
+++ b/src/mongo/dbtests/query_stage_collscan.cpp
@@ -30,7 +30,6 @@
* This file tests db/exec/collection_scan.cpp.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/dbclientcursor.h"
#include "mongo/db/catalog/collection.h"
@@ -49,7 +48,7 @@
namespace QueryStageCollectionScan {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::vector;
@@ -100,7 +99,7 @@ namespace QueryStageCollectionScan {
Status status = PlanExecutor::make(&_txn, ws, ps, params.collection,
PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Use the runner to count the number of objects scanned.
int count = 0;
@@ -118,7 +117,7 @@ namespace QueryStageCollectionScan {
params.direction = direction;
params.tailable = false;
- scoped_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
+ unique_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
while (!scan->isEOF()) {
WorkingSetID id = WorkingSet::INVALID_ID;
PlanStage::StageState state = scan->work(&id);
@@ -210,7 +209,7 @@ namespace QueryStageCollectionScan {
Status status = PlanExecutor::make(&_txn, ws, ps, params.collection,
PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
int count = 0;
for (BSONObj obj; PlanExecutor::ADVANCED == exec->getNext(&obj, NULL); ) {
@@ -244,7 +243,7 @@ namespace QueryStageCollectionScan {
Status status = PlanExecutor::make(&_txn, ws, ps, params.collection,
PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
int count = 0;
for (BSONObj obj; PlanExecutor::ADVANCED == exec->getNext(&obj, NULL); ) {
@@ -279,7 +278,7 @@ namespace QueryStageCollectionScan {
params.tailable = false;
WorkingSet ws;
- scoped_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
+ unique_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
int count = 0;
while (count < 10) {
@@ -340,7 +339,7 @@ namespace QueryStageCollectionScan {
params.tailable = false;
WorkingSet ws;
- scoped_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
+ unique_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
int count = 0;
while (count < 10) {
diff --git a/src/mongo/dbtests/query_stage_count.cpp b/src/mongo/dbtests/query_stage_count.cpp
index 7adc5b6996f..09f64990bda 100644
--- a/src/mongo/dbtests/query_stage_count.cpp
+++ b/src/mongo/dbtests/query_stage_count.cpp
@@ -26,7 +26,6 @@
* it in the license file.
*/
-#include <boost/scoped_ptr.hpp>
#include <memory>
#include "mongo/db/db_raii.h"
@@ -43,7 +42,7 @@
namespace QueryStageCount {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::vector;
@@ -97,7 +96,7 @@ namespace QueryStageCount {
params.direction = CollectionScanParams::FORWARD;
params.tailable = false;
- scoped_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
+ unique_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
while (!scan->isEOF()) {
WorkingSetID id = WorkingSet::INVALID_ID;
PlanStage::StageState state = scan->work(&id);
diff --git a/src/mongo/dbtests/query_stage_delete.cpp b/src/mongo/dbtests/query_stage_delete.cpp
index f5c8ec18913..624be2a75f4 100644
--- a/src/mongo/dbtests/query_stage_delete.cpp
+++ b/src/mongo/dbtests/query_stage_delete.cpp
@@ -30,7 +30,6 @@
* This file tests db/exec/delete.cpp.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/catalog/database.h"
@@ -47,7 +46,7 @@
namespace QueryStageDelete {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::vector;
//
@@ -86,7 +85,7 @@ namespace QueryStageDelete {
params.direction = direction;
params.tailable = false;
- scoped_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
+ unique_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
while (!scan->isEOF()) {
WorkingSetID id = WorkingSet::INVALID_ID;
PlanStage::StageState state = scan->work(&id);
diff --git a/src/mongo/dbtests/query_stage_ixscan.cpp b/src/mongo/dbtests/query_stage_ixscan.cpp
index e56ba1128f4..e6e78f8b824 100644
--- a/src/mongo/dbtests/query_stage_ixscan.cpp
+++ b/src/mongo/dbtests/query_stage_ixscan.cpp
@@ -181,7 +181,7 @@ namespace QueryStageIxscan {
insert(fromjson("{_id: 2, x: 6}"));
insert(fromjson("{_id: 3, x: 12}"));
- boost::scoped_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 5),
+ std::unique_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 5),
BSON("x" << 10),
true,
true));
@@ -220,7 +220,7 @@ namespace QueryStageIxscan {
insert(fromjson("{_id: 2, x: 6}"));
insert(fromjson("{_id: 3, x: 10}"));
- boost::scoped_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 5),
+ std::unique_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 5),
BSON("x" << 10),
false,
false));
@@ -255,7 +255,7 @@ namespace QueryStageIxscan {
insert(fromjson("{_id: 2, x: 6}"));
insert(fromjson("{_id: 3, x: 12}"));
- boost::scoped_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 5),
+ std::unique_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 5),
BSON("x" << 10),
false,
false));
@@ -287,7 +287,7 @@ namespace QueryStageIxscan {
insert(fromjson("{_id: 2, x: 8}"));
insert(fromjson("{_id: 3, x: 3}"));
- boost::scoped_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 10),
+ std::unique_ptr<IndexScan> ixscan(createIndexScan(BSON("x" << 10),
BSON("x" << 5),
true,
true,
diff --git a/src/mongo/dbtests/query_stage_limit_skip.cpp b/src/mongo/dbtests/query_stage_limit_skip.cpp
index afb4436e4b9..b7561d12f8b 100644
--- a/src/mongo/dbtests/query_stage_limit_skip.cpp
+++ b/src/mongo/dbtests/query_stage_limit_skip.cpp
@@ -30,7 +30,6 @@
* This file tests db/exec/limit.cpp and db/exec/skip.cpp.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/dbclientcursor.h"
#include "mongo/db/exec/limit.h"
@@ -45,7 +44,7 @@ using namespace mongo;
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::max;
using std::min;
@@ -89,10 +88,10 @@ namespace {
for (int i = 0; i < 2 * N; ++i) {
WorkingSet ws;
- scoped_ptr<PlanStage> skip(new SkipStage(i, &ws, getMS(&ws)));
+ unique_ptr<PlanStage> skip(new SkipStage(i, &ws, getMS(&ws)));
ASSERT_EQUALS(max(0, N - i), countResults(skip.get()));
- scoped_ptr<PlanStage> limit(new LimitStage(i, &ws, getMS(&ws)));
+ unique_ptr<PlanStage> limit(new LimitStage(i, &ws, getMS(&ws)));
ASSERT_EQUALS(min(N, i), countResults(limit.get()));
}
}
diff --git a/src/mongo/dbtests/query_stage_merge_sort.cpp b/src/mongo/dbtests/query_stage_merge_sort.cpp
index f4fa4ea9bd7..b05799b8588 100644
--- a/src/mongo/dbtests/query_stage_merge_sort.cpp
+++ b/src/mongo/dbtests/query_stage_merge_sort.cpp
@@ -159,7 +159,7 @@ namespace QueryStageMergeSortTests {
Status status = PlanExecutor::make(&_txn, ws, new FetchStage(&_txn, ws, ms, NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
for (int i = 0; i < N; ++i) {
BSONObj first, second;
@@ -227,7 +227,7 @@ namespace QueryStageMergeSortTests {
Status status = PlanExecutor::make(&_txn, ws, new FetchStage(&_txn, ws, ms, NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
for (int i = 0; i < N; ++i) {
BSONObj first, second;
@@ -295,7 +295,7 @@ namespace QueryStageMergeSortTests {
Status status = PlanExecutor::make(&_txn, ws, new FetchStage(&_txn, ws, ms, NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
for (int i = 0; i < N; ++i) {
BSONObj first, second;
@@ -366,7 +366,7 @@ namespace QueryStageMergeSortTests {
Status status = PlanExecutor::make(&_txn, ws, new FetchStage(&_txn, ws, ms, NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
for (int i = 0; i < N; ++i) {
BSONObj first, second;
@@ -436,7 +436,7 @@ namespace QueryStageMergeSortTests {
Status status = PlanExecutor::make(&_txn, ws, new FetchStage(&_txn, ws, ms, NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Only getting results from the a:1 index scan.
for (int i = 0; i < N; ++i) {
@@ -494,7 +494,7 @@ namespace QueryStageMergeSortTests {
Status status = PlanExecutor::make(&_txn, ws, new FetchStage(&_txn, ws, ms, NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
for (int i = 0; i < numIndices; ++i) {
BSONObj obj;
diff --git a/src/mongo/dbtests/query_stage_sort.cpp b/src/mongo/dbtests/query_stage_sort.cpp
index b9b34bda21f..eac35313223 100644
--- a/src/mongo/dbtests/query_stage_sort.cpp
+++ b/src/mongo/dbtests/query_stage_sort.cpp
@@ -161,7 +161,7 @@ namespace QueryStageSortTests {
new SortStage(params, ws, ms), NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
// Look at pairs of objects to make sure that the sort order is pairwise (and therefore
// totally) correct.
@@ -533,7 +533,7 @@ namespace QueryStageSortTests {
ws,
new SortStage(params, ws, ms), NULL, coll),
coll, PlanExecutor::YIELD_MANUAL, &rawExec);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
PlanExecutor::ExecState runnerState = exec->getNext(NULL, NULL);
ASSERT_EQUALS(PlanExecutor::FAILURE, runnerState);
diff --git a/src/mongo/dbtests/query_stage_subplan.cpp b/src/mongo/dbtests/query_stage_subplan.cpp
index f7cd4e8ba51..d5afbbabc7b 100644
--- a/src/mongo/dbtests/query_stage_subplan.cpp
+++ b/src/mongo/dbtests/query_stage_subplan.cpp
@@ -85,7 +85,7 @@ namespace QueryStageSubplan {
CanonicalQuery* rawCq;
ASSERT_OK(CanonicalQuery::canonicalize(ns(), query, &rawCq));
- boost::scoped_ptr<CanonicalQuery> cq(rawCq);
+ std::unique_ptr<CanonicalQuery> cq(rawCq);
Collection* collection = ctx.getCollection();
@@ -94,7 +94,7 @@ namespace QueryStageSubplan {
fillOutPlannerParams(&_txn, collection, cq.get(), &plannerParams);
WorkingSet ws;
- boost::scoped_ptr<SubplanStage> subplan(new SubplanStage(&_txn, collection, &ws,
+ std::unique_ptr<SubplanStage> subplan(new SubplanStage(&_txn, collection, &ws,
plannerParams, cq.get()));
// Plan selection should succeed due to falling back on regular planning.
@@ -128,14 +128,14 @@ namespace QueryStageSubplan {
CanonicalQuery* rawCq;
ASSERT_OK(CanonicalQuery::canonicalize(ns(), query, &rawCq));
- boost::scoped_ptr<CanonicalQuery> cq(rawCq);
+ std::unique_ptr<CanonicalQuery> cq(rawCq);
// Get planner params.
QueryPlannerParams plannerParams;
fillOutPlannerParams(&_txn, collection, cq.get(), &plannerParams);
WorkingSet ws;
- boost::scoped_ptr<SubplanStage> subplan(new SubplanStage(&_txn, collection, &ws,
+ std::unique_ptr<SubplanStage> subplan(new SubplanStage(&_txn, collection, &ws,
plannerParams, cq.get()));
PlanYieldPolicy yieldPolicy(NULL, PlanExecutor::YIELD_MANUAL);
diff --git a/src/mongo/dbtests/query_stage_tests.cpp b/src/mongo/dbtests/query_stage_tests.cpp
index c5365d140ae..4bf744f705d 100644
--- a/src/mongo/dbtests/query_stage_tests.cpp
+++ b/src/mongo/dbtests/query_stage_tests.cpp
@@ -90,7 +90,7 @@ namespace QueryStageTests {
PlanExecutor::YIELD_MANUAL,
&rawExec);
ASSERT_OK(status);
- boost::scoped_ptr<PlanExecutor> exec(rawExec);
+ std::unique_ptr<PlanExecutor> exec(rawExec);
int count = 0;
for (RecordId dl; PlanExecutor::ADVANCED == exec->getNext(NULL, &dl); ) {
diff --git a/src/mongo/dbtests/query_stage_update.cpp b/src/mongo/dbtests/query_stage_update.cpp
index 92f95f5fdb6..edc3c952fca 100644
--- a/src/mongo/dbtests/query_stage_update.cpp
+++ b/src/mongo/dbtests/query_stage_update.cpp
@@ -30,7 +30,6 @@
* This file tests db/exec/update.cpp (UpdateStage).
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/catalog/collection.h"
#include "mongo/db/catalog/database.h"
@@ -54,7 +53,7 @@
namespace QueryStageUpdate {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::vector;
@@ -120,7 +119,7 @@ namespace QueryStageUpdate {
params.direction = CollectionScanParams::FORWARD;
params.tailable = false;
- scoped_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
+ unique_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
while (!scan->isEOF()) {
WorkingSetID id = WorkingSet::INVALID_ID;
PlanStage::StageState state = scan->work(&id);
@@ -142,7 +141,7 @@ namespace QueryStageUpdate {
params.direction = direction;
params.tailable = false;
- scoped_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
+ unique_ptr<CollectionScan> scan(new CollectionScan(&_txn, params, &ws, NULL));
while (!scan->isEOF()) {
WorkingSetID id = WorkingSet::INVALID_ID;
PlanStage::StageState state = scan->work(&id);
@@ -215,13 +214,13 @@ namespace QueryStageUpdate {
// Setup update params.
UpdateStageParams params(&request, &driver, opDebug);
- scoped_ptr<CanonicalQuery> cq(canonicalize(query));
+ unique_ptr<CanonicalQuery> cq(canonicalize(query));
params.canonicalQuery = cq.get();
- scoped_ptr<WorkingSet> ws(new WorkingSet());
+ unique_ptr<WorkingSet> ws(new WorkingSet());
unique_ptr<EOFStage> eofStage(new EOFStage());
- scoped_ptr<UpdateStage> updateStage(
+ unique_ptr<UpdateStage> updateStage(
new UpdateStage(&_txn, params, ws.get(), collection, eofStage.release()));
runUpdate(updateStage.get());
@@ -292,14 +291,14 @@ namespace QueryStageUpdate {
// Configure the update.
UpdateStageParams updateParams(&request, &driver, opDebug);
- scoped_ptr<CanonicalQuery> cq(canonicalize(query));
+ unique_ptr<CanonicalQuery> cq(canonicalize(query));
updateParams.canonicalQuery = cq.get();
- scoped_ptr<WorkingSet> ws(new WorkingSet());
+ unique_ptr<WorkingSet> ws(new WorkingSet());
unique_ptr<CollectionScan> cs(
new CollectionScan(&_txn, collScanParams, ws.get(), cq->root()));
- scoped_ptr<UpdateStage> updateStage(
+ unique_ptr<UpdateStage> updateStage(
new UpdateStage(&_txn, updateParams, ws.get(), coll, cs.release()));
const UpdateStats* stats =
diff --git a/src/mongo/dbtests/replica_set_monitor_test.cpp b/src/mongo/dbtests/replica_set_monitor_test.cpp
index 33d489b2973..12b814f4ad2 100644
--- a/src/mongo/dbtests/replica_set_monitor_test.cpp
+++ b/src/mongo/dbtests/replica_set_monitor_test.cpp
@@ -35,7 +35,6 @@
#include "mongo/dbtests/mock/mock_replica_set.h"
#include "mongo/unittest/unittest.h"
-#include <boost/scoped_ptr.hpp>
#include <set>
#include <vector>
@@ -47,7 +46,7 @@ namespace {
using std::vector;
using std::set;
using std::string;
- using boost::scoped_ptr;
+ using std::unique_ptr;
// TODO: Port these existing tests here: replmonitor_bad_seed.js, repl_monitor_refresh.js
@@ -77,7 +76,7 @@ namespace {
private:
ConnectionString::ConnectionHook* _originalConnectionHook;
- boost::scoped_ptr<MockReplicaSet> _replSet;
+ std::unique_ptr<MockReplicaSet> _replSet;
};
TEST_F(ReplicaSetMonitorTest, SeedWithPriOnlySecDown) {
@@ -245,7 +244,7 @@ namespace {
private:
ConnectionString::ConnectionHook* _originalConnectionHook;
- boost::scoped_ptr<MockReplicaSet> _replSet;
+ std::unique_ptr<MockReplicaSet> _replSet;
};
// Tests the case where the connection to secondary went bad and the replica set
diff --git a/src/mongo/dbtests/rollbacktests.cpp b/src/mongo/dbtests/rollbacktests.cpp
index 74078abf1b1..cd832d9dba8 100644
--- a/src/mongo/dbtests/rollbacktests.cpp
+++ b/src/mongo/dbtests/rollbacktests.cpp
@@ -28,7 +28,6 @@
* then also delete it in the license file.
*/
-#include <boost/scoped_ptr.hpp>
#include "mongo/bson/bsonobj.h"
#include "mongo/db/catalog/collection.h"
@@ -42,7 +41,7 @@
#include "mongo/dbtests/dbtests.h"
#include "mongo/unittest/unittest.h"
-using boost::scoped_ptr;
+using std::unique_ptr;
using std::list;
using std::string;
diff --git a/src/mongo/logger/console_appender.h b/src/mongo/logger/console_appender.h
index bf5072cdea8..36cc6b5c85d 100644
--- a/src/mongo/logger/console_appender.h
+++ b/src/mongo/logger/console_appender.h
@@ -27,7 +27,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/status.h"
@@ -58,7 +57,7 @@ namespace logger {
}
private:
- boost::scoped_ptr<EventEncoder> _encoder;
+ std::unique_ptr<EventEncoder> _encoder;
};
} // namespace logger
diff --git a/src/mongo/logger/log_domain.h b/src/mongo/logger/log_domain.h
index 715e5822ed0..0313985b2f1 100644
--- a/src/mongo/logger/log_domain.h
+++ b/src/mongo/logger/log_domain.h
@@ -27,7 +27,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <memory>
#include <string>
#include <vector>
diff --git a/src/mongo/logger/message_log_domain.h b/src/mongo/logger/message_log_domain.h
index d5bbc45e951..967856c88dd 100644
--- a/src/mongo/logger/message_log_domain.h
+++ b/src/mongo/logger/message_log_domain.h
@@ -27,7 +27,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <memory>
#include <string>
#include <vector>
diff --git a/src/mongo/logger/rotatable_file_appender.h b/src/mongo/logger/rotatable_file_appender.h
index 777ef4f7fbf..3a2523a8297 100644
--- a/src/mongo/logger/rotatable_file_appender.h
+++ b/src/mongo/logger/rotatable_file_appender.h
@@ -27,7 +27,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/base/status.h"
@@ -67,7 +66,7 @@ namespace logger {
}
private:
- boost::scoped_ptr<EventEncoder> _encoder;
+ std::unique_ptr<EventEncoder> _encoder;
RotatableFileWriter* _writer;
};
diff --git a/src/mongo/logger/rotatable_file_writer.cpp b/src/mongo/logger/rotatable_file_writer.cpp
index 5ed1ef27be5..f657f42c18d 100644
--- a/src/mongo/logger/rotatable_file_writer.cpp
+++ b/src/mongo/logger/rotatable_file_writer.cpp
@@ -239,7 +239,7 @@ namespace {
} // namespace
#endif
- RotatableFileWriter::RotatableFileWriter() : _stream(NULL) {}
+ RotatableFileWriter::RotatableFileWriter() : _stream(nullptr) {}
RotatableFileWriter::Use::Use(RotatableFileWriter* writer) :
_writer(writer),
@@ -299,7 +299,7 @@ namespace {
using std::swap;
#ifdef _WIN32
- boost::scoped_ptr<std::ostream> newStream(
+ std::unique_ptr<std::ostream> newStream(
new Win32FileOStream(_writer->_fileName, append));
#else
std::ios::openmode mode = std::ios::out;
@@ -309,7 +309,7 @@ namespace {
else {
mode |= std::ios::trunc;
}
- boost::scoped_ptr<std::ostream> newStream(
+ std::unique_ptr<std::ostream> newStream(
new std::ofstream(_writer->_fileName.c_str(), mode));
#endif
diff --git a/src/mongo/logger/rotatable_file_writer.h b/src/mongo/logger/rotatable_file_writer.h
index 59440b38ff8..aee5af4ed42 100644
--- a/src/mongo/logger/rotatable_file_writer.h
+++ b/src/mongo/logger/rotatable_file_writer.h
@@ -27,7 +27,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/mutex.hpp>
#include <string>
@@ -122,7 +121,7 @@ namespace logger {
friend class RotatableFileWriter::Use;
boost::mutex _mutex;
std::string _fileName;
- boost::scoped_ptr<std::ostream> _stream;
+ std::unique_ptr<std::ostream> _stream;
};
} // namespace logger
diff --git a/src/mongo/logger/syslog_appender.h b/src/mongo/logger/syslog_appender.h
index 50ce6661002..df0ba489fdf 100644
--- a/src/mongo/logger/syslog_appender.h
+++ b/src/mongo/logger/syslog_appender.h
@@ -29,7 +29,6 @@
#ifndef _WIN32 // TODO(schwerin): Should be #if MONGO_CONFIG_HAVE_SYSLOG_H?
-#include <boost/scoped_ptr.hpp>
#include <sstream>
#include <syslog.h>
@@ -74,7 +73,7 @@ namespace logger {
// Info() and Log().
return LOG_INFO;
}
- boost::scoped_ptr<EventEncoder> _encoder;
+ std::unique_ptr<EventEncoder> _encoder;
};
} // namespace logger
diff --git a/src/mongo/s/balance.cpp b/src/mongo/s/balance.cpp
index 89104383807..5275fe25c98 100644
--- a/src/mongo/s/balance.cpp
+++ b/src/mongo/s/balance.cpp
@@ -33,7 +33,6 @@
#include "mongo/s/balance.h"
#include <algorithm>
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/dbclientcursor.h"
#include "mongo/db/client.h"
@@ -65,7 +64,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::unique_ptr;
using std::map;
diff --git a/src/mongo/s/balance.h b/src/mongo/s/balance.h
index 9654207e4e2..596ad5ea239 100644
--- a/src/mongo/s/balance.h
+++ b/src/mongo/s/balance.h
@@ -30,7 +30,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/util/background.h"
@@ -73,7 +72,7 @@ namespace mongo {
int _balancedLastTime;
// decide which chunks to move; owned here.
- boost::scoped_ptr<BalancerPolicy> _policy;
+ std::unique_ptr<BalancerPolicy> _policy;
/**
* Checks that the balancer can connect to all servers it needs to do its job.
diff --git a/src/mongo/s/catalog/legacy/cluster_client_internal.cpp b/src/mongo/s/catalog/legacy/cluster_client_internal.cpp
index 3ad791e13ce..d4d92cc4ded 100644
--- a/src/mongo/s/catalog/legacy/cluster_client_internal.cpp
+++ b/src/mongo/s/catalog/legacy/cluster_client_internal.cpp
@@ -32,7 +32,6 @@
#include "mongo/s/catalog/legacy/cluster_client_internal.h"
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/client/connpool.h"
@@ -45,7 +44,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::endl;
using std::string;
@@ -55,7 +54,7 @@ namespace mongo {
Status checkClusterMongoVersions(CatalogManager* catalogManager,
const string& minMongoVersion) {
- scoped_ptr<ScopedDbConnection> connPtr;
+ unique_ptr<ScopedDbConnection> connPtr;
//
// Find mongos pings in config server
@@ -64,7 +63,7 @@ namespace mongo {
try {
connPtr.reset(new ScopedDbConnection(catalogManager->connectionString(), 30));
ScopedDbConnection& conn = *connPtr;
- scoped_ptr<DBClientCursor> cursor(_safeCursor(conn->query(MongosType::ConfigNS,
+ unique_ptr<DBClientCursor> cursor(_safeCursor(conn->query(MongosType::ConfigNS,
Query())));
while (cursor->more()) {
@@ -178,7 +177,7 @@ namespace mongo {
log() << "checking that version of host " << serverLoc << " is compatible with "
<< minMongoVersion << endl;
- scoped_ptr<ScopedDbConnection> serverConnPtr;
+ unique_ptr<ScopedDbConnection> serverConnPtr;
bool resultOk;
BSONObj buildInfo;
diff --git a/src/mongo/s/catalog/legacy/config_upgrade.cpp b/src/mongo/s/catalog/legacy/config_upgrade.cpp
index 8fb25a4507a..2ed119d914f 100644
--- a/src/mongo/s/catalog/legacy/config_upgrade.cpp
+++ b/src/mongo/s/catalog/legacy/config_upgrade.cpp
@@ -32,7 +32,6 @@
#include "mongo/s/catalog/legacy/config_upgrade.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/connpool.h"
#include "mongo/client/dbclientcursor.h"
@@ -53,7 +52,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::make_pair;
using std::map;
using std::string;
@@ -362,7 +361,7 @@ namespace {
ScopedDbConnection conn(catalogManager->connectionString(), 30);
- scoped_ptr<DBClientCursor> cursor(_safeCursor(conn->query("config.version",
+ unique_ptr<DBClientCursor> cursor(_safeCursor(conn->query("config.version",
BSONObj())));
bool hasConfigData = conn->count(ShardType::ConfigNS)
diff --git a/src/mongo/s/catalog/legacy/config_upgrade_helpers.cpp b/src/mongo/s/catalog/legacy/config_upgrade_helpers.cpp
index d6b300db8a1..64b6f201f3e 100644
--- a/src/mongo/s/catalog/legacy/config_upgrade_helpers.cpp
+++ b/src/mongo/s/catalog/legacy/config_upgrade_helpers.cpp
@@ -32,7 +32,6 @@
#include "mongo/s/catalog/legacy/config_upgrade_helpers.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/connpool.h"
#include "mongo/db/field_parser.h"
@@ -46,7 +45,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::endl;
using std::string;
diff --git a/src/mongo/s/catalog/legacy/distlock.cpp b/src/mongo/s/catalog/legacy/distlock.cpp
index 48379989edc..4bd85c52517 100644
--- a/src/mongo/s/catalog/legacy/distlock.cpp
+++ b/src/mongo/s/catalog/legacy/distlock.cpp
@@ -31,7 +31,6 @@
#include "mongo/s/catalog/legacy/distlock.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/server_options.h"
#include "mongo/client/dbclientcursor.h"
@@ -44,7 +43,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::endl;
using std::list;
@@ -174,7 +173,7 @@ namespace mongo {
string errMsg;
Milliseconds delay{0};
- scoped_ptr<ScopedDbConnection> connPtr;
+ unique_ptr<ScopedDbConnection> connPtr;
try {
connPtr.reset( new ScopedDbConnection( server.toString() ) );
ScopedDbConnection& conn = *connPtr;
@@ -791,7 +790,7 @@ namespace mongo {
while ( ++attempted <= maxAttempts ) {
// Awkward, but necessary since the constructor itself throws exceptions
- scoped_ptr<ScopedDbConnection> connPtr;
+ unique_ptr<ScopedDbConnection> connPtr;
try {
diff --git a/src/mongo/s/chunk_manager.cpp b/src/mongo/s/chunk_manager.cpp
index ed97da4a645..c02b0fc7e75 100644
--- a/src/mongo/s/chunk_manager.cpp
+++ b/src/mongo/s/chunk_manager.cpp
@@ -470,7 +470,7 @@ namespace {
&canonicalQuery,
WhereCallbackNoop());
- boost::scoped_ptr<CanonicalQuery> canonicalQueryPtr(canonicalQuery);
+ std::unique_ptr<CanonicalQuery> canonicalQueryPtr(canonicalQuery);
uassert(status.code(), status.reason(), status.isOK());
diff --git a/src/mongo/s/client/dbclient_multi_command.cpp b/src/mongo/s/client/dbclient_multi_command.cpp
index fba3bdfcf0e..99f6bde3a82 100644
--- a/src/mongo/s/client/dbclient_multi_command.cpp
+++ b/src/mongo/s/client/dbclient_multi_command.cpp
@@ -30,7 +30,6 @@
#include "mongo/s/client/dbclient_multi_command.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/audit.h"
#include "mongo/db/dbmessage.h"
@@ -41,7 +40,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::deque;
using std::string;
@@ -172,7 +171,7 @@ namespace mongo {
Status DBClientMultiCommand::recvAny( ConnectionString* endpoint, BSONSerializable* response ) {
- scoped_ptr<PendingCommand> command( _pendingCommands.front() );
+ unique_ptr<PendingCommand> command( _pendingCommands.front() );
_pendingCommands.pop_front();
*endpoint = command->endpoint;
diff --git a/src/mongo/s/client/multi_host_query_test.cpp b/src/mongo/s/client/multi_host_query_test.cpp
index e44cd1ecd1f..b70dfe9d75a 100644
--- a/src/mongo/s/client/multi_host_query_test.cpp
+++ b/src/mongo/s/client/multi_host_query_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/base/status_with.h"
@@ -39,7 +38,7 @@
namespace {
using namespace mongo;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::make_pair;
using std::map;
@@ -399,12 +398,12 @@ namespace {
Notification* nextHostActiveNotify;
ConnectionString prevHost;
- scoped_ptr<Notification> prevHostActiveNotify;
+ unique_ptr<Notification> prevHostActiveNotify;
bool waitForPrevHostIdle;
int queryTimeMillis;
- scoped_ptr<DBClientConnection> conn;
+ unique_ptr<DBClientConnection> conn;
Notification* hangUntilNotify;
Status error;
};
@@ -738,7 +737,7 @@ namespace {
Notification unhangNotify;
// Create a thread pool which detaches itself from outstanding work on cleanup
- scoped_ptr<HostThreadPools> threadPool(new HostThreadPools(1, false));
+ unique_ptr<HostThreadPools> threadPool(new HostThreadPools(1, false));
MockSystemEnv mockSystem(threadPool.get());
ConnectionString hostA = uassertStatusOK(ConnectionString::parse("$hostA:1000"));
diff --git a/src/mongo/s/client/shard_connection_test.cpp b/src/mongo/s/client/shard_connection_test.cpp
index ff55380ad44..70257bb217c 100644
--- a/src/mongo/s/client/shard_connection_test.cpp
+++ b/src/mongo/s/client/shard_connection_test.cpp
@@ -41,7 +41,6 @@
#include "mongo/unittest/unittest.h"
#include <vector>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
/**
diff --git a/src/mongo/s/cluster_write.h b/src/mongo/s/cluster_write.h
index e49509f2376..fce2f26564d 100644
--- a/src/mongo/s/cluster_write.h
+++ b/src/mongo/s/cluster_write.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/s/write_ops/batch_write_exec.h"
#include "mongo/s/write_ops/batched_command_request.h"
@@ -52,7 +51,7 @@ namespace mongo {
const bool _autoSplit;
const int _timeoutMillis;
- boost::scoped_ptr<ClusterWriterStats> _stats;
+ std::unique_ptr<ClusterWriterStats> _stats;
};
class ClusterWriterStats {
@@ -69,7 +68,7 @@ namespace mongo {
private:
- boost::scoped_ptr<BatchWriteExecStats> _shardStats;
+ std::unique_ptr<BatchWriteExecStats> _shardStats;
};
/**
diff --git a/src/mongo/s/collection_metadata_test.cpp b/src/mongo/s/collection_metadata_test.cpp
index ac233249729..ed160ed5164 100644
--- a/src/mongo/s/collection_metadata_test.cpp
+++ b/src/mongo/s/collection_metadata_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -48,7 +47,7 @@ namespace {
using namespace mongo;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::make_pair;
using std::string;
@@ -112,7 +111,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
CollectionMetadata _metadata;
};
@@ -144,7 +143,7 @@ namespace {
string errMsg;
const ChunkVersion version( 99, 0, OID() );
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().clonePlusChunk( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().clonePlusChunk( chunk,
version,
&errMsg ) );
@@ -161,7 +160,7 @@ namespace {
chunk.setMax( BSON("a" << 20) );
string errMsg;
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata() // br
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata() // br
.clonePlusChunk( chunk, ChunkVersion( 0, 0, OID() ), &errMsg ) );
ASSERT( cloned == NULL );
@@ -177,7 +176,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 20) );
@@ -197,7 +196,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 20) );
@@ -225,7 +224,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 20) );
@@ -248,7 +247,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 30) );
@@ -276,7 +275,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 30) );
@@ -312,7 +311,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 30) );
@@ -327,7 +326,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 30) );
@@ -350,7 +349,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 20) );
@@ -382,7 +381,7 @@ namespace {
TEST_F(NoChunkFixture, MergeChunkEmpty) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
cloned.reset( getCollMetadata().cloneMerge( BSON( "a" << 15 ),
BSON( "a" << 25 ),
@@ -436,7 +435,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 20) );
@@ -514,7 +513,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
CollectionMetadata _metadata;
};
@@ -556,7 +555,7 @@ namespace {
string errMsg;
const ChunkVersion zeroVersion( 0, 0, getCollMetadata().getShardVersion().epoch() );
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
zeroVersion,
&errMsg ) );
@@ -575,7 +574,7 @@ namespace {
string errMsg;
ChunkVersion version( 99, 0, OID() );
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
version,
&errMsg ) );
@@ -587,7 +586,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 20) );
chunk.setMax( BSON("a" << 30) );
@@ -607,7 +606,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 20) );
@@ -622,7 +621,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 20) );
chunk.setMax( BSON("a" << 30) );
@@ -662,7 +661,7 @@ namespace {
splitPoints.push_back(BSON("a" << 14));
string errMsg;
- scoped_ptr<CollectionMetadata> cloned(getCollMetadata().cloneSplit(chunk,
+ unique_ptr<CollectionMetadata> cloned(getCollMetadata().cloneSplit(chunk,
splitPoints,
version,
&errMsg));
@@ -688,7 +687,7 @@ namespace {
TEST_F(SingleChunkFixture, MultiSplit) {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 10) );
chunk.setMax( BSON("a" << 20) );
@@ -733,7 +732,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON("a" << 20) );
chunk.setMax( BSON("a" << 30) );
@@ -771,7 +770,7 @@ namespace {
TEST_F(SingleChunkFixture, MergeChunkSingle) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
cloned.reset( getCollMetadata().cloneMerge( BSON( "a" << 10 ),
BSON( "a" << 20 ),
@@ -854,7 +853,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
CollectionMetadata _metadata;
};
@@ -935,7 +934,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
CollectionMetadata _metadata;
};
@@ -946,7 +945,7 @@ namespace {
string errMsg;
ChunkVersion version( 1, 0, getCollMetadata().getShardVersion().epoch() );
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().clonePlusChunk( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().clonePlusChunk( chunk,
version,
&errMsg ) );
@@ -970,7 +969,7 @@ namespace {
chunk.setMax( BSON("a" << 25 << "b" << 0) );
string errMsg;
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().clonePlusChunk( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().clonePlusChunk( chunk,
ChunkVersion( 1,
0,
OID() ),
@@ -987,7 +986,7 @@ namespace {
string errMsg;
ChunkVersion version( 2, 0, OID() );
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
version,
&errMsg ) );
@@ -1010,7 +1009,7 @@ namespace {
chunk.setMax( BSON("a" << 28 << "b" << 0) );
string errMsg;
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().cloneMigrate( chunk,
ChunkVersion( 1,
0,
OID() ),
@@ -1036,7 +1035,7 @@ namespace {
ChunkVersion version( 1, 99, OID() ); // first chunk 1|99 , second 1|100
string errMsg;
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().cloneSplit( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().cloneSplit( chunk,
splitKeys,
version,
&errMsg ) );
@@ -1062,7 +1061,7 @@ namespace {
splitKeys.push_back( BSON("a" << 5 << "b" << 0) );
string errMsg;
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().cloneSplit( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().cloneSplit( chunk,
splitKeys,
ChunkVersion( 1,
0,
@@ -1086,7 +1085,7 @@ namespace {
splitKeys.push_back( BSON("a" << 15 << "b" << 0) );
string errMsg;
- scoped_ptr<CollectionMetadata> cloned( getCollMetadata().cloneSplit( chunk,
+ unique_ptr<CollectionMetadata> cloned( getCollMetadata().cloneSplit( chunk,
splitKeys,
ChunkVersion( 1,
0,
@@ -1123,7 +1122,7 @@ namespace {
string errMsg;
ChunkType chunk;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
chunk.setMin( BSON( "a" << 20 << "b" << 0 ) );
chunk.setMax( BSON( "a" << 30 << "b" << 0 ) );
@@ -1228,7 +1227,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
CollectionMetadata _metadata;
};
@@ -1266,7 +1265,7 @@ namespace {
TEST_F(ThreeChunkWithRangeGapFixture, MergeChunkHoleInRange) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
// Try to merge with hole in range
ChunkVersion newShardVersion( 5, 0, getCollMetadata().getShardVersion().epoch() );
@@ -1282,7 +1281,7 @@ namespace {
TEST_F(ThreeChunkWithRangeGapFixture, MergeChunkDiffEndKey) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
// Try to merge with different end key
ChunkVersion newShardVersion( 5, 0, getCollMetadata().getShardVersion().epoch() );
@@ -1298,7 +1297,7 @@ namespace {
TEST_F(ThreeChunkWithRangeGapFixture, MergeChunkMinKey) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
ASSERT_EQUALS( getCollMetadata().getNumChunks(), 3u );
@@ -1319,7 +1318,7 @@ namespace {
TEST_F(ThreeChunkWithRangeGapFixture, MergeChunkMaxKey) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
ChunkVersion newShardVersion( 5, 0, getCollMetadata().getShardVersion().epoch() );
// Add one chunk to complete the range
@@ -1350,7 +1349,7 @@ namespace {
TEST_F(ThreeChunkWithRangeGapFixture, MergeChunkFullRange) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
ChunkVersion newShardVersion( 5, 0, getCollMetadata().getShardVersion().epoch() );
// Add one chunk to complete the range
@@ -1382,7 +1381,7 @@ namespace {
TEST_F(ThreeChunkWithRangeGapFixture, MergeChunkMiddleRange) {
string errMsg;
- scoped_ptr<CollectionMetadata> cloned;
+ unique_ptr<CollectionMetadata> cloned;
ChunkVersion newShardVersion( 5, 0, getCollMetadata().getShardVersion().epoch() );
// Add one chunk to complete the range
diff --git a/src/mongo/s/commands/cluster_list_databases_cmd.cpp b/src/mongo/s/commands/cluster_list_databases_cmd.cpp
index cc0fc602fd4..5e3559c8281 100644
--- a/src/mongo/s/commands/cluster_list_databases_cmd.cpp
+++ b/src/mongo/s/commands/cluster_list_databases_cmd.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <map>
#include <string>
@@ -42,7 +41,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::map;
using std::string;
using std::vector;
@@ -89,7 +88,7 @@ namespace {
BSONObjBuilder& result) {
map<string, long long> sizes;
- map<string, scoped_ptr<BSONObjBuilder> > dbShardInfo;
+ map<string, unique_ptr<BSONObjBuilder> > dbShardInfo;
vector<ShardId> shardIds;
grid.shardRegistry()->getAllShardIds(&shardIds);
@@ -119,7 +118,7 @@ namespace {
totalSize += size;
}
- scoped_ptr<BSONObjBuilder>& bb = dbShardInfo[name];
+ unique_ptr<BSONObjBuilder>& bb = dbShardInfo[name];
if (!bb.get()) {
bb.reset(new BSONObjBuilder());
}
diff --git a/src/mongo/s/commands/cluster_move_chunk_cmd.cpp b/src/mongo/s/commands/cluster_move_chunk_cmd.cpp
index 9d949c0df57..19aa53538da 100644
--- a/src/mongo/s/commands/cluster_move_chunk_cmd.cpp
+++ b/src/mongo/s/commands/cluster_move_chunk_cmd.cpp
@@ -31,7 +31,6 @@
#include "mongo/platform/basic.h"
#include <boost/shared_ptr.hpp>
-#include <boost/scoped_ptr.hpp>
#include "mongo/db/audit.h"
#include "mongo/db/auth/action_set.h"
@@ -53,7 +52,7 @@
namespace mongo {
using boost::shared_ptr;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
namespace {
@@ -239,7 +238,7 @@ namespace {
return false;
}
- scoped_ptr<WriteConcernOptions> writeConcern(new WriteConcernOptions());
+ unique_ptr<WriteConcernOptions> writeConcern(new WriteConcernOptions());
Status status = writeConcern->parseSecondaryThrottle(cmdObj, NULL);
if (!status.isOK()){
diff --git a/src/mongo/s/commands/cluster_pipeline_cmd.cpp b/src/mongo/s/commands/cluster_pipeline_cmd.cpp
index a5b039797a7..ebd402eee80 100644
--- a/src/mongo/s/commands/cluster_pipeline_cmd.cpp
+++ b/src/mongo/s/commands/cluster_pipeline_cmd.cpp
@@ -31,7 +31,6 @@
#include "mongo/platform/basic.h"
#include <boost/intrusive_ptr.hpp>
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <string>
#include <utility>
@@ -56,7 +55,7 @@
namespace mongo {
using boost::intrusive_ptr;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::string;
using std::vector;
diff --git a/src/mongo/s/commands/commands_public.cpp b/src/mongo/s/commands/commands_public.cpp
index c3c88231c57..733f498c5ab 100644
--- a/src/mongo/s/commands/commands_public.cpp
+++ b/src/mongo/s/commands/commands_public.cpp
@@ -32,7 +32,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/client/connpool.h"
@@ -70,7 +69,7 @@
namespace mongo {
using boost::intrusive_ptr;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::list;
using std::make_pair;
diff --git a/src/mongo/s/config.cpp b/src/mongo/s/config.cpp
index 3794d16adf4..506627aaadd 100644
--- a/src/mongo/s/config.cpp
+++ b/src/mongo/s/config.cpp
@@ -32,7 +32,6 @@
#include "mongo/s/config.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/client/connpool.h"
#include "mongo/db/client.h"
@@ -57,7 +56,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::endl;
using std::set;
diff --git a/src/mongo/s/cursors.cpp b/src/mongo/s/cursors.cpp
index e7e623eeed9..32d838dcc1e 100644
--- a/src/mongo/s/cursors.cpp
+++ b/src/mongo/s/cursors.cpp
@@ -33,7 +33,6 @@
#include "mongo/s/cursors.h"
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -55,7 +54,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::endl;
using std::string;
using std::stringstream;
@@ -227,7 +226,7 @@ namespace mongo {
true, true);
unsigned getCCRandomSeed() {
- scoped_ptr<SecureRandom> sr( SecureRandom::create() );
+ unique_ptr<SecureRandom> sr( SecureRandom::create() );
return sr->nextInt64();
}
diff --git a/src/mongo/s/metadata_loader_test.cpp b/src/mongo/s/metadata_loader_test.cpp
index 112873824f9..31cd8af70a5 100644
--- a/src/mongo/s/metadata_loader_test.cpp
+++ b/src/mongo/s/metadata_loader_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/base/status.h"
@@ -50,7 +49,7 @@ namespace {
using namespace mongo;
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::unique_ptr;
using std::string;
using std::vector;
@@ -215,7 +214,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
};
TEST_F(NoChunkFixture, NoChunksIsDropped) {
@@ -277,7 +276,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
};
TEST_F(NoChunkHereFixture, CheckNumChunk) {
@@ -347,7 +346,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
ChunkVersion _maxCollVersion;
};
@@ -499,8 +498,8 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
- scoped_ptr<MetadataLoader> _loader;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MetadataLoader> _loader;
};
TEST_F(MultipleMetadataFixture, PromotePendingNA) {
@@ -531,7 +530,7 @@ namespace {
pending.setMin( BSON( "x" << 0 ) );
pending.setMax( BSON( "x" << 10 ) );
- scoped_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
+ unique_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
ASSERT( cloned != NULL );
status = loader().promotePendingChunks( cloned.get(), &remoteMetadata );
@@ -569,7 +568,7 @@ namespace {
pending.setMin( BSON( "x" << 0 ) );
pending.setMax( BSON( "x" << 10 ) );
- scoped_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
+ unique_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
ASSERT( cloned != NULL );
status = loader().promotePendingChunks( cloned.get(), &remoteMetadata );
@@ -635,7 +634,7 @@ namespace {
pending.setMin( BSON( "x" << MINKEY ) );
pending.setMax( BSON( "x" << 0 ) );
- scoped_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
+ unique_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
ASSERT( cloned != NULL );
pending.setMin( BSON( "x" << 10 ) );
@@ -707,7 +706,7 @@ namespace {
pending.setMin( BSON( "x" << MINKEY ) );
pending.setMax( BSON( "x" << 1 ) );
- scoped_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
+ unique_ptr<CollectionMetadata> cloned( afterMetadata.clonePlusPending( pending, &errMsg ) );
ASSERT( cloned != NULL );
cloned.reset( cloned->clonePlusPending( pending, &errMsg ) );
@@ -817,7 +816,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
CollectionMetadata _oldMetadata;
ChunkVersion _maxCollVersion;
@@ -922,7 +921,7 @@ namespace {
}
private:
- scoped_ptr<MockRemoteDBServer> _dummyConfig;
+ unique_ptr<MockRemoteDBServer> _dummyConfig;
CollectionMetadata _oldMetadata;
ChunkVersion _maxCollVersion;
diff --git a/src/mongo/s/shard_key_pattern.cpp b/src/mongo/s/shard_key_pattern.cpp
index 613eb84a2bc..d4c5e105450 100644
--- a/src/mongo/s/shard_key_pattern.cpp
+++ b/src/mongo/s/shard_key_pattern.cpp
@@ -28,7 +28,6 @@
#include "mongo/s/shard_key_pattern.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <vector>
@@ -42,7 +41,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::unique_ptr;
using std::pair;
@@ -289,7 +288,7 @@ namespace mongo {
CanonicalQuery::canonicalize("", basicQuery, &rawQuery, WhereCallbackNoop());
if (!queryStatus.isOK())
return StatusWith<BSONObj>(queryStatus);
- scoped_ptr<CanonicalQuery> query(rawQuery);
+ unique_ptr<CanonicalQuery> query(rawQuery);
EqualityMatches equalities;
// TODO: Build the path set initially?
diff --git a/src/mongo/s/strategy.cpp b/src/mongo/s/strategy.cpp
index 7839d0cb85c..5fa32cba9bd 100644
--- a/src/mongo/s/strategy.cpp
+++ b/src/mongo/s/strategy.cpp
@@ -32,7 +32,6 @@
#include "mongo/s/strategy.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/status.h"
#include "mongo/base/owned_pointer_vector.h"
@@ -70,7 +69,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::endl;
using std::set;
@@ -241,7 +240,7 @@ namespace mongo {
// Only one shard is used
// Remote cursors are stored remotely, we shouldn't need this around.
- scoped_ptr<ParallelSortClusteredCursor> cursorDeleter( cursor );
+ unique_ptr<ParallelSortClusteredCursor> cursorDeleter( cursor );
ShardPtr shard = cursor->getQueryShard();
verify( shard.get() );
diff --git a/src/mongo/s/write_ops/batch_upconvert.cpp b/src/mongo/s/write_ops/batch_upconvert.cpp
index e3c37249255..26a8b8b2da0 100644
--- a/src/mongo/s/write_ops/batch_upconvert.cpp
+++ b/src/mongo/s/write_ops/batch_upconvert.cpp
@@ -30,7 +30,6 @@
#include "mongo/s/write_ops/batch_upconvert.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/bson/bsonobj.h"
#include "mongo/client/dbclientinterface.h"
@@ -44,7 +43,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using mongoutils::str::stream;
using std::unique_ptr;
using std::string;
@@ -174,7 +173,7 @@ namespace mongo {
const BatchedCommandResponse& response,
LastError* error ) {
- scoped_ptr<WriteErrorDetail> commandError;
+ unique_ptr<WriteErrorDetail> commandError;
WriteErrorDetail* lastBatchError = NULL;
if ( !response.getOk() ) {
diff --git a/src/mongo/s/write_ops/batch_write_exec.h b/src/mongo/s/write_ops/batch_write_exec.h
index a55f716194a..b7fd6c51e43 100644
--- a/src/mongo/s/write_ops/batch_write_exec.h
+++ b/src/mongo/s/write_ops/batch_write_exec.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <map>
#include <string>
diff --git a/src/mongo/s/write_ops/batch_write_exec_test.cpp b/src/mongo/s/write_ops/batch_write_exec_test.cpp
index 8c4bc77a660..3e0b2cfb9f3 100644
--- a/src/mongo/s/write_ops/batch_write_exec_test.cpp
+++ b/src/mongo/s/write_ops/batch_write_exec_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/s/write_ops/batch_write_exec.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/owned_pointer_vector.h"
#include "mongo/s/client/mock_multi_write_command.h"
@@ -40,7 +39,7 @@
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using std::vector;
@@ -81,7 +80,7 @@ namespace {
MockShardResolver resolver;
MockMultiWriteCommand dispatcher;
- scoped_ptr<BatchWriteExec> exec;
+ unique_ptr<BatchWriteExec> exec;
};
//
diff --git a/src/mongo/s/write_ops/batch_write_op.h b/src/mongo/s/write_ops/batch_write_op.h
index 0638cc43cb0..224d9985ef3 100644
--- a/src/mongo/s/write_ops/batch_write_op.h
+++ b/src/mongo/s/write_ops/batch_write_op.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <set>
#include <vector>
@@ -180,7 +179,7 @@ namespace mongo {
OwnedPointerVector<BatchedUpsertDetail> _upsertedIds;
// Stats for the entire batch op
- boost::scoped_ptr<BatchWriteStats> _stats;
+ std::unique_ptr<BatchWriteStats> _stats;
};
struct BatchWriteStats {
diff --git a/src/mongo/s/write_ops/batched_command_request.h b/src/mongo/s/write_ops/batched_command_request.h
index 9cf7fb1a92d..66e178dd5a8 100644
--- a/src/mongo/s/write_ops/batched_command_request.h
+++ b/src/mongo/s/write_ops/batched_command_request.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/disallow_copying.h"
#include "mongo/s/bson_serializable.h"
@@ -185,9 +184,9 @@ namespace mongo {
private:
BatchType _batchType;
- boost::scoped_ptr<BatchedInsertRequest> _insertReq;
- boost::scoped_ptr<BatchedUpdateRequest> _updateReq;
- boost::scoped_ptr<BatchedDeleteRequest> _deleteReq;
+ std::unique_ptr<BatchedInsertRequest> _insertReq;
+ std::unique_ptr<BatchedUpdateRequest> _updateReq;
+ std::unique_ptr<BatchedDeleteRequest> _deleteReq;
};
/**
diff --git a/src/mongo/s/write_ops/batched_command_response.h b/src/mongo/s/write_ops/batched_command_response.h
index 57fc0549330..68cee2abaa6 100644
--- a/src/mongo/s/write_ops/batched_command_response.h
+++ b/src/mongo/s/write_ops/batched_command_response.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -175,7 +174,7 @@ namespace mongo {
// (O) Array of upserted items' _id's
// Should only be present if _singleUpserted is not.
- boost::scoped_ptr<std::vector<BatchedUpsertDetail*> >_upsertDetails;
+ std::unique_ptr<std::vector<BatchedUpsertDetail*> >_upsertDetails;
// (O) Timestamp assigned to the write op when it was written to the oplog.
// Normally, getLastError can use Client::_lastOp, but this is not valid for
@@ -192,10 +191,10 @@ namespace mongo {
bool _isElectionIdSet;
// (O) Array of item-level error information
- boost::scoped_ptr<std::vector<WriteErrorDetail*> >_writeErrorDetails;
+ std::unique_ptr<std::vector<WriteErrorDetail*> >_writeErrorDetails;
// (O) errors that occurred while trying to satisfy the write concern.
- boost::scoped_ptr<WCErrorDetail> _wcErrDetails;
+ std::unique_ptr<WCErrorDetail> _wcErrDetails;
};
} // namespace mongo
diff --git a/src/mongo/s/write_ops/batched_delete_request.h b/src/mongo/s/write_ops/batched_delete_request.h
index 62fd4f94505..e3846833bec 100644
--- a/src/mongo/s/write_ops/batched_delete_request.h
+++ b/src/mongo/s/write_ops/batched_delete_request.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -151,7 +150,7 @@ namespace mongo {
bool _isOrderedSet;
// (O) metadata associated with this request for internal use.
- boost::scoped_ptr<BatchedRequestMetadata> _metadata;
+ std::unique_ptr<BatchedRequestMetadata> _metadata;
};
} // namespace mongo
diff --git a/src/mongo/s/write_ops/batched_insert_request.h b/src/mongo/s/write_ops/batched_insert_request.h
index 0fb6d95d8c5..8b5238b888e 100644
--- a/src/mongo/s/write_ops/batched_insert_request.h
+++ b/src/mongo/s/write_ops/batched_insert_request.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -141,7 +140,7 @@ namespace mongo {
bool _isOrderedSet;
// (O) metadata associated with this request for internal use.
- boost::scoped_ptr<BatchedRequestMetadata> _metadata;
+ std::unique_ptr<BatchedRequestMetadata> _metadata;
// (O) cached copied of target ns
NamespaceString _targetNSS;
diff --git a/src/mongo/s/write_ops/batched_request_metadata.cpp b/src/mongo/s/write_ops/batched_request_metadata.cpp
index e3403196151..29d4b5e97fc 100644
--- a/src/mongo/s/write_ops/batched_request_metadata.cpp
+++ b/src/mongo/s/write_ops/batched_request_metadata.cpp
@@ -82,7 +82,7 @@ namespace mongo {
_isShardNameSet = fieldState == FieldParser::FIELD_SET;
{
- boost::scoped_ptr<ChunkVersion> tempChunkVersion(new ChunkVersion);
+ std::unique_ptr<ChunkVersion> tempChunkVersion(new ChunkVersion);
fieldState = FieldParser::extract(source, shardVersion,
tempChunkVersion.get(), errMsg);
if (fieldState == FieldParser::FIELD_INVALID) return false;
diff --git a/src/mongo/s/write_ops/batched_request_metadata.h b/src/mongo/s/write_ops/batched_request_metadata.h
index 029e915757e..afe639adfaa 100644
--- a/src/mongo/s/write_ops/batched_request_metadata.h
+++ b/src/mongo/s/write_ops/batched_request_metadata.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include "mongo/base/disallow_copying.h"
@@ -86,7 +85,7 @@ namespace mongo {
bool _isShardNameSet;
// (O) version for this collection on a given shard
- boost::scoped_ptr<ChunkVersion> _shardVersion;
+ std::unique_ptr<ChunkVersion> _shardVersion;
// (O) session number the inserts belong to
long long _session;
diff --git a/src/mongo/s/write_ops/batched_update_request.h b/src/mongo/s/write_ops/batched_update_request.h
index 94f24f089b1..db99188b7b3 100644
--- a/src/mongo/s/write_ops/batched_update_request.h
+++ b/src/mongo/s/write_ops/batched_update_request.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <vector>
@@ -150,7 +149,7 @@ namespace mongo {
bool _shouldBypassValidation;
// (O) metadata associated with this request for internal use.
- boost::scoped_ptr<BatchedRequestMetadata> _metadata;
+ std::unique_ptr<BatchedRequestMetadata> _metadata;
};
} // namespace mongo
diff --git a/src/mongo/s/write_ops/write_op.h b/src/mongo/s/write_ops/write_op.h
index b54ec1718c3..98ccf0d691d 100644
--- a/src/mongo/s/write_ops/write_op.h
+++ b/src/mongo/s/write_ops/write_op.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <vector>
#include "mongo/base/string_data.h"
@@ -183,7 +182,7 @@ namespace mongo {
std::vector<ChildWriteOp*> _childOps;
// filled when state == _Error
- boost::scoped_ptr<WriteErrorDetail> _error;
+ std::unique_ptr<WriteErrorDetail> _error;
// Finished child operations, for debugging
std::vector<ChildWriteOp*> _history;
@@ -210,10 +209,10 @@ namespace mongo {
TargetedWrite* pendingWrite;
// filled when state > _Pending
- boost::scoped_ptr<ShardEndpoint> endpoint;
+ std::unique_ptr<ShardEndpoint> endpoint;
// filled when state == _Error or (optionally) when state == _Cancelled
- boost::scoped_ptr<WriteErrorDetail> error;
+ std::unique_ptr<WriteErrorDetail> error;
};
// First value is write item index in the batch, second value is child write op index
diff --git a/src/mongo/s/write_ops/write_op_test.cpp b/src/mongo/s/write_ops/write_op_test.cpp
index 669220c6d24..fc5caa05dfb 100644
--- a/src/mongo/s/write_ops/write_op_test.cpp
+++ b/src/mongo/s/write_ops/write_op_test.cpp
@@ -28,7 +28,6 @@
#include "mongo/s/write_ops/write_op.h"
-#include <boost/scoped_ptr.hpp>
#include "mongo/base/error_codes.h"
#include "mongo/base/owned_pointer_vector.h"
@@ -40,7 +39,7 @@
namespace {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::string;
using std::vector;
@@ -69,7 +68,7 @@ namespace {
WriteOp writeOp( BatchItemRef( &request, 0 ) );
ASSERT_EQUALS( writeOp.getWriteState(), WriteOpState_Ready );
- scoped_ptr<WriteErrorDetail> error( buildError( ErrorCodes::UnknownError,
+ unique_ptr<WriteErrorDetail> error( buildError( ErrorCodes::UnknownError,
BSON( "data" << 12345 ),
"some message" ) );
@@ -294,7 +293,7 @@ namespace {
ASSERT_EQUALS( targeted.size(), 1u );
assertEndpointsEqual( targeted.front()->endpoint, endpoint );
- scoped_ptr<WriteErrorDetail> error( buildError( ErrorCodes::UnknownError,
+ unique_ptr<WriteErrorDetail> error( buildError( ErrorCodes::UnknownError,
BSON( "data" << 12345 ),
"some message" ) );
@@ -392,7 +391,7 @@ namespace {
// Stale exception
- scoped_ptr<WriteErrorDetail> error( buildError( ErrorCodes::StaleShardVersion,
+ unique_ptr<WriteErrorDetail> error( buildError( ErrorCodes::StaleShardVersion,
BSON( "data" << 12345 ),
"some message" ) );
diff --git a/src/mongo/scripting/bson_template_evaluator_test.cpp b/src/mongo/scripting/bson_template_evaluator_test.cpp
index c589617f34f..69a1678617d 100644
--- a/src/mongo/scripting/bson_template_evaluator_test.cpp
+++ b/src/mongo/scripting/bson_template_evaluator_test.cpp
@@ -264,7 +264,7 @@ namespace mongo {
TEST(BSONTemplateEvaluatorTest, SEQ_INT) {
- boost::scoped_ptr<BsonTemplateEvaluator> t(new BsonTemplateEvaluator(131415));
+ std::unique_ptr<BsonTemplateEvaluator> t(new BsonTemplateEvaluator(131415));
BSONObj seqObj;
BSONObj expectedObj;
diff --git a/src/mongo/scripting/engine.cpp b/src/mongo/scripting/engine.cpp
index b573dba620d..153df5d7f6d 100644
--- a/src/mongo/scripting/engine.cpp
+++ b/src/mongo/scripting/engine.cpp
@@ -36,7 +36,6 @@
#include <cctype>
#include <boost/filesystem/operations.hpp>
#include <boost/scoped_array.hpp>
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/client/dbclientcursor.h"
@@ -50,7 +49,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using boost::shared_ptr;
using std::unique_ptr;
using std::endl;
@@ -221,7 +220,7 @@ namespace {
_loadedVersion = lastVersion;
string coll = _localDBName + ".system.js";
- scoped_ptr<DBClientBase> directDBClient(createDirectClient(txn));
+ unique_ptr<DBClientBase> directDBClient(createDirectClient(txn));
unique_ptr<DBClientCursor> c = directDBClient->query(coll, Query(), 0, 0, NULL,
QueryOption_SlaveOk, 0);
massert(16669, "unable to get db client cursor from query", c.get());
diff --git a/src/mongo/scripting/engine_v8-3.25.h b/src/mongo/scripting/engine_v8-3.25.h
index 70a34f93a5e..b81dfcc40f6 100644
--- a/src/mongo/scripting/engine_v8-3.25.h
+++ b/src/mongo/scripting/engine_v8-3.25.h
@@ -29,7 +29,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <v8.h>
#include <set>
@@ -126,7 +125,7 @@ namespace mongo {
* @param data Weak callback data. Contains pointer to the TrackedPtr instance.
*/
static void deleteOnCollect(const v8::WeakCallbackData<v8::Value, TrackedPtr>& data) {
- boost::scoped_ptr<TrackedPtr> trackedPtr(data.GetParameter());
+ std::unique_ptr<TrackedPtr> trackedPtr(data.GetParameter());
invariant(trackedPtr.get());
trackedPtr->_tracker->_container.erase(trackedPtr.get());
diff --git a/src/mongo/scripting/v8-3.25_utils.cpp b/src/mongo/scripting/v8-3.25_utils.cpp
index f0a2e87a6ea..9b183cf0b81 100644
--- a/src/mongo/scripting/v8-3.25_utils.cpp
+++ b/src/mongo/scripting/v8-3.25_utils.cpp
@@ -32,7 +32,6 @@
#include "mongo/scripting/v8-3.25_utils.h"
#include <boost/make_shared.hpp>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/condition_variable.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/shared_ptr.hpp>
@@ -50,7 +49,7 @@
#include "mongo/util/mongoutils/str.h"
using namespace std;
-using boost::scoped_ptr;
+using std::unique_ptr;
namespace mongo {
@@ -180,7 +179,7 @@ namespace mongo {
void operator()() {
try {
- scoped_ptr<V8Scope> scope(
+ unique_ptr<V8Scope> scope(
static_cast<V8Scope*>(globalScriptEngine->newScope()));
v8::Locker v8lock(scope->getIsolate());
v8::Isolate::Scope iscope(scope->getIsolate());
@@ -241,7 +240,7 @@ namespace mongo {
bool _started;
bool _done;
- scoped_ptr<boost::thread> _thread;
+ unique_ptr<boost::thread> _thread;
boost::shared_ptr<SharedData> _sharedData;
};
diff --git a/src/mongo/scripting/v8_db.cpp b/src/mongo/scripting/v8_db.cpp
index 57f9ce1a3c7..b14016e86ea 100644
--- a/src/mongo/scripting/v8_db.cpp
+++ b/src/mongo/scripting/v8_db.cpp
@@ -429,7 +429,7 @@ namespace mongo {
std::string hashedPwd = DBClientWithCommands::createPasswordDigest(user,
toSTLString(args[4]));
- boost::scoped_ptr<SaslClientSession> session(new NativeSaslClientSession());
+ std::unique_ptr<SaslClientSession> session(new NativeSaslClientSession());
session->setParameter(SaslClientSession::parameterMechanism, "SCRAM-SHA-1");
session->setParameter(SaslClientSession::parameterUser, user);
diff --git a/src/mongo/scripting/v8_utils.cpp b/src/mongo/scripting/v8_utils.cpp
index 894d3ecbe27..7a774354c99 100644
--- a/src/mongo/scripting/v8_utils.cpp
+++ b/src/mongo/scripting/v8_utils.cpp
@@ -32,7 +32,6 @@
#include "mongo/scripting/v8_utils.h"
#include <boost/make_shared.hpp>
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/condition_variable.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/shared_ptr.hpp>
@@ -50,7 +49,7 @@
#include "mongo/util/mongoutils/str.h"
using namespace std;
-using boost::scoped_ptr;
+using std::unique_ptr;
namespace mongo {
@@ -179,7 +178,7 @@ namespace mongo {
void operator()() {
try {
- scoped_ptr<V8Scope> scope(
+ unique_ptr<V8Scope> scope(
static_cast<V8Scope*>(globalScriptEngine->newScope()));
v8::Locker v8lock(scope->getIsolate());
v8::Isolate::Scope iscope(scope->getIsolate());
@@ -238,7 +237,7 @@ namespace mongo {
bool _started;
bool _done;
- scoped_ptr<boost::thread> _thread;
+ unique_ptr<boost::thread> _thread;
boost::shared_ptr<SharedData> _sharedData;
};
diff --git a/src/mongo/shell/bench.cpp b/src/mongo/shell/bench.cpp
index b0ecb34c0bb..151c0a6ed3b 100644
--- a/src/mongo/shell/bench.cpp
+++ b/src/mongo/shell/bench.cpp
@@ -738,7 +738,7 @@ namespace mongo {
void BenchRunWorker::run() {
try {
BenchRunWorkerStateGuard _workerStateGuard( _brState );
- boost::scoped_ptr<DBClientBase> conn( _config->createConnection() );
+ std::unique_ptr<DBClientBase> conn( _config->createConnection() );
if ( !_config->username.empty() ) {
string errmsg;
if (!conn->auth("admin", _config->username, _config->password, errmsg)) {
@@ -776,7 +776,7 @@ namespace mongo {
void BenchRunner::start( ) {
{
- boost::scoped_ptr<DBClientBase> conn( _config->createConnection() );
+ std::unique_ptr<DBClientBase> conn( _config->createConnection() );
// Must authenticate to admin db in order to run serverStatus command
if (_config->username != "") {
string errmsg;
@@ -814,7 +814,7 @@ namespace mongo {
delete _brTimer;
{
- boost::scoped_ptr<DBClientBase> conn( _config->createConnection() );
+ std::unique_ptr<DBClientBase> conn( _config->createConnection() );
if (_config->username != "") {
string errmsg;
// this can only fail if admin access was revoked since start of run
diff --git a/src/mongo/shell/bench.h b/src/mongo/shell/bench.h
index 280d7c1399d..6edd007b6c6 100644
--- a/src/mongo/shell/bench.h
+++ b/src/mongo/shell/bench.h
@@ -30,7 +30,6 @@
#include <string>
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/thread/condition.hpp>
#include <boost/noncopyable.hpp>
@@ -434,7 +433,7 @@ namespace mongo {
BenchRunState _brState;
Timer *_brTimer;
unsigned long long _microsElapsed;
- boost::scoped_ptr<BenchRunConfig> _config;
+ std::unique_ptr<BenchRunConfig> _config;
std::vector<BenchRunWorker *> _workers;
BSONObj before;
diff --git a/src/mongo/shell/shell_utils.cpp b/src/mongo/shell/shell_utils.cpp
index cd7dd909264..ce951fc92d5 100644
--- a/src/mongo/shell/shell_utils.cpp
+++ b/src/mongo/shell/shell_utils.cpp
@@ -315,7 +315,7 @@ namespace mongo {
const ConnectionString cs(status.getValue());
string errmsg;
- boost::scoped_ptr<DBClientWithCommands> conn( cs.connect( errmsg ) );
+ std::unique_ptr<DBClientWithCommands> conn( cs.connect( errmsg ) );
if ( !conn ) {
continue;
}
diff --git a/src/mongo/unittest/unittest.h b/src/mongo/unittest/unittest.h
index 7faa5dcb3bd..fad64609187 100644
--- a/src/mongo/unittest/unittest.h
+++ b/src/mongo/unittest/unittest.h
@@ -42,7 +42,6 @@
#include <boost/config.hpp>
#include <boost/noncopyable.hpp>
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include "mongo/base/status_with.h"
diff --git a/src/mongo/util/background.h b/src/mongo/util/background.h
index 4f8ae23ee57..e49bead9491 100644
--- a/src/mongo/util/background.h
+++ b/src/mongo/util/background.h
@@ -29,8 +29,8 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/noncopyable.hpp>
+#include <memory>
#include <string>
#include <vector>
@@ -127,7 +127,7 @@ namespace mongo {
const bool _selfDelete;
struct JobStatus;
- const boost::scoped_ptr<JobStatus> _status;
+ const std::unique_ptr<JobStatus> _status;
void jobBody();
};
diff --git a/src/mongo/util/fail_point.cpp b/src/mongo/util/fail_point.cpp
index ef3c2111b2b..0d2a8897123 100644
--- a/src/mongo/util/fail_point.cpp
+++ b/src/mongo/util/fail_point.cpp
@@ -30,7 +30,6 @@
#include "mongo/util/fail_point.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread.hpp>
#include "mongo/platform/random.h"
@@ -49,7 +48,7 @@ namespace {
class FailPointPRNG {
public:
FailPointPRNG() :
- _prng(boost::scoped_ptr<SecureRandom>(SecureRandom::create())->nextInt64()) {}
+ _prng(std::unique_ptr<SecureRandom>(SecureRandom::create())->nextInt64()) {}
void resetSeed(int32_t seed) {
_prng = PseudoRandom(seed);
diff --git a/src/mongo/util/fail_point_service.cpp b/src/mongo/util/fail_point_service.cpp
index 43cf5c44d9b..d948a9e5a7a 100644
--- a/src/mongo/util/fail_point_service.cpp
+++ b/src/mongo/util/fail_point_service.cpp
@@ -28,15 +28,14 @@
#include "mongo/util/fail_point_service.h"
-#include <boost/scoped_ptr.hpp>
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
MONGO_FP_DECLARE(dummy); // used by jstests/libs/fail_point.js
- scoped_ptr<FailPointRegistry> _fpRegistry(NULL);
+ unique_ptr<FailPointRegistry> _fpRegistry(nullptr);
MONGO_INITIALIZER(FailPointRegistry)(InitializerContext* context) {
_fpRegistry.reset(new FailPointRegistry());
diff --git a/src/mongo/util/net/message_server_port.cpp b/src/mongo/util/net/message_server_port.cpp
index 4a4e73fa4b0..e8df178e2af 100644
--- a/src/mongo/util/net/message_server_port.cpp
+++ b/src/mongo/util/net/message_server_port.cpp
@@ -31,7 +31,6 @@
#include "mongo/platform/basic.h"
-#include <boost/scoped_ptr.hpp>
#include <boost/thread/thread.hpp>
#include <memory>
@@ -65,7 +64,7 @@
namespace mongo {
- using boost::scoped_ptr;
+ using std::unique_ptr;
using std::endl;
namespace {
@@ -197,7 +196,7 @@ namespace {
TicketHolderReleaser connTicketReleaser( &Listener::globalTicketHolder );
invariant(arg);
- scoped_ptr<MessagingPortWithHandler> portWithHandler(
+ unique_ptr<MessagingPortWithHandler> portWithHandler(
static_cast<MessagingPortWithHandler*>(arg));
MessageHandler* const handler = portWithHandler->getHandler();
diff --git a/src/mongo/util/net/sock.h b/src/mongo/util/net/sock.h
index f1da6144d3e..a2aec13c388 100644
--- a/src/mongo/util/net/sock.h
+++ b/src/mongo/util/net/sock.h
@@ -44,7 +44,6 @@
#endif // not _WIN32
-#include <boost/scoped_ptr.hpp>
#include <string>
#include <utility>
#include <vector>
@@ -310,7 +309,7 @@ namespace mongo {
time_t _lastValidityCheckAtSecs;
#ifdef MONGO_CONFIG_SSL
- boost::scoped_ptr<SSLConnection> _sslConnection;
+ std::unique_ptr<SSLConnection> _sslConnection;
SSLManagerInterface* _sslManager;
#endif
logger::LogSeverity _logLevel; // passed to log() when logging errors
diff --git a/src/mongo/util/unowned_ptr.h b/src/mongo/util/unowned_ptr.h
index 3bbba13b0f6..7bc66dda59b 100644
--- a/src/mongo/util/unowned_ptr.h
+++ b/src/mongo/util/unowned_ptr.h
@@ -28,7 +28,6 @@
#pragma once
-#include <boost/scoped_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/static_assert.hpp>
#include <memory>
@@ -75,9 +74,6 @@ namespace mongo {
template<typename U, typename = IfConvertibleFrom<U>>
unowned_ptr(const boost::shared_ptr<U>& p) : _p(p.get()) {}
- template<typename U, typename = IfConvertibleFrom<U>>
- unowned_ptr(const boost::scoped_ptr<U>& p) : _p(p.get()) {}
-
//
// Modifiers
//
diff --git a/src/mongo/util/unowned_ptr_test.cpp b/src/mongo/util/unowned_ptr_test.cpp
index 05579684597..058480e3936 100644
--- a/src/mongo/util/unowned_ptr_test.cpp
+++ b/src/mongo/util/unowned_ptr_test.cpp
@@ -39,7 +39,7 @@ namespace mongo {
//non-const
std::unique_ptr<int> p1(new int(1));
std::shared_ptr<int> p2(new int(2));
- boost::scoped_ptr<int> p3(new int(3));
+ std::unique_ptr<int> p3(new int(3));
boost::shared_ptr<int> p4(new int(4));
ASSERT_EQUALS(aNullPtr, unowned_ptr<int>());
@@ -52,7 +52,7 @@ namespace mongo {
ASSERT_EQUALS(p2.get(), unowned_ptr<int>(unowned_ptr<int>(p2)));
//const
- boost::scoped_ptr<const int> cp1(new int(11));
+ std::unique_ptr<const int> cp1(new int(11));
boost::shared_ptr<const int> cp2(new int(12));
ASSERT_EQUALS(aNullPtr, unowned_ptr<const int>());
@@ -80,7 +80,7 @@ namespace mongo {
//non-const
std::unique_ptr<int> p1(new int(1));
std::shared_ptr<int> p2(new int(2));
- boost::scoped_ptr<int> p3(new int(3));
+ std::unique_ptr<int> p3(new int(3));
boost::shared_ptr<int> p4(new int(4));
ASSERT_EQUALS(aNullPtr, (unowned_ptr<int>() = {}));