CatapultServer
v0.5.0.1 (Elephant)
ExternalCacheStorage.h
Go to the documentation of this file.
1
21
#pragma once
22
#include "
catapult/cache/CacheChanges.h
"
23
#include "
catapult/functions.h
"
24
25
namespace
catapult
{
namespace
mongo {
26
28
class
ExternalCacheStorage
{
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>
61
class
ExternalCacheStorageT
:
public
ExternalCacheStorage
{
62
public
:
64
ExternalCacheStorageT
() :
ExternalCacheStorage
(TCache::
Name
, TCache::
Id
)
65
{}
66
67
public
:
68
void
saveDelta
(
const
cache::CacheChanges
& changes)
final
override
{
69
saveDelta
(changes.sub<TCache>());
70
}
71
72
private
:
73
using
CacheChangesType
=
cache::SingleCacheChangesT<typename TCache::CacheDeltaType, typename TCache::CacheValueType>
;
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
catapult-server
extensions
mongo
src
ExternalCacheStorage.h
Generated by
1.8.16