hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
call_engine.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_SHARED_MODEL_CALL_ENGINE_HPP
7 #define IROHA_SHARED_MODEL_CALL_ENGINE_HPP
8 
9 #include <functional>
10 #include <optional>
11 #include <string>
12 
14 
15 namespace shared_model::interface {
16 
20  class CallEngine {
21  public:
23 
24  virtual ~CallEngine();
25 
29  virtual EngineType type() const = 0;
30 
35  virtual const std::string &caller() const = 0;
36 
40  virtual std::optional<std::reference_wrapper<const std::string>> callee()
41  const = 0;
42 
46  virtual const std::string &input() const = 0;
47 
48  std::string toString() const;
49 
50  bool operator==(const CallEngine &rhs) const;
51  };
52 } // namespace shared_model::interface
53 
54 #endif
virtual const std::string & caller() const =0
Definition: call_engine.hpp:20
std::string toString() const
Definition: call_engine.cpp:29
virtual std::optional< std::reference_wrapper< const std::string > > callee() const =0
Definition: command_executor.hpp:13
EngineType
Type of smart contract engine.
Definition: engine_type.hpp:12
virtual EngineType type() const =0
virtual const std::string & input() const =0
bool operator==(const CallEngine &rhs) const
Definition: call_engine.cpp:39