CatapultServer  v0.5.0.1 (Elephant)
ExternalCacheStorage.h
Go to the documentation of this file.
1 
21 #pragma once
23 #include "catapult/functions.h"
24 
25 namespace catapult { namespace mongo {
26 
29  protected:
31  ExternalCacheStorage(const std::string& name, size_t id)
32  : m_name(name)
33  , m_id(id)
34  {}
35 
36  public:
37  virtual ~ExternalCacheStorage() = default;
38 
39  public:
41  const std::string& name() const {
42  return m_name;
43  }
44 
46  size_t id() const {
47  return m_id;
48  }
49 
50  public:
52  virtual void saveDelta(const cache::CacheChanges& changes) = 0;
53 
54  private:
55  std::string m_name;
56  size_t m_id;
57  };
58 
60  template<typename TCache>
62  public:
65  {}
66 
67  public:
68  void saveDelta(const cache::CacheChanges& changes) final override {
69  saveDelta(changes.sub<TCache>());
70  }
71 
72  private:
74 
76  virtual void saveDelta(const CacheChangesType& changes) = 0;
77  };
78 }}
catapult::mongo::ExternalCacheStorageT
Typed interface for saving cache data to external storage.
Definition: ExternalCacheStorage.h:61
catapult::mongo::ExternalCacheStorageT::saveDelta
void saveDelta(const cache::CacheChanges &changes) final override
Saves cache changes to external storage.
Definition: ExternalCacheStorage.h:68
catapult::mongo::ExternalCacheStorage::~ExternalCacheStorage
virtual ~ExternalCacheStorage()=default
catapult::mongo::ExternalCacheStorage::saveDelta
virtual void saveDelta(const cache::CacheChanges &changes)=0
Saves cache changes to external storage.
catapult::mongo::ExternalCacheStorage::ExternalCacheStorage
ExternalCacheStorage(const std::string &name, size_t id)
Creates an external cache storage around name and id.
Definition: ExternalCacheStorage.h:31
catapult::cache::SingleCacheChangesT
Provides common view of single sub cache changes.
Definition: CacheChanges.h:59
functions.h
catapult::mongo::ExternalCacheStorage::name
const std::string & name() const
Gets the cache name.
Definition: ExternalCacheStorage.h:41
catapult::mongo::ExternalCacheStorage::id
size_t id() const
Gets the cache id.
Definition: ExternalCacheStorage.h:46
Id
NamespaceId Id
Definition: RootNamespaceHistorySerializer.cpp:100
catapult::cache::CacheChanges
Provides common view of aggregate cache changes.
Definition: CacheChanges.h:111
catapult::mongo::ExternalCacheStorage
Abstract class for saving cache data to external storage.
Definition: ExternalCacheStorage.h:28
catapult::mongo::ExternalCacheStorage::m_name
std::string m_name
Definition: ExternalCacheStorage.h:55
CacheChanges.h
Name
static constexpr auto Name
Definition: PtSynchronizer.cpp:31
catapult::mongo::ExternalCacheStorageT::ExternalCacheStorageT
ExternalCacheStorageT()
Creates an external cache storage.
Definition: ExternalCacheStorage.h:64
catapult::mongo::ExternalCacheStorage::m_id
size_t m_id
Definition: ExternalCacheStorage.h:56
catapult
Definition: AddressExtractionExtension.cpp:28