7 #ifndef RETDEC_UNPACKER_PLUGIN_H
8 #define RETDEC_UNPACKER_PLUGIN_H
17 #define plugin(T) retdec::unpackertool::Plugin::instance<T>()
22 namespace unpackertool {
61 Info() : name(
""), pluginVersion(
""), packerVersion(
""), author(
"") {}
70 return (name ==
"") || (pluginVersion ==
"") || (packerVersion ==
"") || (author ==
"");
124 log(
"Exiting with cached exit code ", _cachedExitCode);
125 return _cachedExitCode;
148 return _cachedExitCode;
174 template <
typename... Args>
void log(
const Args&... args)
187 template <
typename... Args>
void error(
const Args&... args)
198 template <
typename T>
201 static std::unique_ptr<T> pluginInstance = std::make_unique<T>();
202 return pluginInstance.get();
216 template <
typename T,
typename... Args>
static void logImpl(
Logger& out,
const T& data,
const Args&... args)
219 logImpl(out, args...);
Definition: unpacker_exception.h:79
const std::string & getMessage() const noexcept
Definition: unpacker_exception.h:47
static Logger & get(const Type &logType)
Definition: log.cpp:32
Provides Logger inteface that is used for logging events during decompilation.
Definition: logger.h:22
Definition: archive_wrapper.h:19
void cleanup(ProgramOptions &po)
Definition: retdec-decompiler.cpp:910
Declaration of unpacker exceptions that can be subclassed in unpacker plugins.