CatapultServer  v0.5.0.1 (Elephant)
MongoReceiptPlugin.h
Go to the documentation of this file.
1 
21 #pragma once
24 #include "catapult/plugins.h"
25 #include <bsoncxx/builder/stream/document.hpp>
26 #include <mongocxx/client.hpp>
27 
28 namespace catapult { namespace model { struct Receipt; } }
29 
30 namespace catapult { namespace mongo {
31 
34  public:
35  virtual ~MongoReceiptPlugin() = default;
36 
37  public:
39  virtual model::ReceiptType type() const = 0;
40 
42  virtual void streamReceipt(bsoncxx::builder::stream::document& builder, const model::Receipt& receipt) const = 0;
43  };
44 
46  class MongoReceiptRegistry : public model::PluginRegistry<MongoReceiptPlugin, model::ReceiptType> {};
47 }}
catapult::mongo::MongoReceiptPlugin
A mongo receipt plugin.
Definition: MongoReceiptPlugin.h:33
catapult::mongo::MongoReceiptPlugin::~MongoReceiptPlugin
virtual ~MongoReceiptPlugin()=default
catapult::model::Receipt
Binary layout for a receipt entity.
Definition: Receipt.h:31
ReceiptType.h
catapult::model::ReceiptType
ReceiptType
Enumeration of receipt types.
Definition: ReceiptType.h:58
plugins.h
catapult::model::PluginRegistry
A registry of plugins.
Definition: PluginRegistry.h:30
catapult::mongo::MongoReceiptRegistry
A registry of mongo receipt plugins.
Definition: MongoReceiptPlugin.h:46
PluginRegistry.h
catapult::mongo::MongoReceiptPlugin::streamReceipt
virtual void streamReceipt(bsoncxx::builder::stream::document &builder, const model::Receipt &receipt) const =0
Streams a receipt to builder.
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::mongo::MongoReceiptPlugin::type
virtual model::ReceiptType type() const =0
Gets the receipt type.