From ada777c758d322389f9dbc7457ed774f62360ec3 Mon Sep 17 00:00:00 2001 From: Isuru Samarathunga Date: Sun, 7 Sep 2025 22:25:46 +0530 Subject: [PATCH] HF --- .../Interface/StreamReader.interface.inl | 57 +++++++++-------- .../inl/IACore/StreamReader/StreamReader.inl | 63 ++++++++----------- .../interface/stringstream.interface.inl | 5 ++ 3 files changed, 60 insertions(+), 65 deletions(-) diff --git a/Src/IACore/imp/inl/IACore/StreamReader/Interface/StreamReader.interface.inl b/Src/IACore/imp/inl/IACore/StreamReader/Interface/StreamReader.interface.inl index 9e79dcd..94c9a80 100644 --- a/Src/IACore/imp/inl/IACore/StreamReader/Interface/StreamReader.interface.inl +++ b/Src/IACore/imp/inl/IACore/StreamReader/Interface/StreamReader.interface.inl @@ -16,13 +16,16 @@ #pragma once +#include +#include + namespace ia { class IStreamReader { public: - STATIC SharedPtr Create(IN PCCHAR filePath); - STATIC SharedPtr Create(IN Vector &&data); + STATIC RefPtr Create(IN PCCHAR filePath); + STATIC RefPtr Create(IN Vector &&data); public: PURE_VIRTUAL(BOOL CompareBytes(IN PCUINT8 data, IN INT64 length) CONST); @@ -44,20 +47,20 @@ namespace ia class MemoryStreamReader : public IStreamReader { public: - STATIC SharedPtr Create(IN Vector &&data); + STATIC INLINE RefPtr Create(IN Vector &&data); public: - BOOL CompareBytes(IN PCUINT8 data, IN INT64 length) CONST; + INLINE BOOL CompareBytes(IN PCUINT8 data, IN INT64 length) CONST; - Vector Read(); - Vector Read(IN INT64 size); - VOID Read(IN INT64 size, IN PUINT8 buffer); - Vector ReadAndInflate(IN INT64 size); + INLINE Vector Read(); + INLINE Vector Read(IN INT64 size); + INLINE VOID Read(IN INT64 size, IN PUINT8 buffer); + INLINE Vector ReadAndInflate(IN INT64 size); - UINT8 Read8(); - UINT16 Read16(); - UINT32 Read32(); - UINT64 Read64(); + INLINE UINT8 Read8(); + INLINE UINT16 Read16(); + INLINE UINT32 Read32(); + INLINE UINT64 Read64(); VOID Skip(IN INT64 size) { @@ -79,28 +82,28 @@ namespace ia Vector m_buffer; private: - MemoryStreamReader(IN Vector &&data); + INLINE MemoryStreamReader(IN Vector &&data); }; class FileStreamReader : public IStreamReader { public: - STATIC SharedPtr Create(IN PCCHAR filePath); + STATIC INLINE RefPtr Create(IN PCCHAR filePath); - ~FileStreamReader(); + INLINE ~FileStreamReader(); public: - BOOL CompareBytes(IN PCUINT8 data, IN INT64 length) CONST; + INLINE BOOL CompareBytes(IN PCUINT8 data, IN INT64 length) CONST; - Vector Read(); - Vector Read(IN INT64 size); - VOID Read(IN INT64 size, IN PUINT8 buffer); - Vector ReadAndInflate(IN INT64 size); + INLINE Vector Read(); + INLINE Vector Read(IN INT64 size); + INLINE VOID Read(IN INT64 size, IN PUINT8 buffer); + INLINE Vector ReadAndInflate(IN INT64 size); - UINT8 Read8(); - UINT16 Read16(); - UINT32 Read32(); - UINT64 Read64(); + INLINE UINT8 Read8(); + INLINE UINT16 Read16(); + INLINE UINT32 Read32(); + INLINE UINT64 Read64(); VOID Skip(IN INT64 size) { @@ -121,15 +124,15 @@ namespace ia FILE *m_filePtr{}; private: - FileStreamReader(IN PCCHAR filePath); + INLINE FileStreamReader(IN PCCHAR filePath); }; - SharedPtr IStreamReader::Create(IN PCCHAR filePath) + INLINE RefPtr IStreamReader::Create(IN PCCHAR filePath) { return FileStreamReader::Create(filePath); } - SharedPtr IStreamReader::Create(IN Vector &&data) + INLINE RefPtr IStreamReader::Create(IN Vector &&data) { return MemoryStreamReader::Create(std::move(data)); } diff --git a/Src/IACore/imp/inl/IACore/StreamReader/StreamReader.inl b/Src/IACore/imp/inl/IACore/StreamReader/StreamReader.inl index eb85b09..aaca260 100644 --- a/Src/IACore/imp/inl/IACore/StreamReader/StreamReader.inl +++ b/Src/IACore/imp/inl/IACore/StreamReader/StreamReader.inl @@ -20,7 +20,7 @@ namespace ia { - SharedPtr MemoryStreamReader::Create(IN Vector &&data) + RefPtr MemoryStreamReader::Create(IN Vector &&data) { struct make_shared_enabler : public MemoryStreamReader { @@ -39,7 +39,7 @@ namespace ia BOOL MemoryStreamReader::CompareBytes(IN PCUINT8 data, IN INT64 length) const { - DXF_ASSERT((m_cursor + length) <= m_buffer.size()); + IA_RELEASE_ASSERT((m_cursor + length) <= m_buffer.size()); return !memcmp(&m_buffer[m_cursor], data, length); } @@ -61,26 +61,20 @@ namespace ia VOID MemoryStreamReader::Read(IN INT64 size, IN PUINT8 buffer) { - DXF_ASSERT((m_cursor + size) <= m_buffer.size()); + IA_RELEASE_ASSERT((m_cursor + size) <= m_buffer.size()); memcpy_s(buffer, size, &m_buffer[m_cursor], size); m_cursor += size; } - Vector MemoryStreamReader::ReadAndInflate(IN INT64 size) - { - const auto d = Read(size); - return Inflate(d.data(), d.size()); - } - UINT8 MemoryStreamReader::Read8() { - DXF_ASSERT((m_cursor + 1) <= m_buffer.size()); + IA_RELEASE_ASSERT((m_cursor + 1) <= m_buffer.size()); return m_buffer[m_cursor++]; } UINT16 MemoryStreamReader::Read16() { - DXF_ASSERT((m_cursor + 2) <= m_buffer.size()); + IA_RELEASE_ASSERT((m_cursor + 2) <= m_buffer.size()); const auto r = *reinterpret_cast(&m_buffer[m_cursor]); m_cursor += 2; return r; @@ -88,7 +82,7 @@ namespace ia UINT32 MemoryStreamReader::Read32() { - DXF_ASSERT((m_cursor + 4) <= m_buffer.size()); + IA_RELEASE_ASSERT((m_cursor + 4) <= m_buffer.size()); const auto r = *reinterpret_cast(&m_buffer[m_cursor]); m_cursor += 4; return r; @@ -96,7 +90,7 @@ namespace ia UINT64 MemoryStreamReader::Read64() { - DXF_ASSERT((m_cursor + 8) <= m_buffer.size()); + IA_RELEASE_ASSERT((m_cursor + 8) <= m_buffer.size()); const auto r = *reinterpret_cast(&m_buffer[m_cursor]); m_cursor += 8; return r; @@ -105,7 +99,7 @@ namespace ia namespace ia { - SharedPtr FileStreamReader::Create(IN PCCHAR filePath) + RefPtr FileStreamReader::Create(IN PCCHAR filePath) { struct make_shared_enabler : public FileStreamReader { @@ -121,7 +115,7 @@ namespace ia { fopen_s(&m_filePtr, filePath, "rb"); if (!m_filePtr) - throw RuntimeError(BuildString("No such file or directory: ", filePath)); + THROW_FILE_OPEN_READ(filePath); } FileStreamReader ::~FileStreamReader() @@ -132,78 +126,71 @@ namespace ia BOOL FileStreamReader::CompareBytes(IN PCUINT8 data, IN INT64 length) CONST { - DXF_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(m_filePtr); STATIC Vector TmpBuffer; if (TmpBuffer.size() < length) TmpBuffer.resize(length); - DXF_RELEASE_ASSERT(fread(TmpBuffer.data(), 1, length, m_filePtr) == length); + IA_RELEASE_ASSERT(fread(TmpBuffer.data(), 1, length, m_filePtr) == length); return !memcmp(TmpBuffer.data(), data, length); } Vector FileStreamReader::Read() { - DXF_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(m_filePtr); Vector result; const auto s = ftell(m_filePtr); fseek(m_filePtr, 0, SEEK_END); const auto e = ftell(m_filePtr); fseek(m_filePtr, s, SEEK_SET); result.resize(e - s); - DXF_RELEASE_ASSERT(fread(result.data(), 1, result.size(), m_filePtr) == result.size()); + IA_RELEASE_ASSERT(fread(result.data(), 1, result.size(), m_filePtr) == result.size()); return result; } Vector FileStreamReader::Read(IN INT64 size) { - DXF_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(m_filePtr); Vector result; result.resize(size); - DXF_RELEASE_ASSERT(fread(result.data(), 1, size, m_filePtr) == size); + IA_RELEASE_ASSERT(fread(result.data(), 1, size, m_filePtr) == size); return result; } VOID FileStreamReader::Read(IN INT64 size, IN PUINT8 buffer) { - DXF_RELEASE_ASSERT(m_filePtr); - DXF_RELEASE_ASSERT(fread(buffer, 1, size, m_filePtr) == size); - } - - Vector FileStreamReader::ReadAndInflate(IN INT64 size) - { - DXF_RELEASE_ASSERT(m_filePtr); - const auto d = Read(size); - return Inflate(d.data(), d.size()); + IA_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(fread(buffer, 1, size, m_filePtr) == size); } UINT8 FileStreamReader::Read8() { - DXF_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(m_filePtr); UINT8 result; - DXF_RELEASE_ASSERT(fread(&result, 1, 1, m_filePtr) == 1); + IA_RELEASE_ASSERT(fread(&result, 1, 1, m_filePtr) == 1); return result; } UINT16 FileStreamReader::Read16() { - DXF_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(m_filePtr); UINT16 result; - DXF_RELEASE_ASSERT(fread(&result, 2, 1, m_filePtr) == 1); + IA_RELEASE_ASSERT(fread(&result, 2, 1, m_filePtr) == 1); return result; } UINT32 FileStreamReader::Read32() { - DXF_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(m_filePtr); UINT32 result; - DXF_RELEASE_ASSERT(fread(&result, 4, 1, m_filePtr) == 1); + IA_RELEASE_ASSERT(fread(&result, 4, 1, m_filePtr) == 1); return result; } UINT64 FileStreamReader::Read64() { - DXF_RELEASE_ASSERT(m_filePtr); + IA_RELEASE_ASSERT(m_filePtr); UINT64 result; - DXF_RELEASE_ASSERT(fread(&result, 8, 1, m_filePtr) == 1); + IA_RELEASE_ASSERT(fread(&result, 8, 1, m_filePtr) == 1); return result; } } // namespace ia \ No newline at end of file diff --git a/Src/IACore/imp/inl/IACore/stream/interface/stringstream.interface.inl b/Src/IACore/imp/inl/IACore/stream/interface/stringstream.interface.inl index 1efbe05..9fc1619 100644 --- a/Src/IACore/imp/inl/IACore/stream/interface/stringstream.interface.inl +++ b/Src/IACore/imp/inl/IACore/stream/interface/stringstream.interface.inl @@ -38,6 +38,11 @@ namespace ia StringStream& operator<<(IN CONST String& v) { m_impl << v.c_str(); return *this; } + VOID clear() + { + m_impl.clear(); + } + private: std::stringstream m_impl; };