#pragma once namespace llvm { class Module; } #include "RuntimeData.h" namespace dev { namespace eth { namespace jit { class ExecBundle; class ExecutionEngine { public: ExecutionEngine() = default; ExecutionEngine(ExecutionEngine const&) = delete; void operator=(ExecutionEngine) = delete; ReturnCode run(bytes const& _code, RuntimeData* _data, Env* _env); ReturnCode run(std::unique_ptr module, RuntimeData* _data, Env* _env, bytes const& _code); bytes returnData; private: ReturnCode run(ExecBundle const& _exec, RuntimeData* _data, Env* _env); }; } } }