#ifndef MANDEL_EXECDATA_H #define MANDEL_EXECDATA_H #include <asmjit/asmjit.h> #include <memory> namespace mnd { struct ExecData { std::unique_ptr<asmjit::JitRuntime> jitRuntime; std::unique_ptr<asmjit::CodeHolder> code; std::unique_ptr<asmjit::x86::Compiler> compiler; void* iterationFunc; ExecData(void) : jitRuntime{ std::make_unique<asmjit::JitRuntime>() }, code{ std::make_unique<asmjit::CodeHolder>() }, compiler{ nullptr }, iterationFunc{ nullptr } { code->init(jitRuntime->codeInfo()); compiler = std::make_unique<asmjit::x86::Compiler>(code.get()); } ExecData(ExecData&&) = default; ExecData(const ExecData&) = delete; ExecData& operator=(ExecData&&) = default; ExecData& operator=(const ExecData&) = delete; ~ExecData(void) = default; }; } #endif // MANDEL_EXECDATA_H