CatapultServer
v0.5.0.1 (Elephant)
|
Go to the documentation of this file.
26 namespace catapult {
namespace mongo {
35 template<
typename TReceipt,
typename TStreamFunc>
37 return std::make_unique<ReceiptPluginT<TReceipt>>(type, streamFunc);
41 template<
typename TReceipt>
58 m_streamFunc(builder, static_cast<const TReceipt&>(receipt));
68 #define DEFINE_MONGO_RECEIPT_PLUGIN_FACTORY(NAME, STREAM) \
69 std::unique_ptr<MongoReceiptPlugin> Create##NAME##ReceiptMongoPlugin(model::ReceiptType type) { \
70 return MongoReceiptPluginFactory::Create<model::NAME##Receipt>(type, STREAM); \
A mongo receipt plugin.
Definition: MongoReceiptPlugin.h:33
Binary layout for a receipt entity.
Definition: Receipt.h:31
#define DEFINE_MONGO_RECEIPT_PLUGIN_FACTORY(NAME, STREAM)
Defines a mongo receipt plugin factory for NAME receipt using STREAM.
Definition: MongoReceiptPluginFactory.h:68
int64_t ToInt64(TBaseValue value)
Converts base value to int64_t.
Definition: MapperUtils.h:75
static std::unique_ptr< ReceiptPlugin > Create(model::ReceiptType type, TStreamFunc streamFunc)
Creates a receipt plugin around type and streamFunc.
Definition: MongoReceiptPluginFactory.h:36
ReceiptType
Enumeration of receipt types.
Definition: ReceiptType.h:58
StreamFunc m_streamFunc
Definition: MongoReceiptPluginFactory.h:63
std::unique_ptr< MongoReceiptPlugin > CreateInflationReceiptMongoPlugin(model::ReceiptType type)
Creates a mongo inflation receipt plugin around type.
void streamReceipt(bsoncxx::builder::stream::document &builder, const model::Receipt &receipt) const override
Streams a receipt to builder.
Definition: MongoReceiptPluginFactory.h:57
std::unique_ptr< MongoReceiptPlugin > CreateBalanceTransferReceiptMongoPlugin(model::ReceiptType type)
Creates a mongo balance transfer receipt plugin around type.
model::ReceiptType m_type
Definition: MongoReceiptPluginFactory.h:62
model::ReceiptType type() const override
Gets the receipt type.
Definition: MongoReceiptPluginFactory.h:53
std::unique_ptr< MongoReceiptPlugin > CreateBalanceChangeReceiptMongoPlugin(model::ReceiptType type)
Creates a mongo balance change receipt plugin around type.
Definition: AddressExtractionExtension.cpp:28
bsoncxx::types::b_binary ToBinary(const uint8_t *pData, size_t size)
Converts raw array (pData) of size elements into bson binary type.
Definition: MapperUtils.cpp:30
consumer< bsoncxx::builder::stream::document &, const TReceipt & > StreamFunc
Definition: MongoReceiptPluginFactory.h:44
Definition: MongoReceiptPluginFactory.h:42
ReceiptPluginT(model::ReceiptType type, const StreamFunc &streamFunc)
Definition: MongoReceiptPluginFactory.h:47
std::function< void(TArgs...)> consumer
A consumer function.
Definition: functions.h:35
Factory for creating mongo receipt plugins.
Definition: MongoReceiptPluginFactory.h:29