#ifndef INC_6502_EMULATOR_MACHINE_H #define INC_6502_EMULATOR_MACHINE_H #include "program.h" #include "memory.h" #include "register/register-manager.h" #include "opcode/opcode-handler-directory.h" #include "instruction/instruction-executor.h" #include using namespace std; class Machine { public: explicit Machine(shared_ptr program); shared_ptr get_reg_man(); shared_ptr get_memory(); void execute(); private: shared_ptr program; shared_ptr memory; shared_ptr reg_man; shared_ptr opcode_handler_dir; shared_ptr instruction_executor; }; #endif //INC_6502_EMULATOR_MACHINE_H