From 8fc59848c87cc3cb05d9cf983f9dbd9d0e7aa390 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 12 Mar 2025 19:39:59 +0100 Subject: TQ-23: -> Implement CFWindowConnection_ structure. -> Need a controller class now. -> Refactor StringBuilder to KStringBuilder --- dev/Kernel/NewKit/KString.h | 4 ++-- dev/Kernel/src/FS/NeFS.cc | 24 ++++++++++++------------ dev/Kernel/src/GUIDWizard.cc | 2 +- dev/Kernel/src/KString.cc | 10 +++++----- dev/Kernel/src/Network/IPAddr.cc | 4 ++-- dev/Kernel/src/PEFCodeMgr.cc | 10 +++++----- dev/Usr/LibCF/Object.h | 2 ++ dev/Usr/LibCF/String.h | 16 ++++++++++++++++ dev/Usr/LibGUI/.keep | 0 dev/Usr/LibWM/Core.h | 15 --------------- dev/Usr/LibWM/WindowConnection.h | 31 +++++++++++++++++++++++++++++++ 11 files changed, 76 insertions(+), 42 deletions(-) create mode 100644 dev/Usr/LibCF/String.h create mode 100644 dev/Usr/LibGUI/.keep delete mode 100644 dev/Usr/LibWM/Core.h create mode 100644 dev/Usr/LibWM/WindowConnection.h (limited to 'dev') diff --git a/dev/Kernel/NewKit/KString.h b/dev/Kernel/NewKit/KString.h index 85da1f3c..e7525a9c 100644 --- a/dev/Kernel/NewKit/KString.h +++ b/dev/Kernel/NewKit/KString.h @@ -80,10 +80,10 @@ namespace NeOS Size fDataSz{0}; Size fCur{0}; - friend class StringBuilder; + friend class KStringBuilder; }; - struct StringBuilder final + struct KStringBuilder final { static ErrorOr Construct(const Char* data); static const Char* FromBool(const Char* fmt, bool n); diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc index 150249d9..b63f510e 100644 --- a/dev/Kernel/src/FS/NeFS.cc +++ b/dev/Kernel/src/FS/NeFS.cc @@ -102,8 +102,8 @@ _Output BOOL NeFileSystemParser::CreateFork(_Input NEFS_FORK_STRUCT& the_fork) kout << "Error: Fork does exists.\r"; /// sanity check. - if (StringBuilder::Equals(cur_fork.ForkName, the_fork.ForkName) && - StringBuilder::Equals(cur_fork.CatalogName, the_fork.CatalogName)) + if (KStringBuilder::Equals(cur_fork.ForkName, the_fork.ForkName) && + KStringBuilder::Equals(cur_fork.CatalogName, the_fork.CatalogName)) break; lba_prev = lba; @@ -202,7 +202,7 @@ _Output NEFS_FORK_STRUCT* NeFileSystemParser::FindFork(_Input NEFS_CATALOG_STRUC return nullptr; } - if (StringBuilder::Equals(the_fork->ForkName, name)) + if (KStringBuilder::Equals(the_fork->ForkName, name)) { break; } @@ -441,7 +441,7 @@ _Output NEFS_CATALOG_STRUCT* NeFileSystemParser::CreateCatalog(_Input const Char return found_catalog; } else if ((temporary_catalog.Flags & kNeFSFlagCreated) && - StringBuilder::Equals(temporary_catalog.Name, name)) + KStringBuilder::Equals(temporary_catalog.Name, name)) { rt_copy_memory(&temporary_catalog, child_catalog, sizeof(NEFS_CATALOG_STRUCT)); @@ -684,8 +684,8 @@ bool NeFileSystemParser::WriteCatalog(_Input const Char* catalog_name, Bool is_r kout << catalog_name << kendl; if ((fork_data_input->Flags & kNeFSFlagCreated) && - StringBuilder::Equals(fork_data_input->ForkName, fork_name) && - StringBuilder::Equals(fork_data_input->CatalogName, catalog_name) && + KStringBuilder::Equals(fork_data_input->ForkName, fork_name) && + KStringBuilder::Equals(fork_data_input->CatalogName, catalog_name) && fork_data_input->DataSize == size_of_data) { // ===================================================== // @@ -748,7 +748,7 @@ _Output NEFS_CATALOG_STRUCT* NeFileSystemParser::FindCatalog(_Input const Char* auto start_catalog_lba = kNeFSCatalogStartAddress; const auto kStartCatalogList = start_catalog_lba; - if (!StringBuilder::Equals(catalog_name, NeFileSystemHelper::Root()) && local_search) + if (!KStringBuilder::Equals(catalog_name, NeFileSystemHelper::Root()) && local_search) { Char parent_name[kNeFSCatalogNameLen] = {0}; @@ -774,7 +774,7 @@ _Output NEFS_CATALOG_STRUCT* NeFileSystemParser::FindCatalog(_Input const Char* NEFS_CATALOG_STRUCT* parent_catalog = this->FindCatalog(parent_name, out_lba); if (parent_catalog && - !StringBuilder::Equals(parent_name, NeFileSystemHelper::Root())) + !KStringBuilder::Equals(parent_name, NeFileSystemHelper::Root())) { start_catalog_lba = parent_catalog->NextSibling; @@ -822,7 +822,7 @@ kNeFSSearchThroughCatalogList: drive.fInput(drive.fPacket); - if (StringBuilder::Equals(tmp_name, temporary_catalog.Name)) + if (KStringBuilder::Equals(tmp_name, temporary_catalog.Name)) { if (temporary_catalog.Status == kNeFSStatusLocked && !search_hidden) @@ -901,7 +901,7 @@ _Output Boolean NeFileSystemParser::CloseCatalog(_Input _Output NEFS_CATALOG_STR _Output Boolean NeFileSystemParser::RemoveCatalog(_Input const Char* catalog_name) { if (!catalog_name || - StringBuilder::Equals(catalog_name, NeFileSystemHelper::Root())) + KStringBuilder::Equals(catalog_name, NeFileSystemHelper::Root())) { err_global_get() = kErrorInternal; return false; @@ -1002,8 +1002,8 @@ VoidPtr NeFileSystemParser::ReadCatalog(_Input _Output NEFS_CATALOG_STRUCT* cata kout << "ForkName: " << fs_fork_data->ForkName << kendl; kout << "CatalogName: " << fs_fork_data->CatalogName << kendl; - if (StringBuilder::Equals(forkName, fs_fork_data->ForkName) && - StringBuilder::Equals(catalog->Name, fs_fork_data->CatalogName)) + if (KStringBuilder::Equals(forkName, fs_fork_data->ForkName) && + KStringBuilder::Equals(catalog->Name, fs_fork_data->CatalogName)) break; dataForkLba = fs_fork_data->NextSibling; diff --git a/dev/Kernel/src/GUIDWizard.cc b/dev/Kernel/src/GUIDWizard.cc index 26b55dc0..96e15d85 100644 --- a/dev/Kernel/src/GUIDWizard.cc +++ b/dev/Kernel/src/GUIDWizard.cc @@ -62,7 +62,7 @@ namespace CFKit::XRN::Version1 buf[index] = seq.Leak()->u32[index] + kUUIDAsciiBegin; } - auto view = StringBuilder::Construct(buf); + auto view = KStringBuilder::Construct(buf); if (view) return ErrorOr>{view.Leak()}; diff --git a/dev/Kernel/src/KString.cc b/dev/Kernel/src/KString.cc index 717625a1..dbc730fd 100644 --- a/dev/Kernel/src/KString.cc +++ b/dev/Kernel/src/KString.cc @@ -83,7 +83,7 @@ namespace NeOS return true; } - ErrorOr StringBuilder::Construct(const Char* data) + ErrorOr KStringBuilder::Construct(const Char* data) { if (!data || *data == 0) return {}; @@ -94,7 +94,7 @@ namespace NeOS return ErrorOr(*view); } - const Char* StringBuilder::FromBool(const Char* fmt, bool i) + const Char* KStringBuilder::FromBool(const Char* fmt, bool i) { if (!fmt) return ("?"); @@ -129,7 +129,7 @@ namespace NeOS return ret; } - bool StringBuilder::Equals(const Char* lhs, const Char* rhs) + bool KStringBuilder::Equals(const Char* lhs, const Char* rhs) { if (rt_string_len(rhs) != rt_string_len(lhs)) return false; @@ -143,7 +143,7 @@ namespace NeOS return true; } - bool StringBuilder::Equals(const WideChar* lhs, const WideChar* rhs) + bool KStringBuilder::Equals(const WideChar* lhs, const WideChar* rhs) { for (Size index = 0; rhs[index] != 0; ++index) { @@ -154,7 +154,7 @@ namespace NeOS return true; } - const Char* StringBuilder::Format(const Char* fmt, const Char* fmt2) + const Char* KStringBuilder::Format(const Char* fmt, const Char* fmt2) { if (!fmt || !fmt2) return ("?"); diff --git a/dev/Kernel/src/Network/IPAddr.cc b/dev/Kernel/src/Network/IPAddr.cc index 215ffcd2..1f9da6b9 100644 --- a/dev/Kernel/src/Network/IPAddr.cc +++ b/dev/Kernel/src/Network/IPAddr.cc @@ -92,13 +92,13 @@ namespace NeOS ErrorOr IPFactory::ToKString(Ref& ipv6) { - auto str = StringBuilder::Construct(ipv6.Leak().Address()); + auto str = KStringBuilder::Construct(ipv6.Leak().Address()); return str; } ErrorOr IPFactory::ToKString(Ref& ipv4) { - auto str = StringBuilder::Construct(ipv4.Leak().Address()); + auto str = KStringBuilder::Construct(ipv4.Leak().Address()); return str; } diff --git a/dev/Kernel/src/PEFCodeMgr.cc b/dev/Kernel/src/PEFCodeMgr.cc index 4be6afeb..e39e72ca 100644 --- a/dev/Kernel/src/PEFCodeMgr.cc +++ b/dev/Kernel/src/PEFCodeMgr.cc @@ -62,7 +62,7 @@ namespace NeOS : fCachedBlob(nullptr), fBad(false), fFatBinary(false) { fFile.New(const_cast(path), kRestrictRB); - fPath = StringBuilder::Construct(path).Leak(); + fPath = KStringBuilder::Construct(path).Leak(); auto kPefHeader = "PEF_CONTAINER"; @@ -135,15 +135,15 @@ namespace NeOS switch (kind) { case kPefCode: { - error_or_symbol = StringBuilder::Construct(cContainerKinds[0]); // code symbol. + error_or_symbol = KStringBuilder::Construct(cContainerKinds[0]); // code symbol. break; } case kPefData: { - error_or_symbol = StringBuilder::Construct(cContainerKinds[1]); // data symbol. + error_or_symbol = KStringBuilder::Construct(cContainerKinds[1]); // data symbol. break; } case kPefZero: { - error_or_symbol = StringBuilder::Construct(cContainerKinds[2]); // block starting symbol. + error_or_symbol = KStringBuilder::Construct(cContainerKinds[2]); // block starting symbol. break; } default: @@ -165,7 +165,7 @@ namespace NeOS for (SizeT index = 0; index < container->Count; ++index) { - if (StringBuilder::Equals(container_header->Name, + if (KStringBuilder::Equals(container_header->Name, error_or_symbol.Leak().Leak().CData())) { if (container_header->Kind == kind) diff --git a/dev/Usr/LibCF/Object.h b/dev/Usr/LibCF/Object.h index c7369ee3..4899661e 100644 --- a/dev/Usr/LibCF/Object.h +++ b/dev/Usr/LibCF/Object.h @@ -9,6 +9,8 @@ #include +#define CF_OBJECT : public LibCF::CFObject + namespace LibCF { class CFObject; diff --git a/dev/Usr/LibCF/String.h b/dev/Usr/LibCF/String.h new file mode 100644 index 00000000..457a999d --- /dev/null +++ b/dev/Usr/LibCF/String.h @@ -0,0 +1,16 @@ + +/* ------------------------------------------- + + Copyright (C) 2025, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include + +namespace LibCF +{ + class CFString; + +} \ No newline at end of file diff --git a/dev/Usr/LibGUI/.keep b/dev/Usr/LibGUI/.keep new file mode 100644 index 00000000..e69de29b diff --git a/dev/Usr/LibWM/Core.h b/dev/Usr/LibWM/Core.h deleted file mode 100644 index 83a2443e..00000000 --- a/dev/Usr/LibWM/Core.h +++ /dev/null @@ -1,15 +0,0 @@ - -/* ------------------------------------------- - - Copyright (C) 2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#pragma once - -#include - -namespace LibCF -{ - class CFWindowConnection_; -} // namespace LibCF \ No newline at end of file diff --git a/dev/Usr/LibWM/WindowConnection.h b/dev/Usr/LibWM/WindowConnection.h new file mode 100644 index 00000000..3a3e39a6 --- /dev/null +++ b/dev/Usr/LibWM/WindowConnection.h @@ -0,0 +1,31 @@ + +/* ------------------------------------------- + + Copyright (C) 2025, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include +#include + +namespace LibCF +{ + class CFWindowConnection_; + + class CFWindowConnection_ CF_OBJECT + { + public: + explicit CFWindowConnection_() = default; + virtual ~CFWindowConnection_() = default; + + SCI_COPY_DEFAULT(CFWindowConnection_); + + constexpr static SInt16 kMaxPeers = 16; + + Char mConnName[256] = {0}; + SInt32 mConnPeersCnt{0}; + CFArray mConnPeers; + }; +} // namespace LibCF \ No newline at end of file -- cgit v1.2.3