|
RPNXCortado
C++23 JVM class-file, bytecode, validation, and JAR toolkit
|
Fundamental class-file, constant-pool, and JAR value types. More...
#include <cstddef>#include <cstdint>#include <rpnx/macros.hpp>#include <string>#include <variant>#include <vector>Go to the source code of this file.
Classes | |
| struct | rpnx::cortado::constant_pool_index |
| A type-safe index into a JVM constant pool. More... | |
| struct | rpnx::cortado::bootstrap_method_index |
| A type-safe index into the BootstrapMethods attribute. More... | |
| struct | rpnx::cortado::class_file_version |
| A JVM class-file version pair. More... | |
| struct | rpnx::cortado::utf8_constant |
| A CONSTANT_Utf8 entry. More... | |
| struct | rpnx::cortado::integer_constant |
| A CONSTANT_Integer entry represented by its exact IEEE/JVM bits. More... | |
| struct | rpnx::cortado::float_constant |
| A CONSTANT_Float entry represented by its exact IEEE 754 bits. More... | |
| struct | rpnx::cortado::long_constant |
| A CONSTANT_Long entry represented by its exact two's-complement bits. More... | |
| struct | rpnx::cortado::double_constant |
| A CONSTANT_Double entry represented by its exact IEEE 754 bits. More... | |
| struct | rpnx::cortado::class_constant |
| A CONSTANT_Class entry. More... | |
| struct | rpnx::cortado::string_constant |
| A CONSTANT_String entry. More... | |
| struct | rpnx::cortado::fieldref_constant |
| A CONSTANT_Fieldref entry. More... | |
| struct | rpnx::cortado::methodref_constant |
| A CONSTANT_Methodref entry. More... | |
| struct | rpnx::cortado::interface_methodref_constant |
| A CONSTANT_InterfaceMethodref entry. More... | |
| struct | rpnx::cortado::name_and_type_constant |
| A CONSTANT_NameAndType entry. More... | |
| struct | rpnx::cortado::method_handle_constant |
| A CONSTANT_MethodHandle entry. More... | |
| struct | rpnx::cortado::method_type_constant |
| A CONSTANT_MethodType entry. More... | |
| struct | rpnx::cortado::dynamic_constant |
| A CONSTANT_Dynamic entry. More... | |
| struct | rpnx::cortado::invoke_dynamic_constant |
| A CONSTANT_InvokeDynamic entry. More... | |
| struct | rpnx::cortado::module_constant |
| A CONSTANT_Module entry. More... | |
| struct | rpnx::cortado::package_constant |
| A CONSTANT_Package entry. More... | |
| struct | rpnx::cortado::zip_dos_time |
| A packed MS-DOS time value from a ZIP entry header. More... | |
| struct | rpnx::cortado::zip_dos_date |
| A packed MS-DOS date value from a ZIP entry header. More... | |
| struct | rpnx::cortado::zip_internal_attributes |
| Host-defined internal attributes from a ZIP central-directory entry. More... | |
| struct | rpnx::cortado::zip_external_attributes |
| Host-defined external attributes from a ZIP central-directory entry. More... | |
| struct | rpnx::cortado::jar_entry |
| One owning JAR/ZIP entry, with its data stored uncompressed in memory. More... | |
| struct | rpnx::cortado::jar_file |
| An owning JAR archive representation. More... | |
| struct | rpnx::cortado::jar_read_options |
| Explicit resource limits applied while reading an untrusted JAR archive. More... | |
Namespaces | |
| namespace | rpnx::cortado |
| JVM class-file, bytecode, validation, generation, and JAR APIs. | |
Typedefs | |
| using | rpnx::cortado::constant_pool_entry = std::variant< utf8_constant, integer_constant, float_constant, long_constant, double_constant, class_constant, string_constant, fieldref_constant, methodref_constant, interface_methodref_constant, name_and_type_constant, method_handle_constant, method_type_constant, dynamic_constant, invoke_dynamic_constant, module_constant, package_constant > |
| A typed JVM constant-pool entry. | |
Enumerations | |
| enum class | rpnx::cortado::constant_pool_tag : std::uint8_t { utf8 = 1 , integer = 3 , floating_point = 4 , long_integer = 5 , double_precision = 6 , class_reference = 7 , string = 8 , field_reference = 9 , method_reference = 10 , interface_method_reference = 11 , name_and_type = 12 , method_handle = 15 , method_type = 16 , dynamic = 17 , invoke_dynamic = 18 , module = 19 , package = 20 } |
| A JVM constant-pool tag from JVMS section 4.4. More... | |
| enum class | rpnx::cortado::method_handle_reference_kind : std::uint8_t { get_field = 1 , get_static = 2 , put_field = 3 , put_static = 4 , invoke_virtual = 5 , invoke_static = 6 , invoke_special = 7 , new_invoke_special = 8 , invoke_interface = 9 } |
| Valid reference-kind discriminators for CONSTANT_MethodHandle. More... | |
| enum class | rpnx::cortado::class_access_flags : std::uint16_t { none = 0 , is_public = 0x0001 , is_final = 0x0010 , invokes_special_super = 0x0020 , is_interface = 0x0200 , is_abstract = 0x0400 , is_synthetic = 0x1000 , is_annotation = 0x2000 , is_enum = 0x4000 , is_module = 0x8000 } |
| JVM class access flags. More... | |
| enum class | rpnx::cortado::field_access_flags : std::uint16_t { none = 0 , is_public = 0x0001 , is_private = 0x0002 , is_protected = 0x0004 , is_static = 0x0008 , is_final = 0x0010 , is_volatile = 0x0040 , is_transient = 0x0080 , is_synthetic = 0x1000 , is_enum = 0x4000 } |
| JVM field access flags. More... | |
| enum class | rpnx::cortado::method_access_flags : std::uint16_t { none = 0 , is_public = 0x0001 , is_private = 0x0002 , is_protected = 0x0004 , is_static = 0x0008 , is_final = 0x0010 , is_synchronized = 0x0020 , is_bridge = 0x0040 , has_variable_arguments = 0x0080 , is_native = 0x0100 , is_abstract = 0x0400 , is_strict = 0x0800 , is_synthetic = 0x1000 } |
| JVM method access flags. More... | |
| enum class | rpnx::cortado::compression_method : std::uint16_t { stored = 0 , deflated = 8 } |
| Compression methods supported by JAR serialization. More... | |
| enum class | rpnx::cortado::jar_entry_flags : std::uint16_t { none = 0 , utf8_names = 0x0800 } |
| JAR entry flags preserved by this library. More... | |
Functions | |
| constexpr class_access_flags | rpnx::cortado::operator| (class_access_flags left, class_access_flags right) noexcept |
| Combines JVM class access flags without discarding their domain type. | |
| constexpr field_access_flags | rpnx::cortado::operator| (field_access_flags left, field_access_flags right) noexcept |
| Combines JVM field access flags without discarding their domain type. | |
| constexpr method_access_flags | rpnx::cortado::operator| (method_access_flags left, method_access_flags right) noexcept |
| Combines JVM method access flags without discarding their domain type. | |
Variables | |
| constexpr std::uint32_t | rpnx::cortado::class_file_magic = 0xCAFEBABEU |
| The fixed magic value at the start of every JVM class file. | |
Fundamental class-file, constant-pool, and JAR value types.
The aggregates in this header own their data and intentionally expose the JVM and ZIP wire concepts without hiding format-defined sentinel values.
Definition in file types.hpp.