#ifndef _library__patch__hpp__included__ #define _library__patch__hpp__included__ #include #include #include #include #include std::vector do_patch_file(const std::vector& original, const std::vector& patch, int32_t offset) throw(std::bad_alloc, std::runtime_error); /** * ROM patcher. */ struct rom_patcher { /** * Constructor. */ rom_patcher() throw(std::bad_alloc); /** * Destructor. */ virtual ~rom_patcher() throw(); /** * Identify patch. * * Parameter patch: The patch. * Returns: True if my format, false if not. */ virtual bool identify(const std::vector& patch) throw() = 0; /** * Do the patch. */ virtual void dopatch(std::vector& out, const std::vector& original, const std::vector& patch, int32_t offset) throw(std::bad_alloc, std::runtime_error) = 0; }; #endif