CatapultServer  v0.5.0.1 (Elephant)
MongoPluginManager.h
Go to the documentation of this file.
1 
21 #pragma once
23 #include "MongoReceiptPlugin.h"
24 #include "MongoStorageContext.h"
25 #include "MongoTransactionPlugin.h"
27 #include "catapult/plugins.h"
28 
29 namespace catapult { namespace mongo {
30 
33  public:
38  {}
39 
40  public:
43  return m_mongoContext;
44  }
45 
48  return m_networkIdentifier;
49  }
50 
51  public:
53  void addTransactionSupport(std::unique_ptr<MongoTransactionPlugin>&& pTransactionPlugin) {
54  m_transactionRegistry.registerPlugin(std::move(pTransactionPlugin));
55  }
56 
58  void addReceiptSupport(std::unique_ptr<MongoReceiptPlugin>&& pReceiptPlugin) {
59  m_receiptRegistry.registerPlugin(std::move(pReceiptPlugin));
60  }
61 
63  template<typename TStorage>
64  void addStorageSupport(std::unique_ptr<TStorage>&& pStorage) {
65  m_storageBuilder.add(std::move(pStorage));
66  }
67 
68  public:
71  return m_transactionRegistry;
72  }
73 
76  return m_receiptRegistry;
77  }
78 
80  std::unique_ptr<ExternalCacheStorage> createStorage() {
81  return m_storageBuilder.build();
82  }
83 
84  private:
90  };
91 }}
92 
94 extern "C" PLUGIN_API
MongoStorageContext.h
catapult::mongo::ExternalCacheStorageBuilder::build
std::unique_ptr< ExternalCacheStorage > build()
Builds an aggregate external cache storage.
Definition: ExternalCacheStorageBuilder.h:42
catapult::mongo::MongoPluginManager::m_receiptRegistry
MongoReceiptRegistry m_receiptRegistry
Definition: MongoPluginManager.h:88
catapult::mongo::MongoTransactionRegistry
A registry of mongo transaction plugins.
Definition: MongoTransactionPlugin.h:71
catapult::mongo::MongoPluginManager::createStorage
std::unique_ptr< ExternalCacheStorage > createStorage()
Creates an external cache storage.
Definition: MongoPluginManager.h:80
MongoTransactionPlugin.h
catapult::mongo::MongoPluginManager::addTransactionSupport
void addTransactionSupport(std::unique_ptr< MongoTransactionPlugin > &&pTransactionPlugin)
Adds support for a transaction described by pTransactionPlugin.
Definition: MongoPluginManager.h:53
catapult::mongo::MongoPluginManager::transactionRegistry
const MongoTransactionRegistry & transactionRegistry() const
Gets the transaction registry.
Definition: MongoPluginManager.h:70
catapult::mongo::MongoPluginManager::networkIdentifier
model::NetworkIdentifier networkIdentifier() const
Gets the network idenfifier.
Definition: MongoPluginManager.h:47
NetworkInfo.h
plugins.h
catapult::mongo::MongoPluginManager::addStorageSupport
void addStorageSupport(std::unique_ptr< TStorage > &&pStorage)
Adds support for an external cache storage described by pStorage.
Definition: MongoPluginManager.h:64
PLUGIN_API
#define PLUGIN_API
Definition: plugins.h:30
catapult::mongo::MongoPluginManager
A manager for registering mongo plugins.
Definition: MongoPluginManager.h:32
catapult::mongo::MongoPluginManager::mongoContext
MongoStorageContext & mongoContext() const
Gets the mongo storage context.
Definition: MongoPluginManager.h:42
catapult::mongo::MongoPluginManager::m_transactionRegistry
MongoTransactionRegistry m_transactionRegistry
Definition: MongoPluginManager.h:87
ExternalCacheStorageBuilder.h
catapult::mongo::MongoReceiptRegistry
A registry of mongo receipt plugins.
Definition: MongoReceiptPlugin.h:46
catapult::mongo::MongoPluginManager::m_networkIdentifier
model::NetworkIdentifier m_networkIdentifier
Definition: MongoPluginManager.h:86
RegisterMongoSubsystem
PLUGIN_API void RegisterMongoSubsystem(catapult::mongo::MongoPluginManager &manager)
Entry point for registering a dynamic module with manager.
Definition: MongoAccountLinkPlugin.cpp:25
catapult::mongo::MongoPluginManager::receiptRegistry
const MongoReceiptRegistry & receiptRegistry() const
Gets the receipt registry.
Definition: MongoPluginManager.h:75
catapult::model::NetworkIdentifier
NetworkIdentifier
Possible network identifiers.
Definition: NetworkInfo.h:45
catapult::mongo::MongoPluginManager::m_mongoContext
MongoStorageContext & m_mongoContext
Definition: MongoPluginManager.h:85
catapult::mongo::MongoPluginManager::m_storageBuilder
ExternalCacheStorageBuilder m_storageBuilder
Definition: MongoPluginManager.h:89
catapult::mongo::MongoPluginManager::addReceiptSupport
void addReceiptSupport(std::unique_ptr< MongoReceiptPlugin > &&pReceiptPlugin)
Adds support for a receipt described by pReceiptPlugin.
Definition: MongoPluginManager.h:58
catapult::mongo::ExternalCacheStorageBuilder
Builder for creating an aggregate external cache storage around external cache storages.
Definition: ExternalCacheStorageBuilder.h:28
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::mongo::MongoStorageContext
Context for creating a mongo storage.
Definition: MongoStorageContext.h:30
MongoReceiptPlugin.h
catapult::model::PluginRegistry::registerPlugin
void registerPlugin(std::unique_ptr< const TPlugin > &&pPlugin)
Registers pPlugin with the registry.
Definition: PluginRegistry.h:48
catapult::mongo::MongoPluginManager::MongoPluginManager
MongoPluginManager(MongoStorageContext &mongoContext, model::NetworkIdentifier networkIdentifier)
Creates a new plugin manager around mongoContext and networkIdentifier.
Definition: MongoPluginManager.h:35
catapult::mongo::ExternalCacheStorageBuilder::add
void add(std::unique_ptr< TStorage > &&pStorage)
Adds pStorage to the builder.
Definition: ExternalCacheStorageBuilder.h:32