CatapultServer  v0.5.0.1 (Elephant)
AggregateTransactionPlugin.h
Go to the documentation of this file.
1 
21 #pragma once
23 #include "catapult/plugins.h"
24 #include <memory>
25 
26 namespace catapult {
27  namespace model {
28  class TransactionPlugin;
29  class TransactionRegistry;
30  }
31  namespace utils { class TimeSpan; }
32 }
33 
34 namespace catapult { namespace plugins {
35 
38  std::unique_ptr<model::TransactionPlugin> CreateAggregateTransactionPlugin(
39  const model::TransactionRegistry& transactionRegistry,
40  model::EntityType transactionType);
41 
45  std::unique_ptr<model::TransactionPlugin> CreateAggregateTransactionPlugin(
46  const model::TransactionRegistry& transactionRegistry,
47  const utils::TimeSpan& maxTransactionLifetime,
48  model::EntityType transactionType);
49 }}
catapult::model::AggregateCosignaturesNotification
Definition: AggregateNotifications.h:100
catapult::model::SourceChangeNotification
Notification of a source change.
Definition: Notifications.h:450
AggregateTransaction.h
catapult::plugins::CreateAggregateTransactionPlugin
std::unique_ptr< TransactionPlugin > CreateAggregateTransactionPlugin(const TransactionRegistry &transactionRegistry, EntityType transactionType)
Creates an aggregate transaction plugin around transactionRegistry for transactions with type transac...
Definition: AggregateTransactionPlugin.cpp:161
catapult::model::NotificationSubscriber
A notification subscriber.
Definition: NotificationSubscriber.h:27
catapult::model::TransactionPluginT::attributes
virtual TransactionAttributes attributes() const =0
Gets transaction dependent attributes.
catapult::model::EntityNotification
Notifies the arrival of an entity.
Definition: Notifications.h:156
NotificationSubscriber.h
catapult::model::EntityType
EntityType
Enumeration of entity types.
Definition: EntityType.h:43
catapult::model::VerifiableEntityHeader::Header_Size
static constexpr size_t Header_Size
Size of the VerifiableEntity part that can be skipped when signing/verifying.
Definition: VerifiableEntity.h:38
catapult::plugins::CreateAggregateTransactionPlugin
std::unique_ptr< TransactionPlugin > CreateAggregateTransactionPlugin(const TransactionRegistry &transactionRegistry, const utils::TimeSpan &maxTransactionLifetime, EntityType transactionType)
Definition: AggregateTransactionPlugin.cpp:167
catapult::utils::TimeSpan
Represents a time duration.
Definition: TimeSpan.h:30
AggregateTransactionPlugin.h
catapult::model
Definition: AddressExtractor.h:26
catapult::model::PluginRegistry::findPlugin
const TPlugin * findPlugin(TPluginKey type) const
Finds the plugin corresponding to type or nullptr if none is registered.
Definition: PluginRegistry.h:38
EntityType.h
catapult::model::TransactionPlugin::embeddedPlugin
virtual const EmbeddedTransactionPlugin & embeddedPlugin() const =0
Gets the corresponding embedded plugin if supportsEmbedding() is true.
m_transactionType
EntityType m_transactionType
Definition: AggregateTransactionPlugin.cpp:157
catapult::model::WeakEntityInfoT
Wrapper around a strongly typed entity and its associated metadata.
Definition: WeakEntityInfo.h:33
catapult::model::EmbeddedTransactionPlugin
An embedded transaction plugin.
Definition: TransactionPlugin.h:68
m_transactionRegistry
const TransactionRegistry & m_transactionRegistry
Definition: AggregateTransactionPlugin.cpp:155
plugins.h
PLUGIN_API
#define PLUGIN_API
Definition: plugins.h:30
catapult::model::WeakEntityInfoT::entity
constexpr const TEntity & entity() const
Gets the entity.
Definition: WeakEntityInfo.h:82
m_maxTransactionLifetime
utils::TimeSpan m_maxTransactionLifetime
Definition: AggregateTransactionPlugin.cpp:156
catapult::model::TransactionPlugin
A transaction plugin.
Definition: TransactionPlugin.h:75
catapult::model::WeakEntityInfoT::hash
constexpr const Hash256 & hash() const
Gets the entity hash.
Definition: WeakEntityInfo.h:92
TransactionPlugin.h
catapult::model::AggregateEmbeddedTransactionNotification
Notification of an embedded aggregate transaction with cosignatures.
Definition: AggregateNotifications.h:73
catapult::model::IsSizeValid
bool IsSizeValid(const AggregateTransaction &aggregate, const TransactionRegistry &registry)
Definition: AggregateTransaction.cpp:38
CATAPULT_THROW_RUNTIME_ERROR
#define CATAPULT_THROW_RUNTIME_ERROR(MESSAGE)
Macro used to throw a catapult runtime error.
Definition: exceptions.h:167
catapult::model::TransactionAttributes
Transaction dependent attributes.
Definition: TransactionPlugin.h:38
catapult::model::AccountPublicKeyNotification
Notification of use of an account public key.
Definition: Notifications.h:75
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::model::TransactionRegistry
A registry of transaction plugins.
Definition: TransactionPlugin.h:98
AggregateNotifications.h
catapult::model::SourceChangeNotification::SourceChangeType::Relative
catapult::model::NotificationSubscriber::notify
virtual void notify(const Notification &notification)=0
Notifies the subscriber of notification.
catapult::model::SignatureNotification
Notifies the presence of a signature.
Definition: Notifications.h:318
catapult::model::SizePrefixedEntity::Size
uint32_t Size
Entity size.
Definition: SizePrefixedEntity.h:33
catapult::utils::RawBuffer
BasicRawBuffer< const uint8_t > RawBuffer
A const binary buffer.
Definition: RawBuffer.h:62
catapult::model::AggregateTransaction
Binary layout for an aggregate transaction.
Definition: AggregateTransaction.h:47
catapult::model::Transaction
Binary layout for a transaction.
Definition: Transaction.h:32