diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-15 22:35:29 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-15 22:35:29 +0100 |
| commit | ad548cf57ae5d729c4186ec8f710b0df2e6f24b4 (patch) | |
| tree | 515826b0d36eab32395abe09c1727011cdf151ed /CompilerKit | |
| parent | b876a9ffb37882d1bc3b50b815a5b45af21735dc (diff) | |
64ld: Improved code and SDK.
IDE: Also did improve code.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'CompilerKit')
| -rw-r--r-- | CompilerKit/Defines.hpp | 2 | ||||
| -rw-r--r-- | CompilerKit/StdKit/AE.hpp | 44 | ||||
| -rw-r--r-- | CompilerKit/StdKit/PEF.hpp | 12 |
3 files changed, 58 insertions, 0 deletions
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<AERecordHeader>(raw, sz * sizeof(AERecordHeader)); + } + + private: + template <typename TypeClass> + TypeClass* _Read(char* raw, std::size_t sz) + { + USED_FP.read(raw, std::streamsize(sz)); + return reinterpret_cast<TypeClass*>(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; +} |
