CatapultServer  v0.5.0.1 (Elephant)
AggregateExternalCacheStorage.h
Go to the documentation of this file.
1 
21 #pragma once
22 #include "ExternalCacheStorage.h"
24 #include <vector>
25 
26 namespace catapult { namespace mongo {
27 
30  public:
32  using StorageContainer = std::vector<std::unique_ptr<ExternalCacheStorage>>;
33 
34  public:
37  : ExternalCacheStorage(utils::ReduceNames(utils::ExtractNames(storages)), 0)
38  , m_storages(std::move(storages))
39  {}
40 
41  public:
42  void saveDelta(const cache::CacheChanges& changes) override {
43  for (const auto& pStorage : m_storages)
44  pStorage->saveDelta(changes);
45  }
46 
47  private:
49  };
50 }}
catapult::mongo::AggregateExternalCacheStorage::StorageContainer
std::vector< std::unique_ptr< ExternalCacheStorage > > StorageContainer
Container of sub cache storages.
Definition: AggregateExternalCacheStorage.h:32
catapult::utils::ExtractNames
std::vector< std::string > ExtractNames(const TNamedObjects &namedObjects)
Extracts all names from namedObjects.
Definition: NamedObject.h:46
catapult::utils::ReduceNames
std::string ReduceNames(const std::vector< std::string > &names)
Reduces names into a single string.
Definition: NamedObject.h:56
catapult::mongo::AggregateExternalCacheStorage::AggregateExternalCacheStorage
AggregateExternalCacheStorage(StorageContainer &&storages)
Creates an aggregate around storages.
Definition: AggregateExternalCacheStorage.h:36
catapult::cache::CacheChanges
Provides common view of aggregate cache changes.
Definition: CacheChanges.h:111
ExternalCacheStorage.h
catapult::mongo::ExternalCacheStorage
Abstract class for saving cache data to external storage.
Definition: ExternalCacheStorage.h:28
NamedObject.h
catapult::mongo::AggregateExternalCacheStorage
Aggregate for saving cache data to external storage.
Definition: AggregateExternalCacheStorage.h:29
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::mongo::AggregateExternalCacheStorage::saveDelta
void saveDelta(const cache::CacheChanges &changes) override
Saves cache changes to external storage.
Definition: AggregateExternalCacheStorage.h:42
catapult::mongo::AggregateExternalCacheStorage::m_storages
StorageContainer m_storages
Definition: AggregateExternalCacheStorage.h:48