Maintainers
Pricing
Enterprise
More
More
Documentation
Try Live
Rankings
Install
Blog
Docs7
Ask
New
Add Docs
Refureku
https://jsoysouvanh.github.io/Refureku/
Admin
A documentation repository created by Site2MD for the Refureku project.
Tokens:
246,476
Snippets:
1,832
Trust Score:
9.7
Update:
4 months ago
Context
Chat
Benchmark
Latest
Show doc for...
Code
Info
Show Results
Tokens:
Raw
Copy
Link
Tokens:
Raw
Copy
Link
### getDatabase Source: https://jsoysouvanh.github.io/Refureku/_database_8h_source.html Get a reference to the program's database. ```APIDOC ## getDatabase ### Description Get a reference to the database of this program. ### Method N/A (Function Signature) ### Endpoint N/A ### Response #### Success Response - Returns a constant reference to the Database object. ``` -------------------------------- ### Class Members - Functions starting with 'i' Source: https://jsoysouvanh.github.io/Refureku/functions_func_i.html This section lists functions available within the Refureku library's class members, specifically those starting with the letter 'i'. These functions are part of the runtime reflection capabilities. ```APIDOC ## Functions starting with 'i' ### Description Provides access to various reflection-related functionalities for methods, types, and fields. ### Methods - **inheritBaseMethodProperties()** - Returns: `rfk::Method` - Description: Inherits properties of a base method. - **insert()** - Template Parameters: `T`, `Allocator` - Returns: `rfk::Vector< T, Allocator >` - Description: Inserts an element into a vector. - **invoke()** - Returns: `rfk::Function`, `rfk::Method`, `rfk::StaticMethod` - Description: Invokes a function, method, or static method. - **invokeUnsafe()** - Returns: `rfk::Method` - Description: Unsafely invokes a method. - **isBaseOf()** - Returns: `rfk::Struct` - Description: Checks if a type is a base of another struct. - **isCArray()** - Returns: `rfk::Type` - Description: Checks if a type is a C-style array. - **isConst()** - Returns: `rfk::MethodBase`, `rfk::Type` - Description: Checks if a method or type is const. - **isFinal()** - Returns: `rfk::MethodBase` - Description: Checks if a method is final. - **isInline()** - Returns: `rfk::Function`, `rfk::MethodBase` - Description: Checks if a function or method is inline. - **isLValueReference()** - Returns: `rfk::Type` - Description: Checks if a type is an l-value reference. - **isMutable()** - Returns: `rfk::FieldBase` - Description: Checks if a field is mutable. - **isOverride()** - Returns: `rfk::MethodBase` - Description: Checks if a method is an override. - **isPointer()** - Returns: `rfk::Type` - Description: Checks if a type is a pointer. - **isPureVirtual()** - Returns: `rfk::MethodBase` - Description: Checks if a method is pure virtual. - **isRValueReference()** - Returns: `rfk::Type` - Description: Checks if a type is an r-value reference. - **isStatic()** - Returns: `rfk::FieldBase`, `rfk::Function`, `rfk::MethodBase`, `rfk::Variable` - Description: Checks if a field, function, method, or variable is static. - **isSubclassOf()** - Returns: `rfk::Struct` - Description: Checks if a struct is a subclass of another. - **isValue()** - Returns: `rfk::Type` - Description: Checks if a type is a value type. - **isVirtual()** - Returns: `rfk::MethodBase` - Description: Checks if a method is virtual. - **isVolatile()** - Returns: `rfk::Type` - Description: Checks if a type is volatile. ``` -------------------------------- ### Get All Properties by Archetype Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_function_base.html Retrieves all properties that match the provided archetype (Struct). ```cpp RFK_NODISCARD REFUREKU_API Vector< Property const * > | getProperties (Struct const &archetype, bool isChildClassValid=true) const noexcept ``` -------------------------------- ### ClassTemplateInstantiation.h Source: https://jsoysouvanh.github.io/Refureku/dir_9819b9e3ee5d7a424649941234e5fd7f.html Header file for ClassTemplateInstantiation. ```c++ file | **ClassTemplateInstantiation.h** [code] ``` -------------------------------- ### Get Field Memory Offset Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_field.html Retrieves the memory offset of this field relative to the start of its owner class instance. This is useful for direct memory manipulation or calculating addresses. ```cpp RFK_NODISCARD REFUREKU_API std::size_t rfk::Field::getMemoryOffset | ( | | ) | const ``` -------------------------------- ### getArchetype Source: https://jsoysouvanh.github.io/Refureku/namespacerfk.html Get the archetype of any type if it exists. Note that this method will always return nullptr on protected/private nested archetypes. If a cv-qualified, pointer/reference, array type is passed, they are all ignored and the raw type archetype is returned. Example: int* -> int, int[2] -> int, const volatile int -> int, int& -> int. ```APIDOC ## getArchetype ### Description Get the archetype of any type if it exists. Note that this method will always return nullptr on protected/private nested archetypes. If a cv-qualified, pointer/reference, array type is passed, they are all ignored and the raw type archetype is returned. Example: int* -> int, int[2] -> int, const volatile int -> int, int& -> int. ### Signature ```cpp template<typename T > Archetype const * | getArchetype () noexcept ``` ### Specializations ```cpp REFUREKU_API Archetype const * | getArchetype< void > () noexcept REFUREKU_API Archetype const * | getArchetype < std::nullptr_t > () noexcept REFUREKU_API Archetype const * | getArchetype < bool > () noexcept REFUREKU_API Archetype const * | getArchetype < char > () noexcept REFUREKU_API Archetype const * | getArchetype < signed char > () noexcept REFUREKU_API Archetype const * | getArchetype < unsigned char > () noexcept REFUREKU_API Archetype const * | getArchetype < wchar_t > () noexcept REFUREKU_API Archetype const * | getArchetype < char16_t > () noexcept REFUREKU_API Archetype const * | getArchetype < char32_t > () noexcept REFUREKU_API Archetype const * | getArchetype < short > () noexcept REFUREKU_API Archetype const * | getArchetype < unsigned short > () noexcept REFUREKU_API Archetype const * | getArchetype < int > () noexcept REFUREKU_API Archetype const * | getArchetype < unsigned int > () noexcept REFUREKU_API Archetype const * | getArchetype < long > () noexcept REFUREKU_API Archetype const * | getArchetype < unsigned long > () noexcept REFUREKU_API Archetype const * | getArchetype < long long > () noexcept REFUREKU_API Archetype const * | getArchetype < unsigned long long > () noexcept REFUREKU_API Archetype const * | getArchetype < float > () noexcept REFUREKU_API Archetype const * | getArchetype < double > () noexcept REFUREKU_API Archetype const * | getArchetype < long double > () noexcept ``` ``` -------------------------------- ### ClassTemplateInstantiationRegisterer.h Source: https://jsoysouvanh.github.io/Refureku/dir_9819b9e3ee5d7a424649941234e5fd7f.html Header file for ClassTemplateInstantiationRegisterer. ```c++ file | **ClassTemplateInstantiationRegisterer.h** [code] ``` -------------------------------- ### Get Namespaces Count Source: https://jsoysouvanh.github.io/Refureku/_namespace_8h_source.html Returns the total number of namespaces. Marked as 'NODISCARD' and 'API'. ```cpp REFUREKU_API std::size_t getNamespacesCount() const noexcept; ``` -------------------------------- ### Entity Get Properties Count Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_archetype.html Gets the total number of properties attached to this entity. ```APIDOC ## getPropertiesCount ### Description Get the number of properties attached to this entity. ### Method const noexcept ### Endpoint std::size_t getPropertiesCount () const noexcept ``` -------------------------------- ### getInstance Source: https://jsoysouvanh.github.io/Refureku/_database_8h_source.html Retrieves the singleton instance of the Database. ```APIDOC ## getInstance ### Description Retrieves the singleton instance of the Database. ### Method N/A (This is a C++ method signature) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) - **Database&**: A reference to the singleton Database instance. #### Response Example N/A ``` -------------------------------- ### Variable Value Access Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_variable.html Methods for getting and setting the value stored in a Variable. The `get` method retrieves the value, while `set` methods allow updating it. ```APIDOC ## Variable Value Access ### Description Methods for getting and setting the value stored in a Variable. The `get` method retrieves the value, while `set` methods allow updating it. ### Methods - **template<typename ValueType> ValueType get() const** Get the value stored in this variable. This method is not safe if you provide a wrong ValueType. - **template<typename ValueType> void set(ValueType &&value) const** Set some value in this variable. This method is not safe if you provide a wrong ValueType. - **void set(void const *valuePtr, std::size_t valueSize) const** Copy dataSize bytes starting from value into the variable. ``` -------------------------------- ### Accessing the Reflection Database with getDatabase Source: https://jsoysouvanh.github.io/Refureku/namespacerfk.html Provides access to the global database of reflection information. ```cpp REFUREKU_API Database const & rfk::getDatabase() noexcept ``` -------------------------------- ### getTemplateInstantiation (args, argsCount) Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template.html Retrieves an existing template instantiation based on provided arguments. ```APIDOC ## getTemplateInstantiation (args, argsCount) ### Description Get an existing template instantiation corresponding to the provided arguments. This overload accepts a dynamic number of arguments. ### Method `getTemplateInstantiation` ### Parameters - **args** (TemplateArgument const **args) - A pointer to an array of template arguments. - **argsCount** (std::size_t) - The number of template arguments. ### Returns - `ClassTemplateInstantiation const *` - A pointer to the matching template instantiation, or nullptr if none exists. ``` -------------------------------- ### Get Archetype (Generic) Source: https://jsoysouvanh.github.io/Refureku/_get_archetype_8h_source.html A generic function to get the archetype of any type if it exists. It's important to note that this method will always return nullptr for protected types. ```cpp Archetype const * getArchetype() noexcept; ``` -------------------------------- ### foreachTemplateInstantiation Source: https://jsoysouvanh.github.io/Refureku/_class_template_8h_source.html Executes a provided visitor function on each registered template instantiation of this class. This is useful for iterating over all instantiations and performing actions on them. ```APIDOC ## foreachTemplateInstantiation ### Description Execute the given visitor on all template instantiations of this class. ### Method bool ### Parameters - **visitor** (Visitor< ClassTemplateInstantiation >) - The visitor function to execute for each instantiation. - **userData** (void *) - Optional user data to pass to the visitor function. ``` -------------------------------- ### getType Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_field_base.html Get the type of this variable. ```APIDOC ## getType ### Description Get the type of this variable. ### Method `const noexcept` ### Endpoint `Type const & getType() const noexcept` ### Parameters None ### Response #### Success Response - **Type const &**: A reference to the type of the variable. ``` -------------------------------- ### Foreach Namespace Source: https://jsoysouvanh.github.io/Refureku/_namespace_8h_source.html Iterates over all namespaces using a provided visitor function and user data. ```cpp REFUREKU_API bool foreachNamespace(Visitor<Namespace> visitor, void* userData) const; ``` -------------------------------- ### ETemplateParameterKind.h Source: https://jsoysouvanh.github.io/Refureku/dir_9819b9e3ee5d7a424649941234e5fd7f.html Header file for ETemplateParameterKind. ```c++ file | **ETemplateParameterKind.h** [code] ``` -------------------------------- ### getName Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_enum_value.html Gets the name of the entity. ```APIDOC ## getName() const noexcept ### Description Get the name of the entity. ### Returns - char const * - The name of the entity. ``` -------------------------------- ### Vector Constructors Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_vector.html Provides documentation for the various constructors of the Vector class, including default construction, copy construction, move construction, and construction from another Vector type. ```APIDOC ## Vector Constructors ### Vector(std::size_t initialCapacity=0u) Default constructor. Initializes an empty vector with an optional initial capacity. ### Vector(Vector< U, UAlloc > &&) Move constructor. Retrieves data from another Vector type. ### Vector(Vector const &) Copy constructor. Creates a new vector with a copy of the elements from another vector. ### Vector(Vector &&) Move constructor. Transfers ownership of resources from another vector. ### Vector() Default constructor. Initializes an empty vector. ``` -------------------------------- ### Entity::getName Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_static_field.html Gets the name of the entity. ```APIDOC ## Entity::getName ### Description Get the name of the entity. ### Method `char const *getName() const noexcept` ### Parameters None ### Returns - `char const *`: A C-style string representing the name of the entity. ``` -------------------------------- ### getOwner Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_field_base.html Get the struct owning this field. ```APIDOC ## getOwner ### Description Get the struct owning this field. ### Method `const noexcept` ### Endpoint `Struct const * getOwner() const noexcept` ### Parameters None ### Response #### Success Response - **Struct const ***: A pointer to the struct that owns this field. ``` -------------------------------- ### Vector Constructors and Destructor Source: https://jsoysouvanh.github.io/Refureku/_vector_8h_source.html Provides details on how to create, copy, move, and destroy Vector objects. ```APIDOC ## Vector Constructors and Destructor ### Description Constructs, copies, moves, and destroys `Vector` objects. ### Methods - `Vector(std::size_t initialCapacity = 0u) noexcept` - Creates a new Vector with an optional initial capacity. - `template <typename U, typename UAlloc> Vector(Vector<U, UAlloc>&&) noexcept` - Move constructor from a Vector of a different type and allocator. - `Vector(Vector const&)` - Copy constructor. - `Vector(Vector&&) noexcept` - Move constructor. - `~Vector()` - Destructor. ``` -------------------------------- ### getTemplateInstantiation (ArgsCount) Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template.html Retrieves an existing template instantiation based on provided arguments. ```APIDOC ## getTemplateInstantiation (ArgsCount) ### Description Get an existing template instantiation corresponding to the provided arguments. This overload is for a fixed number of arguments. ### Method `getTemplateInstantiation` ### Parameters - **args** (TemplateArgument const *(&)[ArgsCount]) - An array of template arguments. ### Returns - `ClassTemplateInstantiation const *` - A pointer to the matching template instantiation, or nullptr if none exists. ``` -------------------------------- ### getId Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_enum_value.html Gets the program-unique ID of the entity. ```APIDOC ## getId() const noexcept ### Description Get the program-unique id of the entity. ### Returns - std::size_t - The program-unique ID of the entity. ``` -------------------------------- ### getOuterEntity Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_enum_value.html Gets the outer entity of the current entity. ```APIDOC ## getOuterEntity() const noexcept ### Description Get the outer entity of the entity. It basically corresponds to the entity this entity was declared in from a source-code point of view. A nullptr outer entity means the entity was declared at file level. ### Returns - Entity const * - A pointer to the outer entity, or nullptr if declared at file level. ``` -------------------------------- ### ClassTemplate.h Source: https://jsoysouvanh.github.io/Refureku/dir_9819b9e3ee5d7a424649941234e5fd7f.html Header file for ClassTemplate. ```c++ file | **ClassTemplate.h** [code] ``` -------------------------------- ### Entity Get Name Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_archetype.html Retrieves the name of the entity. ```APIDOC ## getName ### Description Get the name of the entity. ### Method const noexcept ### Endpoint char const * getName () const noexcept ``` -------------------------------- ### ArchetypeRegisterer.h Source: https://jsoysouvanh.github.io/Refureku/dir_c5ecaa3be77ae8936c9b23ac652c51e0.html Header file for Archetype registration utilities in Refureku. ```c++ #include "EClassKind.h" ``` -------------------------------- ### EEntityKind.h Source: https://jsoysouvanh.github.io/Refureku/dir_15ef7b66a13b4bc42c12b47122335cc2.html Header file defining the EEntityKind enumeration in Refureku. ```c++ namespace refureku { enum class EEntityKind : uint8 { UNDEFINED, NAMESPACE, CLASS, ENUM, ENUMERATOR, FUNCTION, VARIABLE, TYPEDEF, METHOD, FIELD, PROPERTY, COUNT }; } ``` -------------------------------- ### getTemplateInstantiation (by array) Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template.html Retrieves an existing template instantiation corresponding to the provided template arguments. ```APIDOC ## getTemplateInstantiation() [1/2] ### Description Get an existing template instantiation corresponding to the provided arguments. ### Method ClassTemplateInstantiation const * ### Parameters #### Path Parameters - **_args_** (TemplateArgument const *(&)[ArgsCount]) - Required - Template arguments. ### Returns The found class template instantiation corresponding to the provided arguments if it exists, else nullptr. ### Remarks This method is a template function and is marked as `noexcept` and `RFK_NODISCARD`. ``` -------------------------------- ### Namespace Members - a Source: https://jsoysouvanh.github.io/Refureku/namespacemembers.html Members starting with 'a' in the Refureku namespaces. ```APIDOC ## archetypeCast() ### Description Casts a given value to an archetype. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` -------------------------------- ### MethodBase Constructors Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_method.html Shows the internal constructors for MethodBase, used for initialization. ```cpp REFUREKU_INTERNAL | **MethodBase** (MethodBaseImpl *implementation) noexcept REFUREKU_INTERNAL | **MethodBase** (MethodBase &&) noexcept ``` -------------------------------- ### rfk::Struct::getStaticMethodsByName Source: https://jsoysouvanh.github.io/Refureku/_struct_8h_source.html Get static methods by their name. ```APIDOC ## rfk::Struct::getStaticMethodsByName ### Description Get static methods by their name. ### Method Vector< StaticMethod const * > ### Parameters - **name** (char const *) - The name of the static methods. - **minFlags** (EMethodFlags) - Minimum flags the methods must have. Defaults to EMethodFlags::Default. - **shouldInspectInherited** (bool) - Whether to inspect inherited static methods. Defaults to false. ``` -------------------------------- ### Get Property by Name Source: https://jsoysouvanh.github.io/Refureku/_entity_8h_source.html Retrieves a property by its string name. This is useful when the property name is known at runtime. ```cpp RFK_NODISCARD REFUREKU_API Property const* getPropertyByName(char const* name) const noexcept; ``` -------------------------------- ### rfk::Struct::getNestedEnumByName Source: https://jsoysouvanh.github.io/Refureku/_struct_8h_source.html Get a nested enum by its name. ```APIDOC ## rfk::Struct::getNestedEnumByName ### Description Get a nested enum by its name. ### Method const Enum * ### Parameters - **name** (char const *) - The name of the nested enum. - **access** (EAccessSpecifier) - The access specifier for the enum. Defaults to EAccessSpecifier::Undefined. ``` -------------------------------- ### Dynamic Library Export/Import Macros (KODGEN Parsing) Source: https://jsoysouvanh.github.io/Refureku/_config_8h_source.html Defines REFUREKU_API and REFUREKU_INTERNAL macros for dynamic library export/import when KODGEN is parsing, and handles template API declarations. ```c++ #if defined(KODGEN_PARSING) #define REFUREKU_API __attribute__((dllexport)) #define REFUREKU_INTERNAL #define REFUREKU_TEMPLATE_API(...) #elif defined(_WIN32) || defined(__CYGWIN__) ``` -------------------------------- ### EntityCast.h Source: https://jsoysouvanh.github.io/Refureku/dir_15ef7b66a13b4bc42c12b47122335cc2.html Header file for entity casting utilities in Refureku. ```c++ #pragma once #include "Entity.h" #include "TypeInfo/Type.h" namespace refureku { template<typename T> T* entity_cast(Entity* entity) noexcept; template<typename T> const T* entity_cast(const Entity* entity) noexcept; } ``` -------------------------------- ### rfk::Struct::getStaticFieldByName Source: https://jsoysouvanh.github.io/Refureku/_struct_8h_source.html Get a static field by its name. ```APIDOC ## rfk::Struct::getStaticFieldByName ### Description Get a static field by its name. ### Method const StaticField * ### Parameters - **name** (char const *) - The name of the static field. - **minFlags** (EFieldFlags) - Minimum flags the field must have. Defaults to EFieldFlags::Default. - **shouldInspectInherited** (bool) - Whether to inspect inherited static fields. Defaults to false. ``` -------------------------------- ### foreachTemplateInstantiation Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template-members.html Iterates over all class template instantiations associated with the current class template. This method allows for custom processing of each instantiation via a visitor pattern. ```APIDOC ## foreachTemplateInstantiation ### Description Iterates over all class template instantiations associated with the current class template. ### Method `foreachTemplateInstantiation(Visitor< ClassTemplateInstantiation > visitor, void *userData) const` ### Parameters * **visitor** (`Visitor< ClassTemplateInstantiation >`): A visitor object that will be called for each template instantiation. * **userData** (`void *`): User-defined data to be passed to the visitor. ### Returns void ``` -------------------------------- ### getAccess Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_field_base.html Get the access specifier of this field in its owner struct/class. ```APIDOC ## getAccess ### Description Get the access specifier of this field in its owner struct/class. ### Method `const noexcept` ### Endpoint `EAccessSpecifier getAccess() const noexcept` ### Parameters None ### Response #### Success Response - **EAccessSpecifier**: The access specifier of the field. ``` -------------------------------- ### Entity Constructors Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_method.html Shows the internal constructors for Entity, used for initialization. ```cpp REFUREKU_INTERNAL | **Entity** (Entity &&) noexcept REFUREKU_INTERNAL | **Entity** (EntityImpl *implementation) noexcept ``` -------------------------------- ### getPropertiesCount Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_enum_value.html Gets the total number of properties attached to this entity. ```APIDOC ## getPropertiesCount() const noexcept ### Description Get the number of properties attached to this entity. ### Returns - std::size_t - The number of properties. ``` -------------------------------- ### Archetype.h Source: https://jsoysouvanh.github.io/Refureku/dir_c5ecaa3be77ae8936c9b23ac652c51e0.html Header file for the Archetype functionality in Refureku. ```c++ #include "ArchetypeRegisterer.h" ``` -------------------------------- ### Entity Get ID Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_archetype.html Retrieves the program-unique ID of the entity. ```APIDOC ## getId ### Description Get the program-unique id of the entity. ### Method const noexcept ### Endpoint std::size_t getId () const noexcept ``` -------------------------------- ### StaticField::getConstPtr Source: https://jsoysouvanh.github.io/Refureku/_static_field_8h_source.html Gets a const pointer to this static field. ```APIDOC ## StaticField::getConstPtr ### Description Get a const pointer to this static field. ### Method GET (conceptual) ### Endpoint N/A (Method within a class) ### Parameters None. ### Response #### Success Response - **void const*** - A const pointer to the static field's data. ### Response Example ```json { "example": "void const*" } ``` ``` -------------------------------- ### Foreach Class Source: https://jsoysouvanh.github.io/Refureku/_namespace_8h_source.html Iterates over all classes using a provided visitor function and user data. ```cpp REFUREKU_API bool foreachClass(Visitor<Class> visitor, void* userData) const; ``` -------------------------------- ### StaticMethod Constructor Source: https://jsoysouvanh.github.io/Refureku/_static_method_8h_source.html Initializes a StaticMethod object with its name, ID, return type, internal method pointer, flags, and outer entity. ```cpp #include "Refureku/TypeInfo/Functions/MethodBase.h" #include "Refureku/TypeInfo/Functions/NonMemberFunction.h" namespace rfk { class StaticMethod final : public MethodBase { public: REFUREKU_API StaticMethod(char const* name, std::size_t id, Type const& returnType, ICallable* internalMethod, EMethodFlags flags, Entity const* outerEntity) noexcept; REFUREKU_INTERNAL StaticMethod(StaticMethod&&) noexcept; REFUREKU_API ~StaticMethod() noexcept; template <typename ReturnType = void, typename... ArgTypes> ReturnType invoke(ArgTypes&&... args) const; template <typename ReturnType = void, typename... ArgTypes> ReturnType checkedInvoke(ArgTypes&&... args) const; private: //Forward declaration class StaticMethodImpl; template <typename ReturnType, typename... ArgTypes> ReturnType internalInvoke(ArgTypes&&... args) const; }; REFUREKU_TEMPLATE_API(rfk::Allocator<StaticMethod const*>); REFUREKU_TEMPLATE_API(rfk::Vector<StaticMethod const*, rfk::Allocator<StaticMethod const*>>); #include "Refureku/TypeInfo/Functions/StaticMethod.inl" } ``` -------------------------------- ### Get Entity ID Source: https://jsoysouvanh.github.io/Refureku/_entity_8h_source.html Retrieves the unique identifier for the entity. ```cpp RFK_NODISCARD REFUREKU_API std::size_t getId() const noexcept; ``` -------------------------------- ### Get Entity Name Source: https://jsoysouvanh.github.io/Refureku/_entity_8h_source.html Retrieves the string name of the entity. ```cpp RFK_NODISCARD REFUREKU_API char const* getName() const noexcept; ``` -------------------------------- ### ClassTemplateInstantiation Methods Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template_instantiation-members.html Provides methods to access information about class template instantiations. ```APIDOC ## getTemplateArgumentAt ### Description Retrieves a template argument at a specific index. ### Method N/A (Method Signature) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response - **argument** (Type of template argument) - Description of the template argument #### Response Example N/A ## getTemplateArgumentsCount ### Description Retrieves the total number of template arguments for the class template instantiation. ### Method N/A (Method Signature) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response - **count** (std::size_t) - The number of template arguments. #### Response Example N/A ``` -------------------------------- ### Iterate Through Properties Source: https://jsoysouvanh.github.io/Refureku/_entity_8h_source.html Applies a visitor function to each property of the entity. This is an efficient way to process all properties. ```cpp REFUREKU_API bool foreachProperty(Visitor<Property> visitor, void* userData) const; ``` -------------------------------- ### Namespace Members - s Source: https://jsoysouvanh.github.io/Refureku/namespacemembers.html Members starting with 's' in the Refureku namespaces. ```APIDOC ## staticFieldCast() ### Description Casts a given value to a static field. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` ```APIDOC ## staticMethodCast() ### Description Casts a given value to a static method. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` ```APIDOC ## structCast() ### Description Casts a given value to a struct. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` ```APIDOC ## structTemplateCast() ### Description Casts a given value to a struct template. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` ```APIDOC ## structTemplateInstantiationCast() ### Description Casts a given value to a struct template instantiation. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` -------------------------------- ### Signature and Parameter Functions Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_method.html Functions for checking method signatures and retrieving parameter information. ```APIDOC ## Signature and Parameter Functions ### Description Functions for checking method signatures and retrieving parameter information. ### Methods - `hasSameSignature(MethodBase const &other)`: Checks if another function has the same prototype as this function. - `hasSameSignature<ReturnType, ArgTypes...>()`: Checks whether two functions have the same signature. - `hasSameSignature(FunctionBase const &other)`: Checks if another function has the same prototype as this function. - `hasSameSignature<ArgTypes...>()`: Checks if two functions have the same parameters. - `getReturnType()`: Gets the return type of this function. - `getParameterAt(std::size_t index)`: Retrieves the parameter at the given index. - `getParametersCount()`: Gets the number of parameters of this function. - `addParameter(char const *name, std::size_t id, Type const &type)`: Adds a parameter to the function. ``` -------------------------------- ### Namespace Members - m Source: https://jsoysouvanh.github.io/Refureku/namespacemembers.html Members starting with 'm' in the Refureku namespaces. ```APIDOC ## methodCast() ### Description Casts a given value to a method. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` -------------------------------- ### foreachFileLevelNamespace Source: https://jsoysouvanh.github.io/Refureku/_database_8h_source.html Execute a visitor function on all file-level namespaces. ```APIDOC ## foreachFileLevelNamespace ### Description Execute the given visitor on all file level namespaces. ### Method N/A (Function Signature) ### Endpoint N/A ### Parameters #### Path Parameters - **visitor** (Visitor< Namespace >) - Required - The visitor function to execute. - **userData** (void*) - Optional - User-defined data to pass to the visitor. ``` -------------------------------- ### Namespace Members - d Source: https://jsoysouvanh.github.io/Refureku/namespacemembers.html Members starting with 'd' in the Refureku namespaces. ```APIDOC ## dynamicCast() ### Description Performs a dynamic cast on a value. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` ```APIDOC ## dynamicDownCast() ### Description Performs a dynamic downcast on a value. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` ```APIDOC ## dynamicUpCast() ### Description Performs a dynamic upcast on a value. ### Method Not specified (likely a C++ function call). ### Endpoint N/A ### Parameters None explicitly documented. ### Request Example N/A ### Response N/A ``` -------------------------------- ### Entity::getPropertiesCount Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_static_field.html Gets the total number of properties attached to this entity. ```APIDOC ## Entity::getPropertiesCount ### Description Get the number of properties attached to this entity. ### Method `std::size_t getPropertiesCount() const noexcept` ### Parameters None ### Returns - `std::size_t`: The number of properties. ``` -------------------------------- ### Methods Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template.html Retrieve methods by name or predicate. Supports template signatures, inspecting inherited methods, and retrieving multiple methods by name. ```APIDOC ## getMethodByName (Template Signature) ### Description Get a method by name and template signature. Useful for disambiguating overloads. ### Method template<typename MethodSignature > const noexcept ### Parameters #### Path Parameters - **name** (char const *) - Required - The name of the method. - **minFlags** (EMethodFlags) - Optional - Minimum flags the method must have. Defaults to EMethodFlags::Default. - **shouldInspectInherited** (bool) - Optional - Whether to search in inherited classes. Defaults to false. ### Response #### Success Response (Method const *) Returns a pointer to the method if found, otherwise nullptr. ``` ```APIDOC ## getMethodByName (No Template Signature) ### Description Get a method by its name, minimum flags, and whether to inspect inherited methods. ### Method const noexcept ### Parameters #### Path Parameters - **name** (char const *) - Required - The name of the method to retrieve. - **minFlags** (EMethodFlags) - Optional - Minimum flags the method must have. Defaults to EMethodFlags::Default. - **shouldInspectInherited** (bool) - Optional - Whether to search in inherited classes. Defaults to false. ### Response #### Success Response (Method const *) Returns a pointer to the method if found, otherwise nullptr. ``` ```APIDOC ## getMethodsByName ### Description Retrieve all methods with the given name, with options for minimum flags and inspecting inherited methods. ### Method const noexcept ### Parameters #### Path Parameters - **name** (char const *) - Required - The name of the methods to retrieve. - **minFlags** (EMethodFlags) - Optional - Minimum flags the methods must have. Defaults to EMethodFlags::Default. - **shouldInspectInherited** (bool) - Optional - Whether to search in inherited classes. Defaults to false. ### Response #### Success Response (Vector<Method const *>) Returns a vector of pointers to the methods with the specified name. ``` ```APIDOC ## getMethodByPredicate ### Description Retrieve the first method satisfying the provided predicate, with options to inspect inherited methods. ### Method const ### Parameters #### Path Parameters - **predicate** (Predicate<Method>) - Required - The predicate to filter methods. - **userData** (void*) - Optional - User-defined data to pass to the predicate. - **shouldInspectInherited** (bool) - Optional - Whether to search in inherited classes. Defaults to false. ### Response #### Success Response (Method const *) Returns a pointer to the first method that satisfies the predicate, or nullptr if none is found. ``` ```APIDOC ## getMethodsByPredicate ### Description Retrieve all methods satisfying the provided predicate, with options for inspecting inherited methods. ### Method const ### Parameters #### Path Parameters - **predicate** (Predicate<Method>) - Required - The predicate to filter methods. - **userData** (void*) - Optional - User-defined data to pass to the predicate. - **shouldInspectInherited** (bool) - Optional - Whether to search in inherited classes. Defaults to false. ### Response #### Success Response (Vector<Method const *>) Returns a vector of pointers to the methods that satisfy the predicate. ``` ```APIDOC ## foreachMethod ### Description Execute the given visitor on all methods in this struct, with an option to inspect inherited methods. ### Method const ### Parameters #### Path Parameters - **visitor** (Visitor<Method>) - Required - The visitor function to execute. - **userData** (void*) - Optional - User-defined data to pass to the visitor. - **shouldInspectInherited** (bool) - Optional - Whether to search in inherited classes. Defaults to false. ``` -------------------------------- ### Dynamic Library Export/Import Macros (Windows) Source: https://jsoysouvanh.github.io/Refureku/_config_8h_source.html Defines REFUREKU_API and REFUREKU_INTERNAL macros for dynamic library export/import on Windows, with specific handling for GCC/Clang and MSVC, and template class declarations. ```c++ #if defined(REFUREKU_EXPORT) #if defined(__GNUC__) #define REFUREKU_API __attribute__((dllexport)) #else #define REFUREKU_API __declspec(dllexport) #endif #define REFUREKU_TEMPLATE_API_DEF REFUREKU_API #define REFUREKU_TEMPLATE_API(...) extern template class __VA_ARGS__ #else #if defined(__GNUC__) #define REFUREKU_API __attribute__((dllimport)) #else #define REFUREKU_API __declspec(dllimport) #endif #define REFUREKU_TEMPLATE_API(...) template class REFUREKU_API __VA_ARGS__ #endif #define REFUREKU_INTERNAL ``` -------------------------------- ### getVariablesCount Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_namespace.html Gets the total number of variables nested within this namespace. ```APIDOC ## getVariablesCount() ### Description Get the number of variables nested in this namespace. ### Returns The number of variables nested in this namespace. ``` -------------------------------- ### getDirectParentsCount Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template.html Gets the number of reflected direct parents this struct is inheriting from. ```APIDOC ## getDirectParentsCount ### Description Get the number of reflected direct parents this struct is inheriting from. ### Method `getDirectParentsCount` ### Returns - `std::size_t` - The number of direct parents. ``` -------------------------------- ### foreachFileLevelFunction Source: https://jsoysouvanh.github.io/Refureku/_database_8h_source.html Execute a visitor function on all file-level functions. ```APIDOC ## foreachFileLevelFunction ### Description Execute the given visitor on all file level functions. ### Method N/A (Function Signature) ### Endpoint N/A ### Parameters #### Path Parameters - **visitor** (Visitor< Function >) - Required - The visitor function to execute. - **userData** (void*) - Optional - User-defined data to pass to the visitor. ``` -------------------------------- ### FunctionBase Constructors Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_method.html Shows the internal constructors for FunctionBase, used for initialization. ```cpp REFUREKU_INTERNAL | **FunctionBase** (FunctionBaseImpl *implementation) noexcept REFUREKU_INTERNAL | **FunctionBase** (FunctionBase &&) noexcept ``` -------------------------------- ### getAccessSpecifier Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_enum.html Get the access specifier of the archetype if it is nested in a struct or class. ```APIDOC ## getAccessSpecifier ### Description Get the access specifier of the archetype if it is nested in a struct or class. ### Method GET ### Endpoint `/archetypes/{archetype_id}/access-specifier` ### Parameters #### Path Parameters - **archetype_id** (string) - The ID of the archetype. ### Response #### Success Response (200) - **EAccessSpecifier** - The access specifier (e.g., Public, Private, Protected, Undefined). ``` -------------------------------- ### rfk::Struct::getNestedArchetypesCount Source: https://jsoysouvanh.github.io/Refureku/_struct_8h_source.html Get the number of archetypes nested in this struct. ```APIDOC ## rfk::Struct::getNestedArchetypesCount ### Description Get the number of archetypes nested in this struct. ### Method std::size_t ``` -------------------------------- ### getTemplateInstantiation (by pointer and count) Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_class_template.html Retrieves an existing template instantiation corresponding to the provided template arguments using a pointer and count. ```APIDOC ## getTemplateInstantiation() [2/2] ### Description Get an existing template instantiation corresponding to the provided arguments. ### Method ClassTemplateInstantiation const * ### Parameters #### Path Parameters - **_args_** (TemplateArgument const **) - Required - Pointer to an array of argument pointers. - **_argsCount_** (std::size_t) - Required - Number of template arguments. ### Returns The found class template instantiation corresponding to the provided arguments if it exists, else nullptr. ### Remarks This method is marked as `noexcept`. ``` -------------------------------- ### rfk::Struct::getDirectParentAt Source: https://jsoysouvanh.github.io/Refureku/_struct_8h_source.html Get the index'th direct parent of this struct. ```APIDOC ## rfk::Struct::getDirectParentAt ### Description Get the index'th direct parent of this struct. If index is greater than or equal to getDirectParentsCount(...). ### Method const ParentStruct & ### Parameters - **index** (std::size_t) - The index of the direct parent to retrieve. ``` -------------------------------- ### Entity.h Source: https://jsoysouvanh.github.io/Refureku/dir_15ef7b66a13b4bc42c12b47122335cc2.html Core header file for the Entity class in Refureku. ```c++ #pragma once #include <cstdint> #include <string> #include <vector> #include "TypeInfo/Type.h" namespace refureku { class Namespace; // Forward declaration class Entity { public: Entity(const char* aName, Namespace* aOwner = nullptr) noexcept; virtual ~Entity() noexcept = default; const char* getName() const noexcept; Namespace* getOwner() const noexcept; virtual EEntityKind getEntityKind() const noexcept = 0; protected: const char* _name; Namespace* _owner; }; } ``` -------------------------------- ### Dynamic Library Export/Import Macros (Unix-like) Source: https://jsoysouvanh.github.io/Refureku/_config_8h_source.html Defines REFUREKU_API and REFUREKU_INTERNAL macros for dynamic library export/import on Unix-like systems (GCC 4+), using visibility attributes, and handles template class declarations. ```c++ #if __GNUC__ >= 4 #if defined(REFUREKU_EXPORT) #define REFUREKU_API __attribute__((visibility("default"))) #define REFUREKU_INTERNAL __attribute__((visibility("hidden"))) #define REFUREKU_TEMPLATE_API_DEF #define REFUREKU_TEMPLATE_API(...) extern template class REFUREKU_API __VA_ARGS__ #else #define REFUREKU_API #define REFUREKU_INTERNAL #define REFUREKU_TEMPLATE_API(...) #endif #else ``` -------------------------------- ### Entity Get Properties by Name Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_archetype.html Retrieves all properties identified by their name. ```APIDOC ## getPropertiesByName ### Description Retrieve all properties named with the provided name. ### Method const noexcept ### Endpoint Vector< Property const * > getPropertiesByName (char const *name) const noexcept ``` -------------------------------- ### getFileLevelEnumsCount Source: https://jsoysouvanh.github.io/Refureku/_database_8h_source.html Get the total number of reflected file-level enums in the database. ```APIDOC ## getFileLevelEnumsCount ### Description Get the number of reflected file level classes in the database. ### Method N/A (Function Signature) ### Endpoint N/A ### Response #### Success Response - Returns the count of file-level enums as std::size_t. ``` -------------------------------- ### Refureku.h Header File Source: https://jsoysouvanh.github.io/Refureku/_refureku_8h_source.html This is the main header file for the Refureku library. It includes various sub-headers for different reflection components like TypeInfo, Variables, Functions, Namespaces, and Archetypes. It also includes native properties and exception definitions. ```cpp #pragma once #include "Refureku/Config.h" #include "Refureku/TypeInfo/Type.h" #include "Refureku/TypeInfo/Database.h" #include "Refureku/TypeInfo/Entity/Entity.h" #include "Refureku/TypeInfo/Entity/EntityCast.h" #include "Refureku/TypeInfo/Variables/Variable.h" #include "Refureku/TypeInfo/Variables/Field.h" #include "Refureku/TypeInfo/Variables/StaticField.h" #include "Refureku/TypeInfo/Functions/Function.h" #include "Refureku/TypeInfo/Functions/Method.h" #include "Refureku/TypeInfo/Functions/StaticMethod.h" #include "Refureku/TypeInfo/Namespace/Namespace.h" #include "Refureku/TypeInfo/Archetypes/Archetype.h" #include "Refureku/TypeInfo/Archetypes/FundamentalArchetype.h" #include "Refureku/TypeInfo/Archetypes/Enum.h" #include "Refureku/TypeInfo/Archetypes/EnumValue.h" #include "Refureku/TypeInfo/Archetypes/Struct.h" #include "Refureku/TypeInfo/Archetypes/ParentStruct.h" #include "Refureku/TypeInfo/Archetypes/GetArchetype.h" #include "Refureku/TypeInfo/Archetypes/Template/ClassTemplate.h" #include "Refureku/TypeInfo/Archetypes/Template/ClassTemplateInstantiation.h" #include "Refureku/TypeInfo/Archetypes/Template/TypeTemplateParameter.h" #include "Refureku/TypeInfo/Archetypes/Template/NonTypeTemplateParameter.h" #include "Refureku/TypeInfo/Archetypes/Template/TemplateTemplateParameter.h" #include "Refureku/TypeInfo/Archetypes/Template/TypeTemplateArgument.h" #include "Refureku/TypeInfo/Archetypes/Template/NonTypeTemplateArgument.h" #include "Refureku/TypeInfo/Archetypes/Template/TemplateTemplateArgument.h" #include "Refureku/NativeProperties.h" #include "Refureku/Exceptions/ReturnTypeMismatch.h" #include "Refureku/Exceptions/ArgCountMismatch.h" #include "Refureku/Exceptions/ArgTypeMismatch.h" #include "Refureku/Exceptions/ConstViolation.h" #include "Refureku/Exceptions/BadNamespaceFormat.h" ``` -------------------------------- ### getFileLevelStructsCount Source: https://jsoysouvanh.github.io/Refureku/_database_8h_source.html Get the total number of reflected file-level structs in the database. ```APIDOC ## getFileLevelStructsCount ### Description Get the number of reflected file level structs in the database. ### Method N/A (Function Signature) ### Endpoint N/A ### Response #### Success Response - Returns the count of file-level structs as std::size_t. ``` -------------------------------- ### Dynamic Library Export/Import Macros (Default/Other) Source: https://jsoysouvanh.github.io/Refureku/_config_8h_source.html Default definitions for REFUREKU_API and REFUREKU_INTERNAL macros when not on Windows or specific Unix-like compilers, and handles template API declarations. ```c++ #define REFUREKU_API #define REFUREKU_INTERNAL #define REFUREKU_TEMPLATE_API(...) ``` -------------------------------- ### Function Signature and Parameter Management Source: https://jsoysouvanh.github.io/Refureku/classrfk_1_1_function.html Methods for checking function signature equality and managing function parameters, including adding parameters and setting capacity. ```APIDOC ## hasSameSignature (template) ### Description Checks whether two functions have the same signature. Non-reflected types are compared as equal since their archetype is the same. ### Parameters - `ArgTypes` (template parameter pack): Types of the arguments to compare. ### Return Type - `bool`: `true` if the signatures match, `false` otherwise. ## hasSameSignature (FunctionBase const &) ### Description Checks that another function has the same prototype as this function. Non-reflected types are compared as equal, so `NonReflectedType1` and `NonReflectedType2` are considered equal since their archetype is the same. ### Parameters - `other` (`FunctionBase const &`): The other function to compare against. ### Return Type - `bool`: `true` if the signatures match, `false` otherwise. ## hasSameParameters (template) ### Description Checks if the function has the same parameters as specified by the template argument pack. ### Parameters - `ArgTypes` (template parameter pack): Types of the parameters to check. ### Return Type - `bool`: `true` if the parameters match, `false` otherwise. ## addParameter ### Description Adds a parameter to the function. ### Parameters - `name` (`char const *`): The name of the parameter. - `id` (`std::size_t`): The ID of the parameter. - `type` (`Type const &`): The type of the parameter. ## setParametersCapacity ### Description Sets the number of parameters for this function. Useful to avoid reallocations when adding many parameters. If the current number of parameters is already greater than or equal to the provided count, this method has no effect. ### Parameters - `capacity` (`std::size_t`): The desired capacity for parameters. ``` -------------------------------- ### getFileLevelClassesCount Source: https://jsoysouvanh.github.io/Refureku/_database_8h_source.html Get the total number of reflected file-level classes in the database. ```APIDOC ## getFileLevelClassesCount ### Description Get the number of reflected file level classes in the database. ### Method N/A (Function Signature) ### Endpoint N/A ### Response #### Success Response - Returns the count of file-level classes as std::size_t. ```