hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
iroha::ametsuchi::TemporaryWsvImpl Class Referenceabstract

#include "temporary_wsv_impl.hpp"

Inheritance diagram for iroha::ametsuchi::TemporaryWsvImpl:
Inheritance graph
Collaboration diagram for iroha::ametsuchi::TemporaryWsvImpl:
Collaboration graph

Classes

struct  SavepointWrapperImpl
 

Public Member Functions

 TemporaryWsvImpl (std::shared_ptr< CommandExecutor > command_executor, logger::LoggerManagerTreePtr log_manager)
 
expected::Result< void, validation::CommandErrorapply (const shared_model::interface::Transaction &transaction) override
 
std::unique_ptr< TemporaryWsv::SavepointWrappercreateSavepoint (const std::string &name) override
 
 ~TemporaryWsvImpl () override
 
DatabaseTransactiongetDbTransaction () override
 
- Public Member Functions inherited from iroha::ametsuchi::TemporaryWsv
virtual ~TemporaryWsv ()=default
 

Protected Member Functions

virtual expected::Result< void, validation::CommandErrorvalidateSignatures (const shared_model::interface::Transaction &transaction)=0
 

Protected Attributes

DatabaseTransactiontx_
 
std::unique_ptr< TransactionExecutortransaction_executor_
 
logger::LoggerManagerTreePtr log_manager_
 
logger::LoggerPtr log_
 

Friends

class StorageImpl
 

Constructor & Destructor Documentation

◆ TemporaryWsvImpl()

iroha::ametsuchi::TemporaryWsvImpl::TemporaryWsvImpl ( std::shared_ptr< CommandExecutor command_executor,
logger::LoggerManagerTreePtr  log_manager 
)
Here is the call graph for this function:

◆ ~TemporaryWsvImpl()

iroha::ametsuchi::TemporaryWsvImpl::~TemporaryWsvImpl ( )
override
Here is the call graph for this function:

Member Function Documentation

◆ apply()

expected::Result< void, validation::CommandError > iroha::ametsuchi::TemporaryWsvImpl::apply ( const shared_model::interface::Transaction transaction)
overridevirtual

Applies a transaction to current state

Parameters
transactionTransaction to be applied
Returns
True if transaction was successfully applied, false otherwise

Implements iroha::ametsuchi::TemporaryWsv.

Here is the call graph for this function:

◆ createSavepoint()

std::unique_ptr< TemporaryWsv::SavepointWrapper > iroha::ametsuchi::TemporaryWsvImpl::createSavepoint ( const std::string &  name)
overridevirtual

Create a savepoint for wsv state

Parameters
nameof savepoint to be created
Returns
RAII wrapper for savepoints

Implements iroha::ametsuchi::TemporaryWsv.

Here is the caller graph for this function:

◆ getDbTransaction()

DatabaseTransaction & iroha::ametsuchi::TemporaryWsvImpl::getDbTransaction ( )
overridevirtual

◆ validateSignatures()

virtual expected::Result<void, validation::CommandError> iroha::ametsuchi::TemporaryWsvImpl::validateSignatures ( const shared_model::interface::Transaction transaction)
protectedpure virtual

Verifies whether transaction has at least quorum signatures and they are a subset of creator account signatories

Implemented in iroha::ametsuchi::PostgresTemporaryWsvImpl, and iroha::ametsuchi::RocksDbTemporaryWsvImpl.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ StorageImpl

friend class StorageImpl
friend

Member Data Documentation

◆ log_

logger::LoggerPtr iroha::ametsuchi::TemporaryWsvImpl::log_
protected

◆ log_manager_

logger::LoggerManagerTreePtr iroha::ametsuchi::TemporaryWsvImpl::log_manager_
protected

◆ transaction_executor_

std::unique_ptr<TransactionExecutor> iroha::ametsuchi::TemporaryWsvImpl::transaction_executor_
protected

◆ tx_

DatabaseTransaction& iroha::ametsuchi::TemporaryWsvImpl::tx_
protected

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