hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
transport_builder.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_TRANSPORT_BUILDER_HPP
7 #define IROHA_TRANSPORT_BUILDER_HPP
8 
9 #include "common/result.hpp"
11 
12 namespace shared_model {
13  namespace proto {
14 
21  template <typename T, typename SV>
22  class [[deprecated]] TransportBuilder {
23  TransportBuilder(const SV &validator) : stateless_validator_(validator) {}
24 
25  public:
26  TransportBuilder(std::shared_ptr<validation::ValidatorsConfig> config)
27  : TransportBuilder(SV(config)) {}
28 
34  typename T::TransportType transport) {
35  auto result = T(transport);
36  if (auto error = stateless_validator_.validate(result)) {
37  return iroha::expected::makeError(error->toString());
38  }
39  return iroha::expected::makeValue(T(std::move(transport)));
40  }
41 
42  private:
43  SV stateless_validator_;
44  };
45 
46  } // namespace proto
47 } // namespace shared_model
48 #endif // IROHA_TRANSPORT_BUILDER_HPP
TransportBuilder(std::shared_ptr< validation::ValidatorsConfig > config)
Definition: transport_builder.hpp:26
Definition: result_fwd.hpp:27
iroha::expected::Result< T, std::string > build(typename T::TransportType transport)
Definition: transport_builder.hpp:33
Definition: transport_builder.hpp:22
Definition: command_executor.hpp:13
expected::Result< T, DbError > makeError(uint32_t code, char const *format, Args &&... args)
Definition: rocksdb_common.hpp:471