summaryrefslogtreecommitdiffhomepage
path: root/dev/zka/NewKit
diff options
context:
space:
mode:
authorAmlal <amlal@el-mahrouss-logic.com>2024-09-27 11:41:44 +0200
committerAmlal <amlal@el-mahrouss-logic.com>2024-09-27 11:41:44 +0200
commit8db6fc60063757628f92bd1c4d4855775f4ff9e2 (patch)
treee27013969dc749bbb8131e24e4171034fdb80f56 /dev/zka/NewKit
parentdaa4f8c748d290feba8a71e889743a8a3097ad7d (diff)
feat&wip: Math API for CG, WiP HAL Paging API.
- NOTE: HAL Paging API is still in wip, issues have to be fixed. - Moved WM code to corecg driver. Signed-off-by: Amlal <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'dev/zka/NewKit')
-rw-r--r--dev/zka/NewKit/Json.hxx24
-rw-r--r--dev/zka/NewKit/Macros.hxx2
-rw-r--r--dev/zka/NewKit/Variant.hxx16
3 files changed, 31 insertions, 11 deletions
diff --git a/dev/zka/NewKit/Json.hxx b/dev/zka/NewKit/Json.hxx
index e37dc93d..a5893147 100644
--- a/dev/zka/NewKit/Json.hxx
+++ b/dev/zka/NewKit/Json.hxx
@@ -21,7 +21,7 @@
namespace Kernel
{
- /// @brief Json value class
+ /// @brief Json class
class JsonType final
{
public:
@@ -77,11 +77,22 @@ namespace Kernel
{
STATIC JsonType In(const Char* full_array)
{
- if (full_array[0] != '{')
- return JsonType::kNull;
+ auto start_val = '{';
+ auto end_val = '}';
+ Boolean probe_value = false;
+
+ if (full_array[0] != start_val)
+ {
+ if (full_array[0] != '[')
+ return JsonType::kNull;
+
+ start_val = '[';
+ end_val = ']';
+
+ probe_value = true;
+ }
SizeT len = rt_string_len(full_array);
- Boolean probe_value = false;
SizeT key_len = 0;
SizeT value_len = 0;
@@ -96,7 +107,7 @@ namespace Kernel
if (probe_value)
{
- if (full_array[i] == '}' ||
+ if (full_array[i] == end_val ||
full_array[i] == ',')
{
probe_value = false;
@@ -112,6 +123,9 @@ namespace Kernel
}
else
{
+ if (start_val == '[')
+ continue;
+
if (full_array[i] == ':')
{
probe_value = true;
diff --git a/dev/zka/NewKit/Macros.hxx b/dev/zka/NewKit/Macros.hxx
index 51b9575b..e765d87b 100644
--- a/dev/zka/NewKit/Macros.hxx
+++ b/dev/zka/NewKit/Macros.hxx
@@ -130,4 +130,4 @@
#define kSysChime "\\System\\startup.wav"
/// @brief The main system loader.
-#define kSysProcess "ZKA AUTHORITY\\KERNEL"
+#define kKernelProcessName "ZKA AUTHORITY\\KERNEL"
diff --git a/dev/zka/NewKit/Variant.hxx b/dev/zka/NewKit/Variant.hxx
index 015cec92..6b0f30bd 100644
--- a/dev/zka/NewKit/Variant.hxx
+++ b/dev/zka/NewKit/Variant.hxx
@@ -21,25 +21,25 @@ namespace Kernel
kBlob,
kNull,
kJson,
+ kXML,
};
public:
explicit Variant() = delete;
public:
- Variant& operator=(const Variant&) = default;
- Variant(const Variant&) = default;
+ ZKA_COPY_DEFAULT(Variant);
~Variant() = default;
public:
explicit Variant(StringView* stringView)
- : fPtr((voidPtr)stringView), fKind(VariantKind::kString)
+ : fPtr((VoidPtr)stringView), fKind(VariantKind::kString)
{
}
explicit Variant(JsonType* json)
- : fPtr((voidPtr)json), fKind(VariantKind::kJson)
+ : fPtr((VoidPtr)json), fKind(VariantKind::kJson)
{
}
@@ -48,7 +48,7 @@ namespace Kernel
{
}
- explicit Variant(voidPtr ptr)
+ explicit Variant(VoidPtr ptr)
: fPtr(ptr), fKind(VariantKind::kBlob)
{
}
@@ -57,6 +57,12 @@ namespace Kernel
const Char* ToString();
VoidPtr Leak();
+ template <typename T>
+ T* As()
+ {
+ return reinterpret_cast<T*>(fPtr);
+ }
+
private:
voidPtr fPtr{nullptr};
VariantKind fKind{VariantKind::kNull};