#ifndef INC_6502_EMULATOR_OPCODE_HANDLER_DIRECTORY_H #define INC_6502_EMULATOR_OPCODE_HANDLER_DIRECTORY_H #include "../program.h" #include "../memory.h" #include "opcode-handler.h" #include #include #include using namespace std; class OpcodeHandlerDirectory { public: explicit OpcodeHandlerDirectory(shared_ptr program, shared_ptr reg_man, shared_ptr memory); shared_ptr get_handler(uint8_t opcode); private: unique_ptr>> handlers; void register_handler(shared_ptr handler); }; #endif //INC_6502_EMULATOR_OPCODE_HANDLER_DIRECTORY_H