hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
blob.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_SHARED_MODEL_BLOB_HPP
7 #define IROHA_SHARED_MODEL_BLOB_HPP
8 
9 #include <string>
10 #include <string_view>
11 #include <vector>
12 
13 #include "common/cloneable.hpp"
16 
17 namespace shared_model {
18  namespace crypto {
19 
20  class Blob;
21  std::string toBinaryString(const Blob &b);
22 
27  class Blob : public interface::ModelPrimitive<Blob>,
28  public Cloneable<Blob> {
29  public:
30  using Bytes = std::vector<uint8_t>;
31 
32  Blob() = default;
37  explicit Blob(std::string_view blob);
38 
43  explicit Blob(const Bytes &blob);
44 
46 
47  explicit Blob(Bytes &&blob) noexcept;
48 
55  static Blob fromHexString(const std::string &hex);
56 
60  virtual const Bytes &blob() const;
61 
64 
69  virtual const std::string &hex() const;
70 
74  virtual size_t size() const;
75 
76  std::string toString() const override;
77 
78  bool operator==(const Blob &rhs) const override;
79 
80  protected:
81  Blob *clone() const override;
82 
83  private:
84  Bytes blob_;
85  std::string hex_;
86  };
87 
88  } // namespace crypto
89 } // namespace shared_model
90 #endif // IROHA_SHARED_MODEL_BLOB_HPP
std::vector< uint8_t > Bytes
Definition: blob.hpp:30
Definition: blob.hpp:27
shared_model::interface::types::ByteRange range() const
Definition: blob.cpp:54
std::string toString() const override
Definition: blob.cpp:66
Definition: cloneable.hpp:33
virtual const Bytes & blob() const
Definition: blob.cpp:50
virtual size_t size() const
Definition: blob.cpp:62
virtual const std::string & hex() const
Definition: blob.cpp:58
Blob * clone() const override
Definition: blob.cpp:35
bool operator==(const Blob &rhs) const override
Definition: blob.cpp:39
Definition: model_primitive.hpp:22
static Blob fromHexString(const std::string &hex)
Definition: blob.cpp:43
Definition: command_executor.hpp:12
std::basic_string_view< std::byte > ByteRange
Definition: byte_range.hpp:16
std::string toBinaryString(const Blob &b)
Definition: blob.cpp:13