hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
signature.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_PROTO_SIGNATURE_HPP
7 #define IROHA_PROTO_SIGNATURE_HPP
8 
11 #include "primitive.pb.h"
12 
13 namespace shared_model {
14  namespace proto {
15  class Signature final : public TrivialProto<interface::Signature,
16  iroha::protocol::Signature> {
17  public:
18  template <typename SignatureType>
19  explicit Signature(SignatureType &&signature)
20  : TrivialProto(std::forward<SignatureType>(signature)) {}
21 
22  Signature(const Signature &o) : Signature(o.proto_) {}
23 
24  Signature(Signature &&o) noexcept : Signature(std::move(o.proto_)) {}
25 
26  const std::string &publicKey() const override {
27  return proto_->public_key();
28  }
29 
30  const std::string &signedData() const override {
31  return proto_->signature();
32  }
33 
34  private:
35  interface::Signature *clone() const override {
36  return new Signature(proto_);
37  }
38  };
39  } // namespace proto
40 } // namespace shared_model
41 
42 #endif // IROHA_PROTO_SIGNATURE_HPP
Definition: signature.hpp:18
Definition: peer.hpp:48
Signature(const Signature &o)
Definition: signature.hpp:22
Signature(Signature &&o) noexcept
Definition: signature.hpp:24
Signature(SignatureType &&signature)
Definition: signature.hpp:19
Definition: signature.hpp:15
const std::string & signedData() const override
Definition: signature.hpp:30
Definition: trivial_proto.hpp:19
Definition: command_executor.hpp:12
detail::ReferenceHolder< iroha::protocol::Signature > proto_
Definition: trivial_proto.hpp:36
const std::string & publicKey() const override
Definition: signature.hpp:26