From ad548cf57ae5d729c4186ec8f710b0df2e6f24b4 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 15 Jan 2024 22:35:29 +0100 Subject: 64ld: Improved code and SDK. IDE: Also did improve code. Signed-off-by: Amlal El Mahrouss --- CompilerKit/Defines.hpp | 2 ++ CompilerKit/StdKit/AE.hpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ CompilerKit/StdKit/PEF.hpp | 12 ++++++++++++ 3 files changed, 58 insertions(+) (limited to 'CompilerKit') diff --git a/CompilerKit/Defines.hpp b/CompilerKit/Defines.hpp index 6118a9b..db52362 100644 --- a/CompilerKit/Defines.hpp +++ b/CompilerKit/Defines.hpp @@ -130,6 +130,8 @@ namespace CompilerKit } } +typedef char char_type; + #define kObjectFileExt ".o" #define kAsmFileExt64x0 ".64x" diff --git a/CompilerKit/StdKit/AE.hpp b/CompilerKit/StdKit/AE.hpp index f06c785..cc2144f 100644 --- a/CompilerKit/StdKit/AE.hpp +++ b/CompilerKit/StdKit/AE.hpp @@ -76,3 +76,47 @@ std::ofstream &operator<<(std::ofstream &fp, CompilerKit::AERecordHeader &contai return fp; } + +std::ifstream &operator>>(std::ifstream& fp, CompilerKit::AEHeader& container) +{ + fp.read((char*)&container, sizeof(CompilerKit::AEHeader)); + return fp; +} + +std::ifstream &operator>>(std::ifstream& fp, CompilerKit::AERecordHeader& container) +{ + fp.read((char*)&container, sizeof(CompilerKit::AERecordHeader)); + return fp; +} + +namespace CompilerKit::Utils +{ + class AEReadableProtocol final + { + public: + std::ifstream USED_FP; + + public: + explicit AEReadableProtocol() = default; + ~AEReadableProtocol() = default; + + CXXKIT_COPY_DEFAULT(AEReadableProtocol); + + AERecordHeaderPtr Read(char* raw, std::size_t sz) + { + if (!raw) + return nullptr; + + return this->_Read(raw, sz * sizeof(AERecordHeader)); + } + + private: + template + TypeClass* _Read(char* raw, std::size_t sz) + { + USED_FP.read(raw, std::streamsize(sz)); + return reinterpret_cast(raw); + } + + }; +} \ No newline at end of file diff --git a/CompilerKit/StdKit/PEF.hpp b/CompilerKit/StdKit/PEF.hpp index b8c5190..a6c1ffe 100644 --- a/CompilerKit/StdKit/PEF.hpp +++ b/CompilerKit/StdKit/PEF.hpp @@ -98,3 +98,15 @@ inline std::ofstream& operator<<(std::ofstream& fp, CompilerKit::PEFCommandHeade fp.write((char*)&container, sizeof(CompilerKit::PEFCommandHeader)); return fp; } + +std::ifstream &operator>>(std::ifstream& fp, CompilerKit::PEFContainer& container) +{ + fp.read((char*)&container, sizeof(CompilerKit::PEFContainer)); + return fp; +} + +std::ifstream &operator>>(std::ifstream& fp, CompilerKit::PEFCommandHeader& container) +{ + fp.read((char*)&container, sizeof(CompilerKit::PEFCommandHeader)); + return fp; +} -- cgit v1.2.3