1 #pragma once 2 3 #include <string> 4 #include <memory> 5 #include "../MIPS.h" 6 7 namespace Framework 8 { 9 class CZipArchiveWriter; 10 class CZipArchiveReader; 11 }; 12 13 namespace Iop 14 { 15 class CModule 16 { 17 public: 18 virtual ~CModule() = default; 19 virtual std::string GetId() const = 0; 20 virtual std::string GetFunctionName(unsigned int) const = 0; 21 virtual void Invoke(CMIPS&, unsigned int) = 0; 22 SaveState(Framework::CZipArchiveWriter &)23 virtual void SaveState(Framework::CZipArchiveWriter&) const {}; LoadState(Framework::CZipArchiveReader &)24 virtual void LoadState(Framework::CZipArchiveReader&){}; 25 26 static std::string PrintStringParameter(const uint8*, uint32); 27 }; 28 29 typedef std::shared_ptr<CModule> ModulePtr; 30 }; 31