#ifndef INC_6502_EMULATOR_OPCODE_HANDLER_DIRECTORY_H #define INC_6502_EMULATOR_OPCODE_HANDLER_DIRECTORY_H #include "handler/opcode-handler-container.h" #include "../machine/machine.h" #include #include #include #include using namespace std; namespace emu_6502 { class OpcodeHandlerDirectory { private: vector> handler_containers; unordered_map> handlers; void init_handlers(); public: OpcodeHandlerDirectory(); OpcodeHandlerDirectory(const OpcodeHandlerDirectory&) = delete; OpcodeHandlerDirectory& operator=(const OpcodeHandlerDirectory&) = delete; void execute(uint8_t opcode, Machine& machine); }; } #endif //INC_6502_EMULATOR_OPCODE_HANDLER_DIRECTORY_H