hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
iroha::ametsuchi Namespace Reference

Namespaces

 fmtstrings
 
 tx_cache_response_details
 
 tx_cache_status_responses
 The namespace contains concrete result types of transaction cache.
 

Classes

class  BlockIndex
 
class  BlockIndexImpl
 
class  BlockQuery
 
class  BlockQueryBase
 
class  BlockQueryFactory
 
class  BlockStorage
 
class  BlockStorageFactory
 
class  BurrowStorage
 
class  BurrowVmCaller
 
struct  CommandError
 
class  CommandExecutor
 
class  DatabaseTransaction
 
struct  DbError
 Db errors structure. More...
 
class  FailoverCallback
 
class  FailoverCallbackHolder
 
class  FlatFile
 
class  FlatFileBlockStorage
 
class  FlatFileBlockStorageFactory
 
class  Indexer
 
class  InMemoryBlockStorage
 
class  InMemoryBlockStorageFactory
 
class  KeyValueStorage
 
class  KTimesReconnectionStrategy
 
class  KTimesReconnectionStrategyFactory
 
class  MutableFactory
 
class  MutableStorage
 
class  MutableStorageImpl
 
struct  PaginationContext
 
class  PeerQuery
 
class  PeerQueryFactory
 
class  PeerQueryWsv
 
class  PgConnectionInit
 
struct  PoolWrapper
 
class  PostgresBlockQuery
 
class  PostgresBlockStorage
 
class  PostgresBlockStorageFactory
 
class  PostgresBurrowStorage
 
class  PostgresCommandExecutor
 
class  PostgresDbTransaction
 
class  PostgresIndexer
 
class  PostgresOptions
 
class  PostgresQueryExecutor
 
class  PostgresSettingQuery
 
class  PostgresSpecificQueryExecutor
 
class  PostgresTemporaryWsvImpl
 
class  PostgresWsvCommand
 
class  PostgresWsvQuery
 
class  QueryExecutor
 
class  QueryExecutorBase
 
class  QueryExecutorFactory
 
class  RdbConnectionInit
 
class  ReconnectionStrategy
 
class  ReconnectionStrategyFactory
 
class  RocksDbBlockQuery
 
class  RocksDbBlockStorage
 
class  RocksDbBlockStorageFactory
 
class  RocksDbCommandExecutor
 
class  RocksDbCommon
 
struct  RocksDBContext
 
class  RocksDBIndexer
 
class  RocksDbOptions
 
struct  RocksDBPort
 
class  RocksDbQueryExecutor
 
class  RocksDbSettingQuery
 
class  RocksDbSpecificQueryExecutor
 
class  RocksDbStorageImpl
 
class  RocksDbTemporaryWsvImpl
 
class  RocksDbTransaction
 
class  RocksDBWsvCommand
 
class  RocksDBWsvQuery
 
class  SettingQuery
 
class  SettingQueryFactory
 
class  SpecificQueryExecutor
 
class  Storage
 
class  StorageBase
 
class  StorageImpl
 
class  TemporaryFactory
 
class  TemporaryWsv
 
class  TemporaryWsvImpl
 
class  TransactionExecutor
 
struct  TxExecutionError
 
class  TxPresenceCache
 
class  TxPresenceCacheImpl
 
class  VmCaller
 
class  WsvCommand
 
class  WsvQuery
 
class  WsvRestorer
 
class  WsvRestorerImpl
 

Typedefs

using CommandResult = expected::Result< void, CommandError >
 
using CommitResult = iroha::expected::Result< std::shared_ptr< const iroha::LedgerState >, std::string >
 
using QueryErrorType = shared_model::interface::QueryResponseFactory::ErrorQueryType
 
using ErrorQueryResponse = shared_model::interface::ErrorQueryResponse
 
using QueryErrorMessageType = ErrorQueryResponse::ErrorMessageType
 
using QueryErrorCodeType = ErrorQueryResponse::ErrorCodeType
 
template<std::size_t N, typename T >
using element_t = typename boost::tuples::element< N, T >::type
 tuple element type shortcut More...
 
template<class Tuple1 , class Tuple2 >
using concat = decltype(concat_impl< Tuple1, Tuple2 >(std::make_index_sequence< length_v< std::decay_t< Tuple1 > >>{}, std::make_index_sequence< length_v< std::decay_t< Tuple2 > >>{}))
 tuple with types from two given tuples More...
 
using QueryExecutorResult = std::unique_ptr< shared_model::interface::QueryResponse >
 
using TxCacheStatusType = std::variant< tx_cache_status_responses::Committed, tx_cache_status_responses::Rejected, tx_cache_status_responses::Missing >
 Sum type of all possible concrete responses from the tx cache. More...
 
using WsvError = std::string
 
using WsvCommandResult = expected::Result< void, WsvError >
 

Enumerations

enum  DbErrorCode {
  kOk = 0, kErrorNoPermissions = 2, kNotFound = 3, kNoAccount = 3,
  kMustNotExist = 4, kNoRoles = 4, kInvalidPagination = 4, kInvalidStatus = 12,
  kInitializeFailed = 15, kOperationFailed = 16
}
 
enum  kDbOperation { kDbOperation::kGet, kDbOperation::kCheck, kDbOperation::kPut, kDbOperation::kDel }
 
enum  kDbEntry { kDbEntry::kMustExist, kDbEntry::kMustNotExist, kDbEntry::kCanExist }
 

Functions

std::string_view getDomainFromName (std::string_view account_id)
 
std::vector< std::string_view > splitId (std::string_view id)
 
std::vector< std::string_view > split (std::string_view str, std::string_view delims)
 
template<size_t C>
std::array< std::string_view, C > staticSplitId (std::string_view const str, std::string_view const delims="@#")
 
template<typename Function >
WsvCommandResult execute (soci::statement &st, Function &&error)
 
template<typename T , typename... Args>
expected::Result< T, DbErrormakeError (uint32_t code, char const *format, Args &&... args)
 
template<typename T >
expected::Result< T, DbErrormakeError (uint32_t code, DbError &&e)
 
template<typename F , typename S , typename... Args>
auto enumerateKeys (RocksDbCommon &rdb, F &&func, S const &strformat, Args &&... args)
 Enumerating through all the keys matched to prefix without reading value. More...
 
template<typename F >
auto makeKVLambda (F &&func)
 
template<typename F , typename S , typename... Args>
auto enumerateKeysAndValues (RocksDbCommon &rdb, F &&func, S const &strformat, Args &&... args)
 Enumerating through all the keys matched to prefix and read the value. More...
 
template<typename F , typename S , typename... Args>
auto enumerateKeysAndValues (RocksDbCommon &rdb, F &&func, std::unique_ptr< rocksdb::Iterator > &it, S const &strformat, Args &&... args)
 
template<typename F >
expected::Result< void, DbErrormustNotExist (rocksdb::Status const &status, F &&op_formatter)
 
template<typename F >
expected::Result< void, DbErrormustExist (rocksdb::Status const &status, F &&op_formatter)
 
template<typename F >
expected::Result< void, DbErrorcanExist (rocksdb::Status const &status, F &&op_formatter)
 
template<kDbEntry kSc, typename F >
expected::Result< void, DbErrorcheckStatus (rocksdb::Status status, F &&op_formatter)
 
template<kDbOperation kOp, kDbEntry kSc, typename OperationDescribtionF , typename... Args>
expected::Result< rocksdb::Status, DbErrorexecuteOperation (RocksDbCommon &common, OperationDescribtionF &&op_formatter, Args &&... args)
 
template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, uint64_t>::value>>
std::optional< uint64_t > loadValue (RocksDbCommon &common, expected::Result< rocksdb::Status, DbError > const &status)
 
template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, std::string_view>::value>>
std::optional< std::string_view > loadValue (RocksDbCommon &common, expected::Result< rocksdb::Status, DbError > const &status)
 
template<kDbOperation kOp, typename T , typename = std::enable_if_t< std::is_same<T, shared_model::interface::RolePermissionSet>::value>>
std::optional< shared_model::interface::RolePermissionSetloadValue (RocksDbCommon &common, expected::Result< rocksdb::Status, DbError > const &status)
 
template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, IrohadVersion>::value>>
std::optional< IrohadVersionloadValue (RocksDbCommon &common, expected::Result< rocksdb::Status, DbError > const &status)
 
template<kDbOperation kOp, typename T , typename = std::enable_if_t< std::is_same<T, shared_model::interface::Amount>::value>>
std::optional< shared_model::interface::AmountloadValue (RocksDbCommon &common, expected::Result< rocksdb::Status, DbError > const &status)
 
template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same< T, shared_model::interface::GrantablePermissionSet>::value>>
std::optional< shared_model::interface::GrantablePermissionSetloadValue (RocksDbCommon &common, expected::Result< rocksdb::Status, DbError > const &status)
 
template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, bool>::value>>
std::optional< bool > loadValue (RocksDbCommon &common, expected::Result< rocksdb::Status, DbError > const &status)
 
template<typename RetT , kDbOperation kOp, kDbEntry kSc, typename... Args>
expected::Result< std::optional< RetT >, DbErrordbCall (RocksDbCommon &common, Args &&... args)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforAccountDetailsCount (RocksDbCommon &common, std::string_view account, std::string_view domain)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< IrohadVersion >, DbErrorforStoreVersion (RocksDbCommon &common)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< IrohadVersion >, DbErrorforWSVVersion (RocksDbCommon &common)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforBlock (RocksDbCommon &common, uint64_t height)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforBlocksTotalCount (RocksDbCommon &common)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforQuorum (RocksDbCommon &common, std::string_view account, std::string_view domain)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforTxsTotalCount (RocksDbCommon &common, std::string_view account_id)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforTxsTotalCount (RocksDbCommon &common)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforDomainsTotalCount (RocksDbCommon &common)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
auto forAccount (RocksDbCommon &common, std::string_view account, std::string_view domain)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< shared_model::interface::RolePermissionSet >, DbErrorforRole (RocksDbCommon &common, std::string_view role)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforPeersCount (RocksDbCommon &common)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforTransactionStatus (RocksDbCommon &common, std::string_view tx_hash)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforTransactionByPosition (RocksDbCommon &common, std::string_view account, uint64_t ts, uint64_t height, uint64_t index)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforTransactionByTimestamp (RocksDbCommon &common, std::string_view account, uint64_t ts, uint64_t height, uint64_t index)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforSettings (RocksDbCommon &common, std::string_view key)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforPeerAddress (RocksDbCommon &common, std::string_view pubkey)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforPeerTLS (RocksDbCommon &common, std::string_view pubkey)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< uint64_t >, DbErrorforAsset (RocksDbCommon &common, std::string_view asset, std::string_view domain)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforTopBlockInfo (RocksDbCommon &common)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< bool >, DbErrorforAccountRole (RocksDbCommon &common, std::string_view account, std::string_view domain, std::string_view role)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforAccountDetail (RocksDbCommon &common, std::string_view account, std::string_view domain, std::string_view creator_id, std::string_view key)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< bool >, DbErrorforSignatory (RocksDbCommon &common, std::string_view account, std::string_view domain, std::string_view pubkey)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result< std::optional< std::string_view >, DbErrorforDomain (RocksDbCommon &common, std::string_view domain)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kCanExist>
expected::Result< std::optional< uint64_t >, DbErrorforAccountAssetSize (RocksDbCommon &common, std::string_view account, std::string_view domain)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kCanExist>
expected::Result< std::optional< shared_model::interface::Amount >, DbErrorforAccountAsset (RocksDbCommon &common, std::string_view account, std::string_view domain, std::string_view asset)
 
template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kCanExist>
expected::Result< std::optional< shared_model::interface::GrantablePermissionSet >, DbErrorforGrantablePermissions (RocksDbCommon &common, std::string_view account, std::string_view domain, std::string_view grantee_account_id)
 
expected::Result< shared_model::interface::RolePermissionSet, DbErroraccountPermissions (RocksDbCommon &common, std::string_view account, std::string_view domain)
 
expected::Result< void, DbErrorcheckPermissions (shared_model::interface::RolePermissionSet const &permissions, shared_model::interface::permissions::Role const to_check)
 
expected::Result< void, DbErrorcheckPermissions (std::string_view domain_id, std::string_view creator_domain_id, shared_model::interface::RolePermissionSet const &permissions, shared_model::interface::permissions::Role const all, shared_model::interface::permissions::Role const domain)
 
expected::Result< void, DbErrorcheckGrantablePermissions (shared_model::interface::RolePermissionSet const &permissions, shared_model::interface::GrantablePermissionSet const &grantable_permissions, shared_model::interface::permissions::Grantable const granted)
 
expected::Result< void, DbErrorcheckPermissions (shared_model::interface::RolePermissionSet const &permissions, shared_model::interface::GrantablePermissionSet const &grantable_permissions, shared_model::interface::permissions::Role const role, shared_model::interface::permissions::Grantable const granted)
 
expected::Result< void, DbErrorcheckPermissions (std::string_view domain_id, std::string_view creator_domain_id, std::string_view qry_account_id, std::string_view creator_id, shared_model::interface::RolePermissionSet const &permissions, shared_model::interface::permissions::Role const all, shared_model::interface::permissions::Role const domain, shared_model::interface::permissions::Role const my)
 
expected::Result< std::string, DbErroraggregateAccountDetails (RocksDbCommon &common, std::string_view account, std::string_view domain, uint64_t &total, std::string_view writer_filter=std::string_view{}, std::string_view key_filter=std::string_view{}, std::optional< PaginationContext > pagination=std::nullopt, std::string *next_writer=nullptr, std::string *next_key=nullptr)
 
expected::Result< void, DbErrordropWSV (RocksDbCommon &common)
 
template<typename Func , typename Error >
WsvCommandResult execute (std::shared_ptr< RocksDBContext > &context, Func &&func, Error &&error)
 
template<typename T , typename Func , typename Error >
boost::optional< T > execute (std::shared_ptr< RocksDBContext > &context, logger::LoggerPtr &log, Func &&func, Error &&error)
 
template<typename ParamType , typename Function >
void processSoci (soci::statement &st, soci::indicator &ind, ParamType &row, Function f)
 
template<class Tuple1 , class Tuple2 , std::size_t... Is, std::size_t... Js>
auto concat_impl (std::index_sequence< Is... >, std::index_sequence< Js... >) -> boost::tuple< element_t< Is, std::decay_t< Tuple1 >>..., element_t< Js, std::decay_t< Tuple2 >>... >
 index sequence helper for concat More...
 
template<typename F , std::size_t... Is>
decltype(auto) constexpr index_apply_impl (F &&f, std::index_sequence< Is... >)
 index sequence helper for index_apply More...
 
template<size_t N, typename F >
decltype(auto) constexpr index_apply (F &&f)
 apply F to an integer sequence [0, N) More...
 
template<typename Tuple , typename F >
decltype(auto) constexpr apply (Tuple &&t, F &&f)
 apply F to Tuple More...
 
template<typename R , typename T >
constexpr auto viewQuery (T &&t)
 view first length_v<R> elements of T without copying More...
 
template<typename R , typename T >
constexpr auto viewPermissions (T &&t)
 view last length_v<R> elements of T without copying More...
 
template<typename T >
constexpr auto rebind (T &&t)
 map tuple<optional<Ts>...> to optional<tuple<Ts...>> More...
 
template<typename C , typename T , typename F >
auto mapValues (T &t, F &&f)
 
template<typename C , typename T , typename F >
boost::optional< C > flatMapValues (T &t, F &&f)
 
template<typename R , typename T , typename F >
auto flatMapValue (T &t, F &&f)
 
bool isAlreadyProcessed (const TxCacheStatusType &tx_status) noexcept
 
tx_cache_response_details::HashType getHash (const TxCacheStatusType &status) noexcept
 

Variables

const std::string kRootRolePermStr
 
template<typename T >
constexpr std::size_t length_v = boost::tuples::length<T>::value
 tuple length shortcut More...
 
const shared_model::interface::types::SettingKeyType kMaxDescriptionSizeKey = "MaxDescriptionSize"
 

Detailed Description

Copyright Soramitsu Co., Ltd. All Rights Reserved. SPDX-License-Identifier: Apache-2.0

Typedef Documentation

◆ CommandResult

If command is successful, we assume changes are made, and do not need anything If something goes wrong, Result will contain Error with additional information

◆ CommitResult

using iroha::ametsuchi::CommitResult = typedef iroha::expected::Result<std::shared_ptr<const iroha::LedgerState>, std::string>

◆ concat

template<class Tuple1 , class Tuple2 >
using iroha::ametsuchi::concat = typedef decltype(concat_impl<Tuple1, Tuple2>( std::make_index_sequence<length_v<std::decay_t<Tuple1> >>{}, std::make_index_sequence<length_v<std::decay_t<Tuple2> >>{}))

tuple with types from two given tuples

◆ element_t

template<std::size_t N, typename T >
using iroha::ametsuchi::element_t = typedef typename boost::tuples::element<N, T>::type

tuple element type shortcut

◆ ErrorQueryResponse

◆ QueryErrorCodeType

◆ QueryErrorMessageType

◆ QueryErrorType

◆ QueryExecutorResult

◆ TxCacheStatusType

Sum type of all possible concrete responses from the tx cache.

◆ WsvCommandResult

If command is successful, we assume changes are made, and do not need anything If something goes wrong, Result will contain WsvError with additional information

◆ WsvError

using iroha::ametsuchi::WsvError = typedef std::string

Error returned by wsv command. It is a string which contains what action has failed (e.g, "failed to insert role"), and an error which was provided by underlying implementation (e.g, database exception info)

Enumeration Type Documentation

◆ DbErrorCode

Enumerator
kOk 
kErrorNoPermissions 
kNotFound 
kNoAccount 
kMustNotExist 
kNoRoles 
kInvalidPagination 
kInvalidStatus 
kInitializeFailed 
kOperationFailed 

◆ kDbEntry

DB operation result assertion. If the result is not matches the assertion than error will be generated

Enumerator
kMustExist 
kMustNotExist 

entry must exist and data must be accessible

kCanExist 

entry must NOT exist. If it exist than error will be generated entry can exist or not. kDbOperation::kGet will return data only if present, otherwise null-data

◆ kDbOperation

Supported operations.

Enumerator
kGet 
kCheck 

read the value by the key

kPut 

check the entry exists by the key

kDel 

put the value with the key

delete entry by the key

Function Documentation

◆ accountPermissions()

expected::Result<shared_model::interface::RolePermissionSet, DbError> iroha::ametsuchi::accountPermissions ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain 
)
inline

Get all permissions for the account

Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
Returns
permission set for the account

TODO(iceseer): remove this vector(some kind of stack allocator) or to store key prefix value and make another db call inside lambda

Here is the call graph for this function:
Here is the caller graph for this function:

◆ aggregateAccountDetails()

expected::Result<std::string, DbError> iroha::ametsuchi::aggregateAccountDetails ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain,
uint64_t &  total,
std::string_view  writer_filter = std::string_view{},
std::string_view  key_filter = std::string_view{},
std::optional< PaginationContext pagination = std::nullopt,
std::string *  next_writer = nullptr,
std::string *  next_key = nullptr 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ apply()

template<typename Tuple , typename F >
decltype(auto) constexpr iroha::ametsuchi::apply ( Tuple &&  t,
F &&  f 
)

apply F to Tuple

Here is the caller graph for this function:

◆ canExist()

template<typename F >
expected::Result<void, DbError> iroha::ametsuchi::canExist ( rocksdb::Status const &  status,
F &&  op_formatter 
)
inline
Here is the caller graph for this function:

◆ checkGrantablePermissions()

expected::Result<void, DbError> iroha::ametsuchi::checkGrantablePermissions ( shared_model::interface::RolePermissionSet const &  permissions,
shared_model::interface::GrantablePermissionSet const &  grantable_permissions,
shared_model::interface::permissions::Grantable const  granted 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkPermissions() [1/4]

expected::Result<void, DbError> iroha::ametsuchi::checkPermissions ( shared_model::interface::RolePermissionSet const &  permissions,
shared_model::interface::permissions::Role const  to_check 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkPermissions() [2/4]

expected::Result<void, DbError> iroha::ametsuchi::checkPermissions ( std::string_view  domain_id,
std::string_view  creator_domain_id,
shared_model::interface::RolePermissionSet const &  permissions,
shared_model::interface::permissions::Role const  all,
shared_model::interface::permissions::Role const  domain 
)
inline
Here is the call graph for this function:

◆ checkPermissions() [3/4]

expected::Result<void, DbError> iroha::ametsuchi::checkPermissions ( shared_model::interface::RolePermissionSet const &  permissions,
shared_model::interface::GrantablePermissionSet const &  grantable_permissions,
shared_model::interface::permissions::Role const  role,
shared_model::interface::permissions::Grantable const  granted 
)
inline
Here is the call graph for this function:

◆ checkPermissions() [4/4]

expected::Result<void, DbError> iroha::ametsuchi::checkPermissions ( std::string_view  domain_id,
std::string_view  creator_domain_id,
std::string_view  qry_account_id,
std::string_view  creator_id,
shared_model::interface::RolePermissionSet const &  permissions,
shared_model::interface::permissions::Role const  all,
shared_model::interface::permissions::Role const  domain,
shared_model::interface::permissions::Role const  my 
)
inline
Here is the call graph for this function:

◆ checkStatus()

template<kDbEntry kSc, typename F >
expected::Result<void, DbError> iroha::ametsuchi::checkStatus ( rocksdb::Status  status,
F &&  op_formatter 
)
inline
Here is the call graph for this function:

◆ concat_impl()

template<class Tuple1 , class Tuple2 , std::size_t... Is, std::size_t... Js>
auto iroha::ametsuchi::concat_impl ( std::index_sequence< Is... >  ,
std::index_sequence< Js... >   
) -> boost::tuple< element_t< Is, std::decay_t< Tuple1 >>..., element_t< Js, std::decay_t< Tuple2 >>... >

index sequence helper for concat

◆ dbCall()

template<typename RetT , kDbOperation kOp, kDbEntry kSc, typename... Args>
expected::Result<std::optional<RetT>, DbError> iroha::ametsuchi::dbCall ( RocksDbCommon common,
Args &&...  args 
)
inline

◆ dropWSV()

expected::Result<void, DbError> iroha::ametsuchi::dropWSV ( RocksDbCommon common)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ enumerateKeys()

template<typename F , typename S , typename... Args>
auto iroha::ametsuchi::enumerateKeys ( RocksDbCommon rdb,
F &&  func,
S const &  strformat,
Args &&...  args 
)
inline

Enumerating through all the keys matched to prefix without reading value.

Here is the caller graph for this function:

◆ enumerateKeysAndValues() [1/2]

template<typename F , typename S , typename... Args>
auto iroha::ametsuchi::enumerateKeysAndValues ( RocksDbCommon rdb,
F &&  func,
S const &  strformat,
Args &&...  args 
)
inline

Enumerating through all the keys matched to prefix and read the value.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ enumerateKeysAndValues() [2/2]

template<typename F , typename S , typename... Args>
auto iroha::ametsuchi::enumerateKeysAndValues ( RocksDbCommon rdb,
F &&  func,
std::unique_ptr< rocksdb::Iterator > &  it,
S const &  strformat,
Args &&...  args 
)
inline

Enumerating through the keys, begins from it and matched to prefix and read the value

Here is the call graph for this function:

◆ execute() [1/3]

template<typename T , typename Func , typename Error >
boost::optional<T> iroha::ametsuchi::execute ( std::shared_ptr< RocksDBContext > &  context,
logger::LoggerPtr log,
Func &&  func,
Error &&  error 
)

◆ execute() [2/3]

template<typename Func , typename Error >
WsvCommandResult iroha::ametsuchi::execute ( std::shared_ptr< RocksDBContext > &  context,
Func &&  func,
Error &&  error 
)
Here is the call graph for this function:

◆ execute() [3/3]

template<typename Function >
WsvCommandResult iroha::ametsuchi::execute ( soci::statement &  st,
Function &&  error 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ executeOperation()

template<kDbOperation kOp, kDbEntry kSc, typename OperationDescribtionF , typename... Args>
expected::Result<rocksdb::Status, DbError> iroha::ametsuchi::executeOperation ( RocksDbCommon common,
OperationDescribtionF &&  op_formatter,
Args &&...  args 
)
inline
Here is the call graph for this function:

◆ flatMapValue()

template<typename R , typename T , typename F >
auto iroha::ametsuchi::flatMapValue ( T &  t,
F &&  f 
)
Here is the call graph for this function:

◆ flatMapValues()

template<typename C , typename T , typename F >
boost::optional<C> iroha::ametsuchi::flatMapValues ( T &  t,
F &&  f 
)
Here is the call graph for this function:

◆ forAccount()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
auto iroha::ametsuchi::forAccount ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain 
)
inline

Access to account folder

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
Returns
operation result

◆ forAccountAsset()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kCanExist>
expected::Result<std::optional<shared_model::interface::Amount>, DbError> iroha::ametsuchi::forAccountAsset ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain,
std::string_view  asset 
)
inline

Access to account assets file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
assetname
Returns
operation result

◆ forAccountAssetSize()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kCanExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forAccountAssetSize ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain 
)
inline

Access to account size file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
Returns
operation result

◆ forAccountDetail()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forAccountDetail ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain,
std::string_view  creator_id,
std::string_view  key 
)
inline

Access to account details file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
creator_domainid
creator_accountname
keyname of the details entry
Returns
operation result

◆ forAccountDetailsCount()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forAccountDetailsCount ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain 
)
inline

Access to account details count.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
Returns
operation result

◆ forAccountRole()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<bool>, DbError> iroha::ametsuchi::forAccountRole ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain,
std::string_view  role 
)
inline

Access to account role file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
roleid
Returns
operation result

◆ forAsset()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forAsset ( RocksDbCommon common,
std::string_view  asset,
std::string_view  domain 
)
inline

Access to asset file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainis
assetname
Returns
operation result

◆ forBlock()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forBlock ( RocksDbCommon common,
uint64_t  height 
)
inline

Access to Stored blocks data.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
heightof the block
Returns
operation result

◆ forBlocksTotalCount()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forBlocksTotalCount ( RocksDbCommon common)
inline

Access to Block store size.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Returns
operation result

◆ forDomain()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forDomain ( RocksDbCommon common,
std::string_view  domain 
)
inline

Access to domain file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
Returns
operation result

◆ forDomainsTotalCount()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forDomainsTotalCount ( RocksDbCommon common)
inline

Access to domains total count.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Returns
operation result

◆ forGrantablePermissions()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kCanExist>
expected::Result< std::optional<shared_model::interface::GrantablePermissionSet>, DbError> iroha::ametsuchi::forGrantablePermissions ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain,
std::string_view  grantee_account_id 
)
inline

Access to account grantable permissions

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
grantee_domainid
grantee_accountname
Returns
operation result
Here is the caller graph for this function:

◆ forPeerAddress()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forPeerAddress ( RocksDbCommon common,
std::string_view  pubkey 
)
inline

Access to peer address file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
pubkeypublic key of the peer
Returns
operation result

◆ forPeersCount()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forPeersCount ( RocksDbCommon common)
inline

Access to peers count file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Returns
operation result

◆ forPeerTLS()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forPeerTLS ( RocksDbCommon common,
std::string_view  pubkey 
)
inline

Access to peer TLS file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
pubkeyis a public key of the peer
Returns
operation result

◆ forQuorum()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forQuorum ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain 
)
inline

Access to account quorum file.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
Returns
operation result

◆ forRole()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected:: Result<std::optional<shared_model::interface::RolePermissionSet>, DbError> iroha::ametsuchi::forRole ( RocksDbCommon common,
std::string_view  role 
)
inline

Access to role file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
roleid
Returns
operation result

◆ forSettings()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forSettings ( RocksDbCommon common,
std::string_view  key 
)
inline

Access to setting file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
keysetting name
Returns
operation result

◆ forSignatory()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<bool>, DbError> iroha::ametsuchi::forSignatory ( RocksDbCommon common,
std::string_view  account,
std::string_view  domain,
std::string_view  pubkey 
)
inline

Access to account signatory file

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
domainid
accountname
pubkeypublic key of the signatory
Returns
operation result

◆ forStoreVersion()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<IrohadVersion>, DbError> iroha::ametsuchi::forStoreVersion ( RocksDbCommon common)
inline

Access to store version.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Returns
operation result

◆ forTopBlockInfo()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forTopBlockInfo ( RocksDbCommon common)

Access to top blocks height and hash

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Template Parameters
Fcallback with operation result
Parameters
common
See also
RocksDbCommon
Parameters
funccallback with the result
Returns
determined by the callback

◆ forTransactionByPosition()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forTransactionByPosition ( RocksDbCommon common,
std::string_view  account,
uint64_t  ts,
uint64_t  height,
uint64_t  index 
)
inline

Access to transactions by position

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
accountname
heightof the block
indexof the transaction
Returns
operation result
Here is the caller graph for this function:

◆ forTransactionByTimestamp()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forTransactionByTimestamp ( RocksDbCommon common,
std::string_view  account,
uint64_t  ts,
uint64_t  height,
uint64_t  index 
)
inline

Access to transactions by timestamp

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
accountname
tsis a transaction timestamp
Returns
operation result

◆ forTransactionStatus()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<std::string_view>, DbError> iroha::ametsuchi::forTransactionStatus ( RocksDbCommon common,
std::string_view  tx_hash 
)
inline

Access to transactions statuses

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
tx_hashis a current transaction hash
Returns
operation result

◆ forTxsTotalCount() [1/2]

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forTxsTotalCount ( RocksDbCommon common,
std::string_view  account_id 
)
inline

Access to account's txs total count.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Parameters
account_idname
Returns
operation result

◆ forTxsTotalCount() [2/2]

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<uint64_t>, DbError> iroha::ametsuchi::forTxsTotalCount ( RocksDbCommon common)
inline

Access to all txs total count.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Returns
operation result

◆ forWSVVersion()

template<kDbOperation kOp = kDbOperation::kGet, kDbEntry kSc = kDbEntry::kMustExist>
expected::Result<std::optional<IrohadVersion>, DbError> iroha::ametsuchi::forWSVVersion ( RocksDbCommon common)
inline

Access to WSV version.

Template Parameters
kOp
See also
kDbOperation
Template Parameters
kSc
See also
kDbEntry
Parameters
common
See also
RocksDbCommon
Returns
operation result

◆ getDomainFromName()

std::string_view iroha::ametsuchi::getDomainFromName ( std::string_view  account_id)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getHash()

tx_cache_response_details::HashType iroha::ametsuchi::getHash ( const TxCacheStatusType status)
inlinenoexcept

Retrieve hash from status

Parameters
status- transaction status obtained from cache
Returns
hash of the transaction
Here is the caller graph for this function:

◆ index_apply()

template<size_t N, typename F >
decltype(auto) constexpr iroha::ametsuchi::index_apply ( F &&  f)

apply F to an integer sequence [0, N)

Here is the call graph for this function:

◆ index_apply_impl()

template<typename F , std::size_t... Is>
decltype(auto) constexpr iroha::ametsuchi::index_apply_impl ( F &&  f,
std::index_sequence< Is... >   
)

index sequence helper for index_apply

Here is the caller graph for this function:

◆ isAlreadyProcessed()

bool iroha::ametsuchi::isAlreadyProcessed ( const TxCacheStatusType tx_status)
inlinenoexcept

Determine if transaction was already processed by its status

Parameters
tx_status- status obtained from transaction cache
Returns
true if transaction was committed or rejected
Here is the caller graph for this function:

◆ loadValue() [1/7]

template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, uint64_t>::value>>
std::optional<uint64_t> iroha::ametsuchi::loadValue ( RocksDbCommon common,
expected::Result< rocksdb::Status, DbError > const &  status 
)
inline
Here is the call graph for this function:

◆ loadValue() [2/7]

template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, std::string_view>::value>>
std::optional<std::string_view> iroha::ametsuchi::loadValue ( RocksDbCommon common,
expected::Result< rocksdb::Status, DbError > const &  status 
)
inline
Here is the call graph for this function:

◆ loadValue() [3/7]

template<kDbOperation kOp, typename T , typename = std::enable_if_t< std::is_same<T, shared_model::interface::RolePermissionSet>::value>>
std::optional<shared_model::interface::RolePermissionSet> iroha::ametsuchi::loadValue ( RocksDbCommon common,
expected::Result< rocksdb::Status, DbError > const &  status 
)
inline
Here is the call graph for this function:

◆ loadValue() [4/7]

template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, IrohadVersion>::value>>
std::optional<IrohadVersion> iroha::ametsuchi::loadValue ( RocksDbCommon common,
expected::Result< rocksdb::Status, DbError > const &  status 
)
inline
Here is the call graph for this function:

◆ loadValue() [5/7]

template<kDbOperation kOp, typename T , typename = std::enable_if_t< std::is_same<T, shared_model::interface::Amount>::value>>
std::optional<shared_model::interface::Amount> iroha::ametsuchi::loadValue ( RocksDbCommon common,
expected::Result< rocksdb::Status, DbError > const &  status 
)
inline
Here is the call graph for this function:

◆ loadValue() [6/7]

template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same< T, shared_model::interface::GrantablePermissionSet>::value>>
std::optional<shared_model::interface::GrantablePermissionSet> iroha::ametsuchi::loadValue ( RocksDbCommon common,
expected::Result< rocksdb::Status, DbError > const &  status 
)
inline
Here is the call graph for this function:

◆ loadValue() [7/7]

template<kDbOperation kOp, typename T , typename = std::enable_if_t<std::is_same<T, bool>::value>>
std::optional<bool> iroha::ametsuchi::loadValue ( RocksDbCommon common,
expected::Result< rocksdb::Status, DbError > const &  status 
)
inline

◆ makeError() [1/2]

template<typename T , typename... Args>
expected::Result<T, DbError> iroha::ametsuchi::makeError ( uint32_t  code,
char const *  format,
Args &&...  args 
)
inline
Here is the call graph for this function:

◆ makeError() [2/2]

template<typename T >
expected::Result<T, DbError> iroha::ametsuchi::makeError ( uint32_t  code,
DbError &&  e 
)
inline
Here is the caller graph for this function:

◆ makeKVLambda()

template<typename F >
auto iroha::ametsuchi::makeKVLambda ( F &&  func)
inline
Here is the caller graph for this function:

◆ mapValues()

template<typename C , typename T , typename F >
auto iroha::ametsuchi::mapValues ( T &  t,
F &&  f 
)
Here is the call graph for this function:

◆ mustExist()

template<typename F >
expected::Result<void, DbError> iroha::ametsuchi::mustExist ( rocksdb::Status const &  status,
F &&  op_formatter 
)
inline
Here is the caller graph for this function:

◆ mustNotExist()

template<typename F >
expected::Result<void, DbError> iroha::ametsuchi::mustNotExist ( rocksdb::Status const &  status,
F &&  op_formatter 
)
inline
Here is the caller graph for this function:

◆ processSoci()

template<typename ParamType , typename Function >
void iroha::ametsuchi::processSoci ( soci::statement &  st,
soci::indicator &  ind,
ParamType &  row,
Function  f 
)
inline

◆ rebind()

template<typename T >
constexpr auto iroha::ametsuchi::rebind ( T &&  t)

map tuple<optional<Ts>...> to optional<tuple<Ts...>>

Here is the call graph for this function:
Here is the caller graph for this function:

◆ split()

std::vector< std::string_view > iroha::ametsuchi::split ( std::string_view  str,
std::string_view  delims 
)
Here is the caller graph for this function:

◆ splitId()

std::vector< std::string_view > iroha::ametsuchi::splitId ( std::string_view  id)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ staticSplitId()

template<size_t C>
std::array<std::string_view, C> iroha::ametsuchi::staticSplitId ( std::string_view const  str,
std::string_view const  delims = "@#" 
)

◆ viewPermissions()

template<typename R , typename T >
constexpr auto iroha::ametsuchi::viewPermissions ( T &&  t)

view last length_v<R> elements of T without copying

◆ viewQuery()

template<typename R , typename T >
constexpr auto iroha::ametsuchi::viewQuery ( T &&  t)

view first length_v<R> elements of T without copying

Variable Documentation

◆ kMaxDescriptionSizeKey

const shared_model::interface::types::SettingKeyType iroha::ametsuchi::kMaxDescriptionSizeKey = "MaxDescriptionSize"

Copyright Soramitsu Co., Ltd. All Rights Reserved. SPDX-License-Identifier: Apache-2.0

◆ kRootRolePermStr

const std::string iroha::ametsuchi::kRootRolePermStr
Initial value:

◆ length_v

template<typename T >
constexpr std::size_t iroha::ametsuchi::length_v = boost::tuples::length<T>::value

tuple length shortcut