From 74bb9cd27242b9320f99ff4d2b50c3051576cc14 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 8 Feb 2022 16:53:51 +0800 Subject: ... --- include/cru/common/platform/Exception.h | 15 ++++++ include/cru/common/platform/Exception.hpp | 15 ------ include/cru/common/platform/osx/Convert.h | 17 +++++++ include/cru/common/platform/osx/Convert.hpp | 17 ------- include/cru/common/platform/osx/Exception.h | 14 ++++++ include/cru/common/platform/osx/Exception.hpp | 14 ------ include/cru/common/platform/unix/ErrnoException.h | 28 +++++++++++ .../cru/common/platform/unix/ErrnoException.hpp | 28 ----------- include/cru/common/platform/unix/UnixFileStream.h | 46 ++++++++++++++++++ .../cru/common/platform/unix/UnixFileStream.hpp | 46 ------------------ include/cru/common/platform/win/ComAutoInit.h | 21 ++++++++ include/cru/common/platform/win/ComAutoInit.hpp | 21 -------- include/cru/common/platform/win/Exception.h | 56 ++++++++++++++++++++++ include/cru/common/platform/win/Exception.hpp | 56 ---------------------- include/cru/common/platform/win/StreamConvert.h | 14 ++++++ include/cru/common/platform/win/StreamConvert.hpp | 14 ------ include/cru/common/platform/win/Win32FileStream.h | 54 +++++++++++++++++++++ .../cru/common/platform/win/Win32FileStream.hpp | 54 --------------------- include/cru/common/platform/win/WinPreConfig.h | 13 +++++ include/cru/common/platform/win/WinPreConfig.hpp | 13 ----- 20 files changed, 278 insertions(+), 278 deletions(-) create mode 100644 include/cru/common/platform/Exception.h delete mode 100644 include/cru/common/platform/Exception.hpp create mode 100644 include/cru/common/platform/osx/Convert.h delete mode 100644 include/cru/common/platform/osx/Convert.hpp create mode 100644 include/cru/common/platform/osx/Exception.h delete mode 100644 include/cru/common/platform/osx/Exception.hpp create mode 100644 include/cru/common/platform/unix/ErrnoException.h delete mode 100644 include/cru/common/platform/unix/ErrnoException.hpp create mode 100644 include/cru/common/platform/unix/UnixFileStream.h delete mode 100644 include/cru/common/platform/unix/UnixFileStream.hpp create mode 100644 include/cru/common/platform/win/ComAutoInit.h delete mode 100644 include/cru/common/platform/win/ComAutoInit.hpp create mode 100644 include/cru/common/platform/win/Exception.h delete mode 100644 include/cru/common/platform/win/Exception.hpp create mode 100644 include/cru/common/platform/win/StreamConvert.h delete mode 100644 include/cru/common/platform/win/StreamConvert.hpp create mode 100644 include/cru/common/platform/win/Win32FileStream.h delete mode 100644 include/cru/common/platform/win/Win32FileStream.hpp create mode 100644 include/cru/common/platform/win/WinPreConfig.h delete mode 100644 include/cru/common/platform/win/WinPreConfig.hpp (limited to 'include/cru/common/platform') diff --git a/include/cru/common/platform/Exception.h b/include/cru/common/platform/Exception.h new file mode 100644 index 00000000..c1b649f3 --- /dev/null +++ b/include/cru/common/platform/Exception.h @@ -0,0 +1,15 @@ +#pragma once +#include "../Base.h" +#include "../Exception.h" + +namespace cru::platform { +class CRU_BASE_API PlatformException : public Exception { + public: + using Exception::Exception; // inherit constructors + + CRU_DEFAULT_COPY(PlatformException) + CRU_DEFAULT_MOVE(PlatformException) + + CRU_DEFAULT_DESTRUCTOR(PlatformException) +}; +} // namespace cru::platform diff --git a/include/cru/common/platform/Exception.hpp b/include/cru/common/platform/Exception.hpp deleted file mode 100644 index 0241947b..00000000 --- a/include/cru/common/platform/Exception.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once -#include "../Base.hpp" -#include "../Exception.hpp" - -namespace cru::platform { -class CRU_BASE_API PlatformException : public Exception { - public: - using Exception::Exception; // inherit constructors - - CRU_DEFAULT_COPY(PlatformException) - CRU_DEFAULT_MOVE(PlatformException) - - CRU_DEFAULT_DESTRUCTOR(PlatformException) -}; -} // namespace cru::platform diff --git a/include/cru/common/platform/osx/Convert.h b/include/cru/common/platform/osx/Convert.h new file mode 100644 index 00000000..503576be --- /dev/null +++ b/include/cru/common/platform/osx/Convert.h @@ -0,0 +1,17 @@ +#pragma once +#include "../../PreConfig.h" +#ifdef CRU_PLATFORM_OSX + +#include "../../String.h" + +#include + +namespace cru::platform::osx { +CFStringRef Convert(const String& string); +String Convert(CFStringRef string); + +CFRange Convert(const Range& range); +Range Convert(const CFRange& range); +} // namespace cru::platform::osx + +#endif diff --git a/include/cru/common/platform/osx/Convert.hpp b/include/cru/common/platform/osx/Convert.hpp deleted file mode 100644 index a2d8beae..00000000 --- a/include/cru/common/platform/osx/Convert.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once -#include "../../PreConfig.hpp" -#ifdef CRU_PLATFORM_OSX - -#include "../../String.hpp" - -#include - -namespace cru::platform::osx { -CFStringRef Convert(const String& string); -String Convert(CFStringRef string); - -CFRange Convert(const Range& range); -Range Convert(const CFRange& range); -} // namespace cru::platform::osx - -#endif diff --git a/include/cru/common/platform/osx/Exception.h b/include/cru/common/platform/osx/Exception.h new file mode 100644 index 00000000..53e874e9 --- /dev/null +++ b/include/cru/common/platform/osx/Exception.h @@ -0,0 +1,14 @@ +#pragma once +#include "../../PreConfig.h" +#ifdef CRU_PLATFORM_OSX + +#include "../Exception.h" + +namespace cru::platform::osx { +class OsxException : public PlatformException { + public: + using PlatformException::PlatformException; +}; +} // namespace cru::platform::osx + +#endif diff --git a/include/cru/common/platform/osx/Exception.hpp b/include/cru/common/platform/osx/Exception.hpp deleted file mode 100644 index 49527c69..00000000 --- a/include/cru/common/platform/osx/Exception.hpp +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once -#include "../../PreConfig.hpp" -#ifdef CRU_PLATFORM_OSX - -#include "../Exception.hpp" - -namespace cru::platform::osx { -class OsxException : public PlatformException { - public: - using PlatformException::PlatformException; -}; -} // namespace cru::platform::osx - -#endif diff --git a/include/cru/common/platform/unix/ErrnoException.h b/include/cru/common/platform/unix/ErrnoException.h new file mode 100644 index 00000000..00e1864b --- /dev/null +++ b/include/cru/common/platform/unix/ErrnoException.h @@ -0,0 +1,28 @@ +#pragma once + +#include "../../PreConfig.h" + +#ifdef CRU_PLATFORM_UNIX + +#include "../Exception.h" + +namespace cru::platform::unix { +class ErrnoException : public PlatformException { + public: + ErrnoException() : ErrnoException(String{}) {} + explicit ErrnoException(const String& message); + ErrnoException(const String& message, int errno_code); + + CRU_DELETE_COPY(ErrnoException) + CRU_DELETE_MOVE(ErrnoException) + + ~ErrnoException() override = default; + + int GetErrnoCode() const { return errno_code_; } + + private: + int errno_code_; +}; +} // namespace cru::platform::unix + +#endif diff --git a/include/cru/common/platform/unix/ErrnoException.hpp b/include/cru/common/platform/unix/ErrnoException.hpp deleted file mode 100644 index 2982e26a..00000000 --- a/include/cru/common/platform/unix/ErrnoException.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once - -#include "../../PreConfig.hpp" - -#ifdef CRU_PLATFORM_UNIX - -#include "../Exception.hpp" - -namespace cru::platform::unix { -class ErrnoException : public PlatformException { - public: - ErrnoException() : ErrnoException(String{}) {} - explicit ErrnoException(const String& message); - ErrnoException(const String& message, int errno_code); - - CRU_DELETE_COPY(ErrnoException) - CRU_DELETE_MOVE(ErrnoException) - - ~ErrnoException() override = default; - - int GetErrnoCode() const { return errno_code_; } - - private: - int errno_code_; -}; -} // namespace cru::platform::unix - -#endif diff --git a/include/cru/common/platform/unix/UnixFileStream.h b/include/cru/common/platform/unix/UnixFileStream.h new file mode 100644 index 00000000..0c8ef340 --- /dev/null +++ b/include/cru/common/platform/unix/UnixFileStream.h @@ -0,0 +1,46 @@ +#pragma once + +#include "../../PreConfig.h" + +#ifdef CRU_PLATFORM_UNIX + +#include "../../String.h" +#include "../../io/OpenFileFlag.h" +#include "../../io/Stream.h" + +namespace cru::platform::unix { +class UnixFileStream : public io::Stream { + public: + UnixFileStream(String path, io::OpenFileFlag flags); + + CRU_DELETE_COPY(UnixFileStream) + CRU_DELETE_MOVE(UnixFileStream) + + ~UnixFileStream() override; + + public: + bool CanSeek() override; + Index Seek(Index offset, SeekOrigin origin = SeekOrigin::Current) override; + + bool CanRead() override; + Index Read(std::byte* buffer, Index offset, Index size) override; + using Stream::Read; + + bool CanWrite() override; + Index Write(const std::byte* buffer, Index offset, Index size) override; + using Stream::Write; + + void Close() override; + + private: + void CheckClosed(); + + private: + String path_; + io::OpenFileFlag flags_; + int file_descriptor_; + bool closed_ = false; +}; +} // namespace cru::platform::unix + +#endif diff --git a/include/cru/common/platform/unix/UnixFileStream.hpp b/include/cru/common/platform/unix/UnixFileStream.hpp deleted file mode 100644 index 76355f2f..00000000 --- a/include/cru/common/platform/unix/UnixFileStream.hpp +++ /dev/null @@ -1,46 +0,0 @@ -#pragma once - -#include "../../PreConfig.hpp" - -#ifdef CRU_PLATFORM_UNIX - -#include "../../String.hpp" -#include "../../io/OpenFileFlag.hpp" -#include "../../io/Stream.hpp" - -namespace cru::platform::unix { -class UnixFileStream : public io::Stream { - public: - UnixFileStream(String path, io::OpenFileFlag flags); - - CRU_DELETE_COPY(UnixFileStream) - CRU_DELETE_MOVE(UnixFileStream) - - ~UnixFileStream() override; - - public: - bool CanSeek() override; - Index Seek(Index offset, SeekOrigin origin = SeekOrigin::Current) override; - - bool CanRead() override; - Index Read(std::byte* buffer, Index offset, Index size) override; - using Stream::Read; - - bool CanWrite() override; - Index Write(const std::byte* buffer, Index offset, Index size) override; - using Stream::Write; - - void Close() override; - - private: - void CheckClosed(); - - private: - String path_; - io::OpenFileFlag flags_; - int file_descriptor_; - bool closed_ = false; -}; -} // namespace cru::platform::unix - -#endif diff --git a/include/cru/common/platform/win/ComAutoInit.h b/include/cru/common/platform/win/ComAutoInit.h new file mode 100644 index 00000000..cc968e4b --- /dev/null +++ b/include/cru/common/platform/win/ComAutoInit.h @@ -0,0 +1,21 @@ +#pragma once + +#include "../../PreConfig.h" +#ifdef CRU_PLATFORM_WINDOWS + +#include "WinPreConfig.h" +#include "cru/common/Base.h" + +namespace cru::platform::win { +class CRU_BASE_API ComAutoInit { + public: + ComAutoInit(); + + CRU_DELETE_COPY(ComAutoInit) + CRU_DELETE_MOVE(ComAutoInit) + + ~ComAutoInit(); +}; +} // namespace cru::platform::win + +#endif diff --git a/include/cru/common/platform/win/ComAutoInit.hpp b/include/cru/common/platform/win/ComAutoInit.hpp deleted file mode 100644 index 131f3f30..00000000 --- a/include/cru/common/platform/win/ComAutoInit.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once - -#include "../../PreConfig.hpp" -#ifdef CRU_PLATFORM_WINDOWS - -#include "WinPreConfig.hpp" -#include "cru/common/Base.hpp" - -namespace cru::platform::win { -class CRU_BASE_API ComAutoInit { - public: - ComAutoInit(); - - CRU_DELETE_COPY(ComAutoInit) - CRU_DELETE_MOVE(ComAutoInit) - - ~ComAutoInit(); -}; -} // namespace cru::platform::win - -#endif diff --git a/include/cru/common/platform/win/Exception.h b/include/cru/common/platform/win/Exception.h new file mode 100644 index 00000000..3e63b191 --- /dev/null +++ b/include/cru/common/platform/win/Exception.h @@ -0,0 +1,56 @@ +#pragma once +#include "../../PreConfig.h" +#ifdef CRU_PLATFORM_WINDOWS + +#include "WinPreConfig.h" + +#include "../Exception.h" + +#include +#include + +namespace cru::platform::win { +class CRU_BASE_API HResultError : public platform::PlatformException { + public: + explicit HResultError(HRESULT h_result); + explicit HResultError(HRESULT h_result, std::string_view message); + + CRU_DEFAULT_COPY(HResultError) + CRU_DEFAULT_MOVE(HResultError) + + ~HResultError() override = default; + + HRESULT GetHResult() const { return h_result_; } + + private: + HRESULT h_result_; +}; + +inline void ThrowIfFailed(const HRESULT h_result) { + if (FAILED(h_result)) throw HResultError(h_result); +} + +inline void ThrowIfFailed(const HRESULT h_result, std::string_view message) { + if (FAILED(h_result)) throw HResultError(h_result, message); +} + +class CRU_BASE_API Win32Error : public platform::PlatformException { + public: + // ::GetLastError is automatically called to get the error code. + // The same as Win32Error(::GetLastError(), message) + explicit Win32Error(String message); + Win32Error(DWORD error_code, String message); + + CRU_DEFAULT_COPY(Win32Error) + CRU_DEFAULT_MOVE(Win32Error) + + ~Win32Error() override = default; + + DWORD GetErrorCode() const { return error_code_; } + + private: + DWORD error_code_; +}; +} // namespace cru::platform::win + +#endif diff --git a/include/cru/common/platform/win/Exception.hpp b/include/cru/common/platform/win/Exception.hpp deleted file mode 100644 index 4e332b4f..00000000 --- a/include/cru/common/platform/win/Exception.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once -#include "../../PreConfig.hpp" -#ifdef CRU_PLATFORM_WINDOWS - -#include "WinPreConfig.hpp" - -#include "../Exception.hpp" - -#include -#include - -namespace cru::platform::win { -class CRU_BASE_API HResultError : public platform::PlatformException { - public: - explicit HResultError(HRESULT h_result); - explicit HResultError(HRESULT h_result, std::string_view message); - - CRU_DEFAULT_COPY(HResultError) - CRU_DEFAULT_MOVE(HResultError) - - ~HResultError() override = default; - - HRESULT GetHResult() const { return h_result_; } - - private: - HRESULT h_result_; -}; - -inline void ThrowIfFailed(const HRESULT h_result) { - if (FAILED(h_result)) throw HResultError(h_result); -} - -inline void ThrowIfFailed(const HRESULT h_result, std::string_view message) { - if (FAILED(h_result)) throw HResultError(h_result, message); -} - -class CRU_BASE_API Win32Error : public platform::PlatformException { - public: - // ::GetLastError is automatically called to get the error code. - // The same as Win32Error(::GetLastError(), message) - explicit Win32Error(String message); - Win32Error(DWORD error_code, String message); - - CRU_DEFAULT_COPY(Win32Error) - CRU_DEFAULT_MOVE(Win32Error) - - ~Win32Error() override = default; - - DWORD GetErrorCode() const { return error_code_; } - - private: - DWORD error_code_; -}; -} // namespace cru::platform::win - -#endif diff --git a/include/cru/common/platform/win/StreamConvert.h b/include/cru/common/platform/win/StreamConvert.h new file mode 100644 index 00000000..3499604a --- /dev/null +++ b/include/cru/common/platform/win/StreamConvert.h @@ -0,0 +1,14 @@ +#pragma once +#include "../../PreConfig.h" + +#ifdef CRU_PLATFORM_WINDOWS + +#include "../../io/Stream.h" + +#include + +namespace cru::platform::win { +CRU_BASE_API IStream* ConvertStreamToComStream(io::Stream* stream); +} + +#endif diff --git a/include/cru/common/platform/win/StreamConvert.hpp b/include/cru/common/platform/win/StreamConvert.hpp deleted file mode 100644 index 80800115..00000000 --- a/include/cru/common/platform/win/StreamConvert.hpp +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once -#include "../../PreConfig.hpp" - -#ifdef CRU_PLATFORM_WINDOWS - -#include "../../io/Stream.hpp" - -#include - -namespace cru::platform::win { -CRU_BASE_API IStream* ConvertStreamToComStream(io::Stream* stream); -} - -#endif diff --git a/include/cru/common/platform/win/Win32FileStream.h b/include/cru/common/platform/win/Win32FileStream.h new file mode 100644 index 00000000..521fd58d --- /dev/null +++ b/include/cru/common/platform/win/Win32FileStream.h @@ -0,0 +1,54 @@ +#pragma once + +#include "../../PreConfig.h" + +#ifdef CRU_PLATFORM_WINDOWS + +#include "../../String.h" +#include "../../io/OpenFileFlag.h" +#include "../../io/Stream.h" + +namespace cru::platform::win { +namespace details { +class Win32FileStreamPrivate; +} + +class CRU_BASE_API Win32FileStream : public io::Stream { + public: + Win32FileStream(String path, io::OpenFileFlag flags); + + CRU_DELETE_COPY(Win32FileStream) + CRU_DELETE_MOVE(Win32FileStream) + + ~Win32FileStream() override; + + public: + bool CanSeek() override; + Index Seek(Index offset, SeekOrigin origin = SeekOrigin::Current) override; + + bool CanRead() override; + Index Read(std::byte* buffer, Index offset, Index size) override; + using Stream::Read; + + bool CanWrite() override; + Index Write(const std::byte* buffer, Index offset, Index size) override; + using Stream::Write; + + void Close() override; + + String GetPath() const { return path_; } + io::OpenFileFlag GetOpenFileFlags() const { return flags_; } + + private: + void CheckClosed(); + + private: + String path_; + io::OpenFileFlag flags_; + bool closed_ = false; + + details::Win32FileStreamPrivate* p_; +}; +} // namespace cru::platform::win + +#endif diff --git a/include/cru/common/platform/win/Win32FileStream.hpp b/include/cru/common/platform/win/Win32FileStream.hpp deleted file mode 100644 index b5511ba3..00000000 --- a/include/cru/common/platform/win/Win32FileStream.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#pragma once - -#include "../../PreConfig.hpp" - -#ifdef CRU_PLATFORM_WINDOWS - -#include "../../String.hpp" -#include "../../io/OpenFileFlag.hpp" -#include "../../io/Stream.hpp" - -namespace cru::platform::win { -namespace details { -class Win32FileStreamPrivate; -} - -class CRU_BASE_API Win32FileStream : public io::Stream { - public: - Win32FileStream(String path, io::OpenFileFlag flags); - - CRU_DELETE_COPY(Win32FileStream) - CRU_DELETE_MOVE(Win32FileStream) - - ~Win32FileStream() override; - - public: - bool CanSeek() override; - Index Seek(Index offset, SeekOrigin origin = SeekOrigin::Current) override; - - bool CanRead() override; - Index Read(std::byte* buffer, Index offset, Index size) override; - using Stream::Read; - - bool CanWrite() override; - Index Write(const std::byte* buffer, Index offset, Index size) override; - using Stream::Write; - - void Close() override; - - String GetPath() const { return path_; } - io::OpenFileFlag GetOpenFileFlags() const { return flags_; } - - private: - void CheckClosed(); - - private: - String path_; - io::OpenFileFlag flags_; - bool closed_ = false; - - details::Win32FileStreamPrivate* p_; -}; -} // namespace cru::platform::win - -#endif diff --git a/include/cru/common/platform/win/WinPreConfig.h b/include/cru/common/platform/win/WinPreConfig.h new file mode 100644 index 00000000..c2284df3 --- /dev/null +++ b/include/cru/common/platform/win/WinPreConfig.h @@ -0,0 +1,13 @@ +#pragma once +#include "../../PreConfig.h" +#ifdef CRU_PLATFORM_WINDOWS + +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include +#undef CreateWindow +#undef DrawText +#undef CreateFont +#undef CreateEvent + +#endif diff --git a/include/cru/common/platform/win/WinPreConfig.hpp b/include/cru/common/platform/win/WinPreConfig.hpp deleted file mode 100644 index ac397820..00000000 --- a/include/cru/common/platform/win/WinPreConfig.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once -#include "../../PreConfig.hpp" -#ifdef CRU_PLATFORM_WINDOWS - -#define NOMINMAX -#define WIN32_LEAN_AND_MEAN -#include -#undef CreateWindow -#undef DrawText -#undef CreateFont -#undef CreateEvent - -#endif -- cgit v1.2.3