summaryrefslogtreecommitdiffstats
path: root/src/core/loader/loader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/loader/loader.h')
-rw-r--r--src/core/loader/loader.h55
1 files changed, 22 insertions, 33 deletions
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h
index 95f16fcb1..4ba10de52 100644
--- a/src/core/loader/loader.h
+++ b/src/core/loader/loader.h
@@ -32,6 +32,7 @@ enum class ResultStatus {
ErrorNotLoaded,
ErrorNotUsed,
ErrorAlreadyLoaded,
+ ErrorMemoryAllocationFailed,
};
/// Interface for loading an application
@@ -48,60 +49,48 @@ public:
/**
* Get the code (typically .code section) of the application
- * @param error ResultStatus result of function
- * @return Reference to code buffer
+ * @param buffer Reference to buffer to store data
+ * @return ResultStatus result of function
*/
- virtual const std::vector<u8>& ReadCode(ResultStatus& error) const {
- error = ResultStatus::ErrorNotImplemented;
- return code;
+ virtual ResultStatus ReadCode(std::vector<u8>& buffer) const {
+ return ResultStatus::ErrorNotImplemented;
}
/**
* Get the icon (typically icon section) of the application
- * @param error ResultStatus result of function
- * @return Reference to icon buffer
+ * @param buffer Reference to buffer to store data
+ * @return ResultStatus result of function
*/
- virtual const std::vector<u8>& ReadIcon(ResultStatus& error) const {
- error = ResultStatus::ErrorNotImplemented;
- return icon;
+ virtual ResultStatus ReadIcon(std::vector<u8>& buffer) const {
+ return ResultStatus::ErrorNotImplemented;
}
/**
* Get the banner (typically banner section) of the application
- * @param error ResultStatus result of function
- * @return Reference to banner buffer
+ * @param buffer Reference to buffer to store data
+ * @return ResultStatus result of function
*/
- virtual const std::vector<u8>& ReadBanner(ResultStatus& error) const {
- error = ResultStatus::ErrorNotImplemented;
- return banner;
+ virtual ResultStatus ReadBanner(std::vector<u8>& buffer) const {
+ return ResultStatus::ErrorNotImplemented;
}
/**
* Get the logo (typically logo section) of the application
- * @param error ResultStatus result of function
- * @return Reference to logo buffer
+ * @param buffer Reference to buffer to store data
+ * @return ResultStatus result of function
*/
- virtual const std::vector<u8>& ReadLogo(ResultStatus& error) const {
- error = ResultStatus::ErrorNotImplemented;
- return logo;
+ virtual ResultStatus ReadLogo(std::vector<u8>& buffer) const {
+ return ResultStatus::ErrorNotImplemented;
}
/**
- * Get the RomFs archive of the application
- * @param error ResultStatus result of function
- * @return Reference to RomFs archive buffer
+ * Get the RomFS of the application
+ * @param buffer Reference to buffer to store data
+ * @return ResultStatus result of function
*/
- virtual const std::vector<u8>& ReadRomFS(ResultStatus& error) const {
- error = ResultStatus::ErrorNotImplemented;
- return romfs;
+ virtual ResultStatus ReadRomFS(std::vector<u8>& buffer) const {
+ return ResultStatus::ErrorNotImplemented;
}
-
-protected:
- std::vector<u8> code; ///< ExeFS .code section
- std::vector<u8> icon; ///< ExeFS .icon section
- std::vector<u8> banner; ///< ExeFS .banner section
- std::vector<u8> logo; ///< ExeFS .logo section
- std::vector<u8> romfs; ///< RomFs archive
};
/**