|
|
REFUREKU_INTERNAL | Namespace (char const *name, std::size_t id) noexcept |
| |
|
| Namespace (Namespace &&)=delete |
| |
| RFK_NODISCARD REFUREKU_API Namespace const * | getNamespaceByName (char const *name) const noexcept |
| | Retrieve a namespace contained in this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Namespace const * | getNamespaceByPredicate (Predicate< Namespace > predicate, void *userData) const |
| | Retrieve the first nested namespace satisfying the provided predicate. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Namespace const * > | getNamespacesByPredicate (Predicate< Namespace > predicate, void *userData) const |
| | Retrieve all nested namespaces satisfying the provided predicate. More...
|
| |
| REFUREKU_API bool | foreachNamespace (Visitor< Namespace > visitor, void *userData) const |
| | Execute the given visitor on all nested namespaces. More...
|
| |
| REFUREKU_API std::size_t | getNamespacesCount () const noexcept |
| | Get the number of namespaces nested in this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Struct const * | getStructByName (char const *name) const noexcept |
| | Retrieve a struct from this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Struct const * | getStructByPredicate (Predicate< Struct > predicate, void *userData) const |
| | Retrieve the first nested struct satisfying the provided predicate. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Struct const * > | getStructsByPredicate (Predicate< Struct > predicate, void *userData) const |
| | Retrieve all nested structs satisfying the provided predicate. More...
|
| |
| REFUREKU_API bool | foreachStruct (Visitor< Struct > visitor, void *userData) const |
| | Execute the given visitor on all nested structs. More...
|
| |
| RFK_NODISCARD REFUREKU_API Class const * | getClassByName (char const *name) const noexcept |
| | Retrieve a class from this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Class const * | getClassByPredicate (Predicate< Class > predicate, void *userData) const |
| | Retrieve the first nested class satisfying the provided predicate. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Class const * > | getClassesByPredicate (Predicate< Class > predicate, void *userData) const |
| | Retrieve all nested classes satisfying the provided predicate. More...
|
| |
| REFUREKU_API bool | foreachClass (Visitor< Class > visitor, void *userData) const |
| | Execute the given visitor on all nested classes. More...
|
| |
| RFK_NODISCARD REFUREKU_API Enum const * | getEnumByName (char const *name) const noexcept |
| | Retrieve an enum from this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Enum const * | getEnumByPredicate (Predicate< Enum > predicate, void *userData) const |
| | Retrieve the first nested enum satisfying the provided predicate. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Enum const * > | getEnumsByPredicate (Predicate< Enum > predicate, void *userData) const |
| | Retrieve all nested enums satisfying the provided predicate. More...
|
| |
| REFUREKU_API bool | foreachEnum (Visitor< Enum > visitor, void *userData) const |
| | Execute the given visitor on all nested enums. More...
|
| |
| REFUREKU_API bool | foreachArchetype (Visitor< Archetype > visitor, void *userData) const |
| | Execute the given visitor on all nested archetypes. More...
|
| |
| REFUREKU_API std::size_t | getArchetypesCount () const noexcept |
| | Get the number of archetypes nested in this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Variable const * | getVariableByName (char const *name, EVarFlags flags=EVarFlags::Default) const noexcept |
| | Retrieve a variable from this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Variable const * | getVariableByPredicate (Predicate< Variable > predicate, void *userData) const |
| | Retrieve the first nested variable satisfying the provided predicate. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Variable const * > | getVariablesByPredicate (Predicate< Variable > predicate, void *userData) const |
| | Retrieve all nested variables satisfying the provided predicate. More...
|
| |
| REFUREKU_API bool | foreachVariable (Visitor< Variable > visitor, void *userData) const |
| | Execute the given visitor on all nested variables. More...
|
| |
| REFUREKU_API std::size_t | getVariablesCount () const noexcept |
| | Get the number of variables nested in this namespace. More...
|
| |
| template<typename FunctionSignature > |
| RFK_NODISCARD Function const * | getFunctionByName (char const *name, EFunctionFlags flags=EFunctionFlags::Default) const noexcept |
| | Retrieve a function with a given name and signature from this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Function const * | getFunctionByName (char const *name, EFunctionFlags flags=EFunctionFlags::Default) const noexcept |
| | Retrieve a function with a given name from this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Function const * > | getFunctionsByName (char const *name, EFunctionFlags flags=EFunctionFlags::Default) const noexcept |
| | Retrieve all functions with a given name from this namespace. More...
|
| |
| RFK_NODISCARD REFUREKU_API Function const * | getFunctionByPredicate (Predicate< Function > predicate, void *userData) const |
| | Retrieve the first nested function satisfying the provided predicate. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Function const * > | getFunctionsByPredicate (Predicate< Function > predicate, void *userData) const |
| | Retrieve all nested functions satisfying the provided predicate. More...
|
| |
| REFUREKU_API bool | foreachFunction (Visitor< Function > visitor, void *userData) const |
| | Execute the given visitor on all nested functions. More...
|
| |
| REFUREKU_API std::size_t | getFunctionsCount () const noexcept |
| | Get the number of functions nested in this namespace. More...
|
| |
| REFUREKU_API void | addNamespace (Namespace const &nestedNamespace) noexcept |
| | Add a nested namespace to this namespace. More...
|
| |
| REFUREKU_API void | addArchetype (Archetype const &archetype) noexcept |
| | Add a nested archetype to this namespace. More...
|
| |
| REFUREKU_API void | addVariable (Variable const &variable) noexcept |
| | Add a nested variable to this namespace. More...
|
| |
| REFUREKU_API void | addFunction (Function const &function) noexcept |
| | Add a nested function to this namespace. More...
|
| |
| REFUREKU_API void | removeNamespace (Namespace const &nestedNamespace) noexcept |
| | Remove a nested namespace from this namespace. More...
|
| |
| REFUREKU_API void | removeArchetype (Archetype const &archetype) noexcept |
| | Remove a nested archetype from this namespace. More...
|
| |
| REFUREKU_API void | removeVariable (Variable const &variable) noexcept |
| | Remove a nested variable from this namespace. More...
|
| |
| REFUREKU_API void | removeFunction (Function const &function) noexcept |
| | Remove a nested function from this namespace. More...
|
| |
|
| Entity (Entity const &)=delete |
| |
| RFK_NODISCARD REFUREKU_API Property const * | getPropertyAt (std::size_t propertyIndex) const noexcept |
| | Retrieve the property at the given index. If propertyIndex is greater or equal to the properties count, the behaviour is undefined. More...
|
| |
| template<typename PropertyType , typename = std::enable_if_t<std::is_base_of_v<Property, PropertyType> && !std::is_same_v<PropertyType, Property>>> |
| RFK_NODISCARD PropertyType const * | getProperty (bool isChildClassValid=true) const noexcept |
| | Retrieve a property of a given type from this entity. More...
|
| |
| RFK_NODISCARD REFUREKU_API Property const * | getProperty (Struct const &archetype, bool isChildClassValid=true) const noexcept |
| | Retrieve the first property matching with the provided archetype. More...
|
| |
| RFK_NODISCARD REFUREKU_API Property const * | getPropertyByName (char const *name) const noexcept |
| | Retrieve the first property named with the provided name. More...
|
| |
| RFK_NODISCARD REFUREKU_API Property const * | getPropertyByPredicate (Predicate< Property > predicate, void *userData) const |
| | Retrieve a property matching with a predicate. More...
|
| |
| template<typename PropertyType , typename = std::enable_if_t<std::is_base_of_v<Property, PropertyType> && !std::is_same_v<PropertyType, Property>>> |
| RFK_NODISCARD Vector< PropertyType const * > | getProperties (bool isChildClassValid=true) const noexcept |
| | Retrieve all properties matching with the provided archetype. If PropertyType uses multiple inheritance, its first inherited type must be rfk::Property or derived. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Property const * > | getProperties (Struct const &archetype, bool isChildClassValid=true) const noexcept |
| | Retrieve all properties matching with the provided archetype. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Property const * > | getPropertiesByName (char const *name) const noexcept |
| | Retrieve all properties named with the provided name. More...
|
| |
| RFK_NODISCARD REFUREKU_API Vector< Property const * > | getPropertiesByPredicate (Predicate< Property > predicate, void *userData) const |
| | Retrieve all properties matching with a predicate in this entity. More...
|
| |
| RFK_NODISCARD REFUREKU_API std::size_t | getPropertiesCount () const noexcept |
| | Get the number of properties attached to this entity. More...
|
| |
| REFUREKU_API bool | foreachProperty (Visitor< Property > visitor, void *userData) const |
| | Execute the given visitor on all properties attached to this entity. More...
|
| |
| RFK_NODISCARD REFUREKU_API char const * | getName () const noexcept |
| | Get the name of the entity. More...
|
| |
| RFK_NODISCARD REFUREKU_API bool | hasSameName (char const *name) const noexcept |
| | Check that this entity has the same name as the provided string. More...
|
| |
| RFK_NODISCARD REFUREKU_API std::size_t | getId () const noexcept |
| | Get the program-unique id of the entity. More...
|
| |
| RFK_NODISCARD REFUREKU_API EEntityKind | getKind () const noexcept |
| | Get the kind of the entity. Knowing the kind allows to safely cast to child classes. Check the EEntityKind documentation for more information. More...
|
| |
| RFK_NODISCARD REFUREKU_API Entity const * | getOuterEntity () const noexcept |
| | 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. More...
|
| |
| REFUREKU_API bool | addProperty (Property const &property) noexcept |
| | Add a property to this entity. More...
|
| |
| REFUREKU_API void | setOuterEntity (Entity const *outerEntity) noexcept |
| | Setter for the field _outerEntity. More...
|
| |
| REFUREKU_API void | setPropertiesCapacity (std::size_t capacity) noexcept |
| | Set the number of properties for this entity. Useful to avoid reallocations when adding a lot of properties. If the number of properties is already >= to the provided capacity, this method has no effect. More...
|
| |
|
Entity & | operator= (Entity const &)=delete |
| |
|
Entity & | operator= (Entity &&)=delete |
| |
|
RFK_NODISCARD REFUREKU_API bool | operator== (Entity const &other) const noexcept |
| |
|
RFK_NODISCARD REFUREKU_API bool | operator!= (Entity const &other) const noexcept |
| |