// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org) // Licensed under the Apache License, Version 2.0 (see LICENSE file) // Official repository: https://github.com/ne-foss-org/nekernel #ifndef CFKIT_PROPS_H #define CFKIT_PROPS_H #include #include #include #include #include #define kMaxPropLen (256U) namespace Kernel::CF { /// @brief handle to anything (number, ptr, string...) using PropertyId = UIntPtr; /// @brief Kernel property class. /// @note /prop/smp_max or /prop/kern_ver are properties. class Property { public: Property(); virtual ~Property(); public: Property& operator=(const Property&) = default; Property(const Property&) = default; BOOL StringEquals(KBasicString<>& name); PropertyId& GetValue(); KBasicString<>& GetKey(); private: KString fName{kMaxPropLen}; PropertyId fValue{0UL}; Ref fGUID{}; }; template using PropertyArray = Array; } // namespace Kernel::CF namespace Kernel { using namespace Kernel::CF; } #endif // !CFKIT_PROPS_H