From 373309d6d945803139ae8ff30dc81a8b5bace22d Mon Sep 17 00:00:00 2001 From: SirLynix Date: Mon, 22 Jan 2024 16:49:21 +0100 Subject: [PATCH] Core: Move platform-specific code to PlatformImpl namespace --- include/Nazara/Core/DynLib.hpp | 7 +++++-- include/Nazara/Core/File.hpp | 7 +++++-- src/Nazara/Core/DynLib.cpp | 2 +- src/Nazara/Core/File.cpp | 4 ++-- src/Nazara/Core/HardwareInfo.cpp | 20 ++++++++++---------- src/Nazara/Core/Posix/DynLibImpl.cpp | 2 +- src/Nazara/Core/Posix/DynLibImpl.hpp | 4 +--- src/Nazara/Core/Posix/FileImpl.cpp | 2 +- src/Nazara/Core/Posix/FileImpl.hpp | 4 +++- src/Nazara/Core/Posix/HardwareInfoImpl.cpp | 2 +- src/Nazara/Core/Posix/HardwareInfoImpl.hpp | 2 +- src/Nazara/Core/Posix/TimeImpl.cpp | 2 +- src/Nazara/Core/Posix/TimeImpl.hpp | 2 +- src/Nazara/Core/Time.cpp | 8 ++++---- src/Nazara/Core/Win32/DynLibImpl.cpp | 2 +- src/Nazara/Core/Win32/DynLibImpl.hpp | 2 +- src/Nazara/Core/Win32/FileImpl.cpp | 2 +- src/Nazara/Core/Win32/FileImpl.hpp | 5 +---- src/Nazara/Core/Win32/HardwareInfoImpl.cpp | 2 +- src/Nazara/Core/Win32/HardwareInfoImpl.hpp | 2 +- src/Nazara/Core/Win32/TimeImpl.cpp | 2 +- src/Nazara/Core/Win32/TimeImpl.hpp | 2 +- 22 files changed, 45 insertions(+), 42 deletions(-) diff --git a/include/Nazara/Core/DynLib.hpp b/include/Nazara/Core/DynLib.hpp index ca0747fcd..abd157fe5 100644 --- a/include/Nazara/Core/DynLib.hpp +++ b/include/Nazara/Core/DynLib.hpp @@ -28,7 +28,10 @@ namespace Nz { using DynLibFunc = void (*)(void); // "Generic" type of pointer to function - class DynLibImpl; + namespace PlatformImpl + { + class DynLibImpl; + } class NAZARA_CORE_API DynLib { @@ -51,7 +54,7 @@ namespace Nz private: mutable std::string m_lastError; - std::unique_ptr m_impl; + std::unique_ptr m_impl; }; } diff --git a/include/Nazara/Core/File.hpp b/include/Nazara/Core/File.hpp index c00495963..3be21cca8 100644 --- a/include/Nazara/Core/File.hpp +++ b/include/Nazara/Core/File.hpp @@ -19,7 +19,10 @@ namespace Nz { - class FileImpl; + namespace PlatformImpl + { + class FileImpl; + } class NAZARA_CORE_API File : public Stream { @@ -70,7 +73,7 @@ namespace Nz std::size_t WriteBlock(const void* buffer, std::size_t size) override; std::filesystem::path m_filePath; - std::unique_ptr m_impl; + std::unique_ptr m_impl; }; NAZARA_CORE_API bool HashAppend(AbstractHash& hash, const File& originalFile); diff --git a/src/Nazara/Core/DynLib.cpp b/src/Nazara/Core/DynLib.cpp index 423a3e576..602365b06 100644 --- a/src/Nazara/Core/DynLib.cpp +++ b/src/Nazara/Core/DynLib.cpp @@ -73,7 +73,7 @@ namespace Nz if (libraryPath.extension() != NAZARA_DYNLIB_EXTENSION) libraryPath += NAZARA_DYNLIB_EXTENSION; - auto impl = std::make_unique(); + auto impl = std::make_unique(); if (!impl->Load(libraryPath, &m_lastError)) { NazaraErrorFmt("failed to load library: {0}", m_lastError); diff --git a/src/Nazara/Core/File.cpp b/src/Nazara/Core/File.cpp index 9797680a2..aa7992cbf 100644 --- a/src/Nazara/Core/File.cpp +++ b/src/Nazara/Core/File.cpp @@ -188,7 +188,7 @@ namespace Nz return true; } - std::unique_ptr impl = std::make_unique(this); + std::unique_ptr impl = std::make_unique(this); if (!impl->Open(m_filePath, openMode)) { ErrorFlags flags(ErrorMode::Silent); // Silent by default @@ -240,7 +240,7 @@ namespace Nz if (filePath.empty()) return false; - std::unique_ptr impl = std::make_unique(this); + std::unique_ptr impl = std::make_unique(this); if (!impl->Open(filePath, m_openMode)) { NazaraErrorFmt("failed to open new file; {0}", Error::GetLastSystemError()); diff --git a/src/Nazara/Core/HardwareInfo.cpp b/src/Nazara/Core/HardwareInfo.cpp index f9a5a4652..c6c52c50f 100644 --- a/src/Nazara/Core/HardwareInfo.cpp +++ b/src/Nazara/Core/HardwareInfo.cpp @@ -117,31 +117,31 @@ namespace Nz void HardwareInfo::Cpuid(UInt32 functionId, UInt32 subFunctionId, UInt32 result[4]) { - return HardwareInfoImpl::Cpuid(functionId, subFunctionId, result); + return PlatformImpl::HardwareInfoImpl::Cpuid(functionId, subFunctionId, result); } bool HardwareInfo::IsCpuidSupported() { - return HardwareInfoImpl::IsCpuidSupported(); + return PlatformImpl::HardwareInfoImpl::IsCpuidSupported(); } void HardwareInfo::FetchCPUInfo() { NAZARA_USE_ANONYMOUS_NAMESPACE - m_cpuThreadCount = std::max(HardwareInfoImpl::GetProcessorCount(), 1U); + m_cpuThreadCount = std::max(PlatformImpl::HardwareInfoImpl::GetProcessorCount(), 1U); m_cpuCapabilities.fill(false); m_cpuVendor = ProcessorVendor::Unknown; std::strcpy(m_cpuBrandString.data(), "CPU from unknown vendor - cpuid not supported"); - if (!HardwareInfoImpl::IsCpuidSupported()) + if (!PlatformImpl::HardwareInfoImpl::IsCpuidSupported()) return; // To begin, we get the id of the constructor and the id of maximal functions supported by the CPUID std::array registers; - HardwareInfoImpl::Cpuid(0, 0, registers.data()); + PlatformImpl::HardwareInfoImpl::Cpuid(0, 0, registers.data()); UInt32& eax = registers[0]; UInt32& ebx = registers[1]; @@ -159,7 +159,7 @@ namespace Nz if (eax >= 1) { // Retrieval of certain capacities of the processor (ECX and EDX, function 1) - HardwareInfoImpl::Cpuid(1, 0, registers.data()); + PlatformImpl::HardwareInfoImpl::Cpuid(1, 0, registers.data()); m_cpuCapabilities[ProcessorCap::AES] = (ecx & (1U << 25)) != 0; m_cpuCapabilities[ProcessorCap::AVX] = (ecx & (1U << 28)) != 0; @@ -176,13 +176,13 @@ namespace Nz } // Retrieval of biggest extended function handled (EAX, function 0x80000000) - HardwareInfoImpl::Cpuid(0x80000000, 0, registers.data()); + PlatformImpl::HardwareInfoImpl::Cpuid(0x80000000, 0, registers.data()); UInt32 maxSupportedExtendedFunction = eax; if (maxSupportedExtendedFunction >= 0x80000001) { // Retrieval of extended capabilities of the processor (ECX and EDX, function 0x80000001) - HardwareInfoImpl::Cpuid(0x80000001, 0, registers.data()); + PlatformImpl::HardwareInfoImpl::Cpuid(0x80000001, 0, registers.data()); m_cpuCapabilities[ProcessorCap::x64] = (edx & (1U << 29)) != 0; // Support of 64bits, doesn't mean executable is 64bits m_cpuCapabilities[ProcessorCap::FMA4] = (ecx & (1U << 16)) != 0; @@ -195,7 +195,7 @@ namespace Nz char* ptr = &m_cpuBrandString[0]; for (UInt32 code = 0x80000002; code <= 0x80000004; ++code) { - HardwareInfoImpl::Cpuid(code, 0, registers.data()); + PlatformImpl::HardwareInfoImpl::Cpuid(code, 0, registers.data()); std::memcpy(ptr, ®isters[0], 4*sizeof(UInt32)); // We add the 16 bytes to the string ptr += 4 * sizeof(UInt32); @@ -208,6 +208,6 @@ namespace Nz void HardwareInfo::FetchMemoryInfo() { - m_systemTotalMemory = HardwareInfoImpl::GetTotalMemory(); + m_systemTotalMemory = PlatformImpl::HardwareInfoImpl::GetTotalMemory(); } } diff --git a/src/Nazara/Core/Posix/DynLibImpl.cpp b/src/Nazara/Core/Posix/DynLibImpl.cpp index 9874d7021..6423a29b6 100644 --- a/src/Nazara/Core/Posix/DynLibImpl.cpp +++ b/src/Nazara/Core/Posix/DynLibImpl.cpp @@ -9,7 +9,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { DynLibImpl::~DynLibImpl() { diff --git a/src/Nazara/Core/Posix/DynLibImpl.hpp b/src/Nazara/Core/Posix/DynLibImpl.hpp index a579837a4..05e23a657 100644 --- a/src/Nazara/Core/Posix/DynLibImpl.hpp +++ b/src/Nazara/Core/Posix/DynLibImpl.hpp @@ -12,10 +12,8 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { - class String; - class DynLibImpl { public: diff --git a/src/Nazara/Core/Posix/FileImpl.cpp b/src/Nazara/Core/Posix/FileImpl.cpp index 4db064b46..42e0275c6 100644 --- a/src/Nazara/Core/Posix/FileImpl.cpp +++ b/src/Nazara/Core/Posix/FileImpl.cpp @@ -14,7 +14,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { FileImpl::FileImpl(const File* parent) : m_fileDescriptor(-1), diff --git a/src/Nazara/Core/Posix/FileImpl.hpp b/src/Nazara/Core/Posix/FileImpl.hpp index 817861788..2f615281a 100644 --- a/src/Nazara/Core/Posix/FileImpl.hpp +++ b/src/Nazara/Core/Posix/FileImpl.hpp @@ -37,8 +37,10 @@ namespace Nz { class File; - class String; +} +namespace Nz::PlatformImpl +{ class FileImpl { public: diff --git a/src/Nazara/Core/Posix/HardwareInfoImpl.cpp b/src/Nazara/Core/Posix/HardwareInfoImpl.cpp index ee88e15a2..b9be624ec 100644 --- a/src/Nazara/Core/Posix/HardwareInfoImpl.cpp +++ b/src/Nazara/Core/Posix/HardwareInfoImpl.cpp @@ -7,7 +7,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { void HardwareInfoImpl::Cpuid(UInt32 functionId, UInt32 subFunctionId, UInt32 registers[4]) { diff --git a/src/Nazara/Core/Posix/HardwareInfoImpl.hpp b/src/Nazara/Core/Posix/HardwareInfoImpl.hpp index a379d870f..b37f62e27 100644 --- a/src/Nazara/Core/Posix/HardwareInfoImpl.hpp +++ b/src/Nazara/Core/Posix/HardwareInfoImpl.hpp @@ -9,7 +9,7 @@ #include -namespace Nz +namespace Nz::PlatformImpl { class HardwareInfoImpl { diff --git a/src/Nazara/Core/Posix/TimeImpl.cpp b/src/Nazara/Core/Posix/TimeImpl.cpp index c575049f4..f76249773 100644 --- a/src/Nazara/Core/Posix/TimeImpl.cpp +++ b/src/Nazara/Core/Posix/TimeImpl.cpp @@ -6,7 +6,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { bool InitializeHighPrecisionTimer() { diff --git a/src/Nazara/Core/Posix/TimeImpl.hpp b/src/Nazara/Core/Posix/TimeImpl.hpp index f5ea62db6..8f80b7fa6 100644 --- a/src/Nazara/Core/Posix/TimeImpl.hpp +++ b/src/Nazara/Core/Posix/TimeImpl.hpp @@ -10,7 +10,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { bool InitializeHighPrecisionTimer(); Time GetElapsedNanosecondsImpl(); diff --git a/src/Nazara/Core/Time.cpp b/src/Nazara/Core/Time.cpp index d70df61dd..2804bd0c5 100644 --- a/src/Nazara/Core/Time.cpp +++ b/src/Nazara/Core/Time.cpp @@ -22,15 +22,15 @@ namespace Nz { Time GetElapsedNanosecondsFirstRun() { - if (InitializeHighPrecisionTimer()) - GetElapsedNanoseconds = GetElapsedNanosecondsImpl; + if (PlatformImpl::InitializeHighPrecisionTimer()) + GetElapsedNanoseconds = PlatformImpl::GetElapsedNanosecondsImpl; else - GetElapsedNanoseconds = GetElapsedMillisecondsImpl; + GetElapsedNanoseconds = PlatformImpl::GetElapsedMillisecondsImpl; return GetElapsedNanoseconds(); } } - GetElapsedTimeFunction GetElapsedMilliseconds = GetElapsedMillisecondsImpl; + GetElapsedTimeFunction GetElapsedMilliseconds = PlatformImpl::GetElapsedMillisecondsImpl; GetElapsedTimeFunction GetElapsedNanoseconds = NAZARA_ANONYMOUS_NAMESPACE_PREFIX(GetElapsedNanosecondsFirstRun); } diff --git a/src/Nazara/Core/Win32/DynLibImpl.cpp b/src/Nazara/Core/Win32/DynLibImpl.cpp index f9f9b999f..9259cc64f 100644 --- a/src/Nazara/Core/Win32/DynLibImpl.cpp +++ b/src/Nazara/Core/Win32/DynLibImpl.cpp @@ -9,7 +9,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { DynLibImpl::~DynLibImpl() { diff --git a/src/Nazara/Core/Win32/DynLibImpl.hpp b/src/Nazara/Core/Win32/DynLibImpl.hpp index c5c715443..ce64e386b 100644 --- a/src/Nazara/Core/Win32/DynLibImpl.hpp +++ b/src/Nazara/Core/Win32/DynLibImpl.hpp @@ -13,7 +13,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { class DynLibImpl { diff --git a/src/Nazara/Core/Win32/FileImpl.cpp b/src/Nazara/Core/Win32/FileImpl.cpp index d46910372..682e9540a 100644 --- a/src/Nazara/Core/Win32/FileImpl.cpp +++ b/src/Nazara/Core/Win32/FileImpl.cpp @@ -11,7 +11,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { FileImpl::FileImpl(const File* parent) : m_endOfFile(false), diff --git a/src/Nazara/Core/Win32/FileImpl.hpp b/src/Nazara/Core/Win32/FileImpl.hpp index 796f6fc5a..f50975d67 100644 --- a/src/Nazara/Core/Win32/FileImpl.hpp +++ b/src/Nazara/Core/Win32/FileImpl.hpp @@ -12,11 +12,8 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { - class File; - class String; - class FileImpl { public: diff --git a/src/Nazara/Core/Win32/HardwareInfoImpl.cpp b/src/Nazara/Core/Win32/HardwareInfoImpl.cpp index dc95c4f89..8bb80be44 100644 --- a/src/Nazara/Core/Win32/HardwareInfoImpl.cpp +++ b/src/Nazara/Core/Win32/HardwareInfoImpl.cpp @@ -12,7 +12,7 @@ #include -namespace Nz +namespace Nz::PlatformImpl { void HardwareInfoImpl::Cpuid(UInt32 functionId, UInt32 subFunctionId, UInt32 registers[4]) { diff --git a/src/Nazara/Core/Win32/HardwareInfoImpl.hpp b/src/Nazara/Core/Win32/HardwareInfoImpl.hpp index 9459a5800..2364bd63a 100644 --- a/src/Nazara/Core/Win32/HardwareInfoImpl.hpp +++ b/src/Nazara/Core/Win32/HardwareInfoImpl.hpp @@ -9,7 +9,7 @@ #include -namespace Nz +namespace Nz::PlatformImpl { class HardwareInfoImpl { diff --git a/src/Nazara/Core/Win32/TimeImpl.cpp b/src/Nazara/Core/Win32/TimeImpl.cpp index a32aeb0b6..c9de0fc8a 100644 --- a/src/Nazara/Core/Win32/TimeImpl.cpp +++ b/src/Nazara/Core/Win32/TimeImpl.cpp @@ -8,7 +8,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { namespace NAZARA_ANONYMOUS_NAMESPACE { diff --git a/src/Nazara/Core/Win32/TimeImpl.hpp b/src/Nazara/Core/Win32/TimeImpl.hpp index ff58aea04..d74770ca5 100644 --- a/src/Nazara/Core/Win32/TimeImpl.hpp +++ b/src/Nazara/Core/Win32/TimeImpl.hpp @@ -10,7 +10,7 @@ #include #include -namespace Nz +namespace Nz::PlatformImpl { bool InitializeHighPrecisionTimer(); Time GetElapsedNanosecondsImpl();