| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "src/local_aggregation_1_1/local_aggregate_storage/local_aggregate_storage.h" |
| |
| #include <memory> |
| |
| #include "src/local_aggregation_1_1/local_aggregate_storage/delayed_local_aggregate_storage.h" |
| #include "src/local_aggregation_1_1/local_aggregate_storage/immediate_local_aggregate_storage.h" |
| #include "src/logging.h" |
| |
| namespace cobalt::local_aggregation { |
| |
| std::unique_ptr<LocalAggregateStorage> LocalAggregateStorage::New( |
| StorageStrategy strategy, std::string base_directory, util::FileSystem *fs, |
| const logger::ProjectContextFactory *global_project_context_factory) { |
| switch (strategy) { |
| case StorageStrategy::Immediate: |
| return std::make_unique<ImmediateLocalAggregateStorage>(std::move(base_directory), fs, |
| global_project_context_factory); |
| |
| case StorageStrategy::Delayed: |
| return std::make_unique<DelayedLocalAggregateStorage>(std::move(base_directory), fs, |
| global_project_context_factory); |
| } |
| } |
| |
| } // namespace cobalt::local_aggregation |