hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
Cloneable< T > Class Template Referenceabstract

#include "cloneable.hpp"

Collaboration diagram for Cloneable< T >:
Collaboration graph

Public Types

using base_type = T
 

Public Member Functions

virtual ~Cloneable ()=default
 

Protected Member Functions

virtual T * clone () const =0
 

Friends

template<typename X >
std::unique_ptr< X > clone (const X &)
 

Detailed Description

template<typename T>
class Cloneable< T >

Interface for cloneable classes.

Template Parameters
T

Member Typedef Documentation

template<typename T>
using Cloneable< T >::base_type = T

Constructor & Destructor Documentation

template<typename T>
virtual Cloneable< T >::~Cloneable ( )
virtualdefault

Member Function Documentation

template<typename T>
virtual T* Cloneable< T >::clone ( ) const
protectedpure virtual

Polymorphic clone constructor. Method guarantees deep-copy.

Returns
pointer to cloned object

Implemented in shared_model::crypto::Blob, shared_model::proto::CopyableProto< interface::AccountAsset, iroha::protocol::AccountAsset, AccountAsset >, shared_model::proto::CopyableProto< interface::GetAccountAssetTransactions, iroha::protocol::Query, GetAccountAssetTransactions >, shared_model::proto::CopyableProto< interface::BlockResponse, iroha::protocol::BlockQueryResponse, BlockResponse >, shared_model::proto::CopyableProto< interface::Account, iroha::protocol::Account, Account >, shared_model::proto::CopyableProto< interface::GetAccount, iroha::protocol::Query, GetAccount >, shared_model::proto::CopyableProto< interface::TransactionsResponse, iroha::protocol::QueryResponse, TransactionsResponse >, shared_model::proto::CopyableProto< interface::AccountAssetResponse, iroha::protocol::QueryResponse, AccountAssetResponse >, shared_model::proto::CopyableProto< interface::BlockResponse, iroha::protocol::QueryResponse, GetBlockResponse >, shared_model::proto::CopyableProto< interface::GetPendingTransactions, iroha::protocol::Query, GetPendingTransactions >, shared_model::proto::CopyableProto< interface::RolesResponse, iroha::protocol::QueryResponse, RolesResponse >, shared_model::proto::CopyableProto< interface::BatchMeta, iroha::protocol::Transaction::Payload::BatchMeta, BatchMeta >, shared_model::proto::CopyableProto< interface::TransactionsPageResponse, iroha::protocol::QueryResponse, TransactionsPageResponse >, shared_model::proto::CopyableProto< interface::Peer, iroha::protocol::Peer, Peer >, shared_model::proto::CopyableProto< interface::QueryPayloadMeta, iroha::protocol::QueryPayloadMeta, QueryPayloadMeta >, shared_model::proto::CopyableProto< interface::BlockQueryResponse, iroha::protocol::BlockQueryResponse, BlockQueryResponse >, shared_model::proto::CopyableProto< interface::AssetPaginationMeta, iroha::protocol::AssetPaginationMeta, AssetPaginationMeta >, shared_model::proto::CopyableProto< interface::GetBlock, iroha::protocol::Query, GetBlock >, shared_model::proto::CopyableProto< interface::TxPaginationMeta, iroha::protocol::TxPaginationMeta, TxPaginationMeta >, shared_model::proto::CopyableProto< interface::GetAccountDetail, iroha::protocol::Query, GetAccountDetail >, shared_model::proto::CopyableProto< interface::AssetResponse, iroha::protocol::QueryResponse, AssetResponse >, shared_model::proto::CopyableProto< interface::GetTransactions, iroha::protocol::Query, GetTransactions >, shared_model::proto::CopyableProto< interface::GetRoles, iroha::protocol::Query, GetRoles >, shared_model::proto::CopyableProto< interface::Signature, iroha::protocol::Signature, Signature >, shared_model::proto::CopyableProto< interface::RolePermissionsResponse, iroha::protocol::QueryResponse, RolePermissionsResponse >, shared_model::proto::CopyableProto< interface::GetAssetInfo, iroha::protocol::Query, GetAssetInfo >, shared_model::proto::CopyableProto< interface::GetAccountAssets, iroha::protocol::Query, GetAccountAssets >, shared_model::proto::CopyableProto< interface::GetSignatories, iroha::protocol::Query, GetSignatories >, shared_model::proto::CopyableProto< interface::GetAccountTransactions, iroha::protocol::Query, GetAccountTransactions >, shared_model::proto::CopyableProto< interface::AccountDetailResponse, iroha::protocol::QueryResponse, AccountDetailResponse >, shared_model::proto::CopyableProto< interface::BlockErrorResponse, iroha::protocol::BlockQueryResponse, BlockErrorResponse >, shared_model::proto::CopyableProto< interface::BlocksQuery, iroha::protocol::BlocksQuery, BlocksQuery >, shared_model::proto::CopyableProto< interface::Asset, iroha::protocol::Asset, Asset >, shared_model::proto::CopyableProto< interface::AccountResponse, iroha::protocol::QueryResponse, AccountResponse >, shared_model::proto::CopyableProto< interface::SignatoriesResponse, iroha::protocol::QueryResponse, SignatoriesResponse >, shared_model::proto::CopyableProto< interface::Domain, iroha::protocol::Domain, Domain >, shared_model::proto::CopyableProto< interface::ErrorQueryResponse, iroha::protocol::QueryResponse, ErrorQueryResponse >, shared_model::proto::CopyableProto< interface::GetRolePermissions, iroha::protocol::Query, GetRolePermissions >, shared_model::proto::Transaction, shared_model::interface::Amount, shared_model::proto::Query, shared_model::proto::Block, shared_model::proto::TransactionResponse, shared_model::proto::Proposal, shared_model::interface::TransactionBatchImpl, and shared_model::proto::QueryResponse.

Friends And Related Function Documentation

template<typename T>
template<typename X >
std::unique_ptr<X> clone ( const X &  )
friend

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