CatapultServer  v0.5.0.1 (Elephant)
catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction > Class Template Reference
Inheritance diagram for catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction >:
Collaboration diagram for catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction >:

Public Member Functions

template<typename TStreamFunc , typename TStreamEmbeddedFunc >
 TransactionPluginT (TStreamFunc streamFunc, TStreamEmbeddedFunc streamEmbeddedFunc)
 
std::vector< bsoncxx::document::value > extractDependentDocuments (const model::Transaction &, const MongoTransactionMetadata &) const override
 
bool supportsEmbedding () const override
 true if this transaction type supports embedding. More...
 
const EmbeddedTransactionPluginembeddedPlugin () const override
 Gets the corresponding embedded plugin if supportsEmbedding() is true. More...
 
- Public Member Functions inherited from catapult::mongo::MongoTransactionPluginFactory::BasicTransactionPluginT< model::Transaction, TTransaction, TransactionPlugin >
 BasicTransactionPluginT (const StreamFunc &streamFunc)
 
model::EntityType type () const override
 
void streamTransaction (bsoncxx::builder::stream::document &builder, const model::Transaction &transaction) const override
 
- Public Member Functions inherited from catapult::mongo::MongoTransactionPluginT< model::Transaction >
virtual ~MongoTransactionPluginT ()=default
 

Private Attributes

std::unique_ptr< EmbeddedTransactionPluginm_pEmbeddedTransactionPlugin
 

Constructor & Destructor Documentation

◆ TransactionPluginT()

template<typename TTransaction , typename TEmbeddedTransaction >
template<typename TStreamFunc , typename TStreamEmbeddedFunc >
catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction >::TransactionPluginT ( TStreamFunc  streamFunc,
TStreamEmbeddedFunc  streamEmbeddedFunc 
)
inlineexplicit

Member Function Documentation

◆ embeddedPlugin()

template<typename TTransaction , typename TEmbeddedTransaction >
const EmbeddedTransactionPlugin& catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction >::embeddedPlugin ( ) const
inlineoverridevirtual

Gets the corresponding embedded plugin if supportsEmbedding() is true.

Implements catapult::mongo::MongoTransactionPlugin.

◆ extractDependentDocuments()

template<typename TTransaction , typename TEmbeddedTransaction >
std::vector<bsoncxx::document::value> catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction >::extractDependentDocuments ( const model::Transaction transaction,
const MongoTransactionMetadata metadata 
) const
inlineoverridevirtual

Extracts dependent documents from transaction given the associated metadata.

Note
The document representing the transaction is created separately via the streamTransaction() call.

Implements catapult::mongo::MongoTransactionPlugin.

◆ supportsEmbedding()

template<typename TTransaction , typename TEmbeddedTransaction >
bool catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction >::supportsEmbedding ( ) const
inlineoverridevirtual

true if this transaction type supports embedding.

Implements catapult::mongo::MongoTransactionPlugin.

Member Data Documentation

◆ m_pEmbeddedTransactionPlugin

template<typename TTransaction , typename TEmbeddedTransaction >
std::unique_ptr<EmbeddedTransactionPlugin> catapult::mongo::MongoTransactionPluginFactory::TransactionPluginT< TTransaction, TEmbeddedTransaction >::m_pEmbeddedTransactionPlugin
private

The documentation for this class was generated from the following file: