|
RPNXCortado
C++23 JVM class-file, bytecode, validation, and JAR toolkit
|
JVM class-file, bytecode, validation, generation, and JAR APIs. More...
Classes | |
| struct | annotation |
| A JVM annotation structure. More... | |
| struct | annotation_array_value |
| An array-valued annotation element. More... | |
| struct | annotation_class_value |
| A class-valued annotation element. More... | |
| struct | annotation_constant_value |
| A constant-valued annotation element. More... | |
| struct | annotation_default_attribute |
| An AnnotationDefault attribute. More... | |
| struct | annotation_element |
| One named annotation element. More... | |
| struct | annotation_enum_value |
| An enum-valued annotation element. More... | |
| struct | annotation_value |
| Any annotation element_value structure. More... | |
| struct | any_type_argument |
| An unbounded wildcard type argument. More... | |
| struct | append_frame |
| An append_frame entry retaining its exact frame type. More... | |
| struct | array_type_descriptor |
| An array JVM field descriptor. More... | |
| struct | array_type_signature |
| An array whose component is another Java type signature. More... | |
| class | assembly_error |
| Reports that symbolic bytecode could not be assembled. More... | |
| struct | bootstrap_method |
| One BootstrapMethods attribute entry. More... | |
| struct | bootstrap_method_index |
| A type-safe index into the BootstrapMethods attribute. More... | |
| struct | bootstrap_methods_attribute |
| A BootstrapMethods attribute. More... | |
| struct | branch16_instruction |
| A two-byte branch instruction. More... | |
| struct | branch32_instruction |
| A four-byte branch instruction. More... | |
| struct | branch_displacement16 |
| A signed 16-bit branch displacement relative to an instruction opcode. More... | |
| struct | branch_displacement32 |
| A signed 32-bit branch displacement relative to an instruction opcode. More... | |
| struct | bytecode_read_options |
| Resource and strictness controls for bytecode decoding. More... | |
| struct | bytecode_write_options |
| Strictness controls for bytecode encoding. More... | |
| struct | catch_target_info |
| An exception-parameter annotation target. More... | |
| struct | chop_frame |
| A chop_frame entry retaining its exact frame type. More... | |
| struct | class_constant |
| A CONSTANT_Class entry. More... | |
| struct | class_file |
| An owning, typed representation of one JVM class file. More... | |
| class | class_file_builder |
| An owning symbolic class-file builder with a shared constant-pool interner. More... | |
| struct | class_file_read_options |
| Resource and strictness controls for class-file decoding. More... | |
| struct | class_file_version |
| A JVM class-file version pair. More... | |
| struct | class_file_write_options |
| Strictness controls for class-file encoding. More... | |
| class | class_hierarchy_resolver_ref |
| Non-owning type-erased class-hierarchy resolver used for reference merges. More... | |
| struct | class_signature |
| A complete class Signature attribute grammar value. More... | |
| struct | class_type_signature |
| A possibly parameterized and nested class type signature. More... | |
| struct | code_attribute |
A fully typed Code attribute. More... | |
| struct | code_build_context |
| Method context needed to finalize symbolic code. More... | |
| struct | code_build_options |
| Controls automatic Code metadata generation. More... | |
| class | code_builder |
| An owning symbolic JVM code builder. More... | |
| struct | code_offset |
| A byte offset within the code array of a Code attribute. More... | |
| class | constant_pool_builder |
| Interns constant-pool entries while retaining deterministic first-insertion order. More... | |
| struct | constant_pool_index |
| A type-safe index into a JVM constant pool. More... | |
| struct | constant_pool_index16_instruction |
| A two-byte constant-pool-index instruction. More... | |
| struct | constant_pool_index8_instruction |
| A one-byte constant-pool-index instruction. More... | |
| struct | constant_value_attribute |
| A ConstantValue attribute. More... | |
| struct | deprecated_attribute |
| A Deprecated marker attribute. More... | |
| struct | deserialization_result |
| A decoded value and the number of source bytes it consumed. More... | |
| struct | double_constant |
| A CONSTANT_Double entry represented by its exact IEEE 754 bits. More... | |
| struct | double_variable_info |
| A double verification type. More... | |
| struct | dynamic_constant |
| A CONSTANT_Dynamic entry. More... | |
| struct | empty_target_info |
| An empty annotation target. More... | |
| struct | enclosing_method_attribute |
| An EnclosingMethod attribute. More... | |
| struct | exact_type_argument |
| An invariant reference type argument. More... | |
| struct | exception_handler |
| One Code exception-table entry. More... | |
| struct | exceptions_attribute |
| An Exceptions attribute. More... | |
| struct | extends_type_argument |
| An extends-bounded wildcard type argument. More... | |
| struct | field_info |
| A JVM field_info structure. More... | |
| struct | fieldref_constant |
| A CONSTANT_Fieldref entry. More... | |
| struct | float_constant |
| A CONSTANT_Float entry represented by its exact IEEE 754 bits. More... | |
| struct | float_variable_info |
| A float verification type. More... | |
| struct | formal_parameter_target_info |
| A formal-parameter annotation target. More... | |
| struct | full_frame |
| A full_frame entry. More... | |
| struct | iinc_instruction |
| The compact iinc instruction. More... | |
| struct | inner_class_info |
| One InnerClasses attribute entry. More... | |
| struct | inner_classes_attribute |
| An InnerClasses attribute. More... | |
| struct | instruction_sequence |
| An owning sequence of exactly decoded instruction encodings. More... | |
| struct | integer_constant |
| A CONSTANT_Integer entry represented by its exact IEEE/JVM bits. More... | |
| struct | integer_variable_info |
| An integer verification type. More... | |
| struct | interface_methodref_constant |
| A CONSTANT_InterfaceMethodref entry. More... | |
| struct | invoke_dynamic_constant |
| A CONSTANT_InvokeDynamic entry. More... | |
| struct | invokedynamic_instruction |
| The invokedynamic instruction, including its reserved field. More... | |
| struct | invokeinterface_instruction |
| The invokeinterface instruction, including its reserved byte. More... | |
| struct | jar_entry |
| One owning JAR/ZIP entry, with its data stored uncompressed in memory. More... | |
| struct | jar_file |
| An owning JAR archive representation. More... | |
| struct | jar_read_options |
| Explicit resource limits applied while reading an untrusted JAR archive. More... | |
| struct | java_type_signature |
| A primitive or reference Java type signature. More... | |
| struct | label |
| A symbolic bytecode position owned by one code_builder. More... | |
| struct | label_binding |
| A label binding in symbolic code. More... | |
| struct | label_owner |
| Unique ownership token for labels created by one code_builder lineage. More... | |
| struct | labeled_branch_instruction |
| A branch whose target is a symbolic label. More... | |
| struct | labeled_exception_handler |
| A symbolic exception-table range. More... | |
| struct | labeled_line_number |
| A symbolic source line binding. More... | |
| struct | labeled_local_variable |
| A symbolic local-variable scope. More... | |
| struct | labeled_local_variable_type |
| A symbolic generic local-variable signature scope. More... | |
| struct | labeled_lookup_switch_pair |
| One symbolic lookupswitch match and target. More... | |
| struct | labeled_lookupswitch_instruction |
| A symbolic lookupswitch. More... | |
| struct | labeled_tableswitch_instruction |
| A symbolic tableswitch. More... | |
| struct | line_number_info |
| One LineNumberTable entry. More... | |
| struct | line_number_table_attribute |
| A LineNumberTable attribute. More... | |
| struct | local_instruction |
| A one-byte local-variable-index instruction. More... | |
| struct | local_variable_index |
| A JVM local-variable-array index. More... | |
| struct | local_variable_info |
| One LocalVariableTable entry. More... | |
| struct | local_variable_table_attribute |
| A LocalVariableTable attribute. More... | |
| struct | local_variable_target_info |
| A local-variable annotation target. More... | |
| struct | local_variable_target_range |
| One local-variable annotation range. More... | |
| struct | local_variable_type_info |
| One LocalVariableTypeTable entry. More... | |
| struct | local_variable_type_table_attribute |
| A LocalVariableTypeTable attribute. More... | |
| struct | long_constant |
| A CONSTANT_Long entry represented by its exact two's-complement bits. More... | |
| struct | long_variable_info |
| A long verification type. More... | |
| struct | lookup_switch_pair |
| One match/target pair in a lookupswitch instruction. More... | |
| struct | lookupswitch_instruction |
| An exact lookupswitch instruction, including alignment bytes. More... | |
| struct | method_descriptor |
| A parsed JVM method descriptor. More... | |
| struct | method_handle_constant |
| A CONSTANT_MethodHandle entry. More... | |
| struct | method_info |
| A JVM method_info structure. More... | |
| struct | method_parameter |
| One MethodParameters entry. More... | |
| struct | method_parameters_attribute |
| A MethodParameters attribute. More... | |
| struct | method_signature |
| A complete method Signature attribute grammar value. More... | |
| struct | method_type_constant |
| A CONSTANT_MethodType entry. More... | |
| struct | methodref_constant |
| A CONSTANT_Methodref entry. More... | |
| struct | module_attribute |
| A Module attribute. More... | |
| struct | module_constant |
| A CONSTANT_Module entry. More... | |
| struct | module_exports_info |
| One exports entry in a Module attribute. More... | |
| struct | module_main_class_attribute |
| A ModuleMainClass attribute. More... | |
| struct | module_opens_info |
| One opens entry in a Module attribute. More... | |
| struct | module_packages_attribute |
| A ModulePackages attribute. More... | |
| struct | module_provides_info |
| One provides entry in a Module attribute. More... | |
| struct | module_requires_info |
| One requires entry in a Module attribute. More... | |
| struct | multianewarray_instruction |
| The multianewarray instruction. More... | |
| struct | name_and_type_constant |
| A CONSTANT_NameAndType entry. More... | |
| struct | nest_host_attribute |
| A NestHost attribute. More... | |
| struct | nest_members_attribute |
| A NestMembers attribute. More... | |
| struct | newarray_instruction |
| The newarray instruction. More... | |
| struct | null_variable_info |
| A null verification type. More... | |
| struct | object_type_descriptor |
| An object JVM field descriptor. More... | |
| struct | object_variable_info |
| An object or array verification type. More... | |
| struct | offset_target_info |
| A bytecode-offset annotation target. More... | |
| struct | package_constant |
| A CONSTANT_Package entry. More... | |
| class | parse_error |
| Reports malformed, truncated, unsupported, or inconsistent JVM/JAR binary input. More... | |
| struct | permitted_subclasses_attribute |
| A PermittedSubclasses attribute. More... | |
| struct | primitive_type_descriptor |
| A primitive JVM field descriptor. More... | |
| struct | raw_code |
| An undecoded Code body retained by tooling mode. More... | |
| struct | record_attribute |
| A Record attribute. More... | |
| struct | record_component_info |
| One component in a Record attribute. More... | |
| struct | reference_type_signature |
| A class, type-variable, or array reference type in a generic signature. More... | |
| struct | runtime_invisible_annotations_attribute |
| A RuntimeInvisibleAnnotations attribute. More... | |
| struct | runtime_invisible_parameter_annotations_attribute |
| A RuntimeInvisibleParameterAnnotations attribute. More... | |
| struct | runtime_invisible_type_annotations_attribute |
| A RuntimeInvisibleTypeAnnotations attribute. More... | |
| struct | runtime_visible_annotations_attribute |
| A RuntimeVisibleAnnotations attribute. More... | |
| struct | runtime_visible_parameter_annotations_attribute |
| A RuntimeVisibleParameterAnnotations attribute. More... | |
| struct | runtime_visible_type_annotations_attribute |
| A RuntimeVisibleTypeAnnotations attribute. More... | |
| struct | same_frame |
| A same_frame entry retaining its exact compact frame type. More... | |
| struct | same_frame_extended |
| A same_frame_extended entry. More... | |
| struct | same_locals_one_stack_item_frame |
| A same_locals_1_stack_item_frame entry. More... | |
| struct | same_locals_one_stack_item_frame_extended |
| A same_locals_1_stack_item_frame_extended entry. More... | |
| struct | signature_attribute |
| A Signature attribute. More... | |
| struct | signature_parse_options |
| Resource limits applied while parsing an untrusted generic signature. More... | |
| struct | signed_byte_instruction |
| A signed one-byte immediate instruction. More... | |
| struct | signed_short_instruction |
| A signed two-byte immediate instruction. More... | |
| struct | simple_class_type_signature |
| One simple class segment, including its type arguments. More... | |
| struct | simple_instruction |
| An instruction whose encoding contains only its opcode. More... | |
| struct | source_debug_extension_attribute |
| A SourceDebugExtension attribute whose bytes are not modified UTF-8. More... | |
| struct | source_file_attribute |
| A SourceFile attribute. More... | |
| struct | stack_map_table_attribute |
| A StackMapTable attribute. More... | |
| struct | string_constant |
| A CONSTANT_String entry. More... | |
| struct | super_type_argument |
| A super-bounded wildcard type argument. More... | |
| struct | supertype_target_info |
| A supertype annotation target. More... | |
| struct | symbolic_class_instruction |
| A symbolic class-reference instruction. More... | |
| struct | symbolic_field_instruction |
| A symbolic field-access instruction. More... | |
| struct | symbolic_invokeinterface_instruction |
| A symbolic interface-method invocation instruction. More... | |
| struct | symbolic_method_instruction |
| A symbolic class or interface method invocation instruction. More... | |
| struct | symbolic_string_instruction |
| A symbolic string ldc instruction. More... | |
| struct | synthetic_attribute |
| A Synthetic marker attribute. More... | |
| struct | tableswitch_instruction |
| An exact tableswitch instruction, including alignment bytes. More... | |
| struct | throws_target_info |
| A throws annotation target. More... | |
| struct | top_variable_info |
| A top verification type. More... | |
| struct | type_annotation |
| A JVM type_annotation structure. More... | |
| struct | type_annotation_target |
| A target_info paired with its compile-time target_type discriminator. More... | |
| struct | type_argument_target_info |
| A bytecode-offset and type-argument annotation target. More... | |
| struct | type_parameter |
| One generic type parameter and all of its declared bounds. More... | |
| struct | type_parameter_bound_target_info |
| A type-parameter-bound annotation target. More... | |
| struct | type_parameter_target_info |
| A type-parameter annotation target. More... | |
| struct | type_path_entry |
| One type_path component. More... | |
| struct | type_variable_signature |
| A generic type-variable reference. More... | |
| struct | uninitialized_this_variable_info |
| An uninitialized-this verification type. More... | |
| struct | uninitialized_variable_info |
| An uninitialized value created by a new instruction. More... | |
| struct | unknown_attribute |
| An unknown standard-extension or vendor attribute retained verbatim. More... | |
| class | unsupported_feature_error |
| Reports a deliberately unsupported JVM feature or analysis case. More... | |
| struct | utf8_constant |
| A CONSTANT_Utf8 entry. More... | |
| struct | validation_diagnostic |
| One class-file validation failure. More... | |
| class | validation_error |
| Reports that a structured class-file model violates a JVMS rule. More... | |
| struct | validation_location |
| A structured location within an owning class_file model. More... | |
| struct | validation_options |
| Controls strict structural and version-aware validation. More... | |
| struct | validation_report |
| The complete bounded diagnostic result of one validation pass. More... | |
| struct | void_type_descriptor |
| The void return descriptor. More... | |
| struct | wide_iinc_instruction |
| The wide iinc form following the wide prefix. More... | |
| struct | wide_instruction |
| A complete wide-prefixed instruction. More... | |
| struct | wide_local_instruction |
| A wide local-variable instruction following the wide prefix. More... | |
| struct | zip_dos_date |
| A packed MS-DOS date value from a ZIP entry header. More... | |
| struct | zip_dos_time |
| A packed MS-DOS time value from a ZIP entry header. More... | |
| struct | zip_external_attributes |
| Host-defined external attributes from a ZIP central-directory entry. More... | |
| struct | zip_internal_attributes |
| Host-defined internal attributes from a ZIP central-directory entry. More... | |
Enumerations | |
| enum class | annotation_constant_kind : std::uint8_t { byte = 'B' , character = 'C' , double_precision = 'D' , floating_point = 'F' , integer = 'I' , long_integer = 'J' , short_integer = 'S' , boolean = 'Z' , string = 's' } |
| Constant-valued annotation element tags. More... | |
| enum class | type_annotation_target_type : std::uint8_t { class_type_parameter = 0x00 , method_type_parameter = 0x01 , class_extends = 0x10 , class_type_parameter_bound = 0x11 , method_type_parameter_bound = 0x12 , field = 0x13 , method_return = 0x14 , method_receiver = 0x15 , method_formal_parameter = 0x16 , throws_ = 0x17 , local_variable = 0x40 , resource_variable = 0x41 , exception_parameter = 0x42 , instanceof_ = 0x43 , new_ = 0x44 , constructor_reference = 0x45 , method_reference = 0x46 , cast = 0x47 , constructor_invocation_type_argument = 0x48 , method_invocation_type_argument = 0x49 , constructor_reference_type_argument = 0x4A , method_reference_type_argument = 0x4B } |
| A type-annotation target discriminator. More... | |
| enum class | type_path_kind : std::uint8_t { array = 0 , nested = 1 , wildcard_bound = 2 , type_argument = 3 } |
| A type_path component kind. More... | |
| enum class | method_parameter_access_flags : std::uint16_t { none = 0 , is_final = 0x0010 , is_synthetic = 0x1000 , is_mandated = 0x8000 } |
| JVM MethodParameters access flags. More... | |
| enum class | module_access_flags : std::uint16_t { none = 0 , is_open = 0x0020 , is_synthetic = 0x1000 , is_mandated = 0x8000 } |
| JVM module declaration flags. More... | |
| enum class | module_requires_flags : std::uint16_t { none = 0 , is_transitive = 0x0020 , is_static_phase = 0x0040 , is_synthetic = 0x1000 , is_mandated = 0x8000 } |
| JVM module requires flags. More... | |
| enum class | module_exports_opens_flags : std::uint16_t { none = 0 , is_synthetic = 0x1000 , is_mandated = 0x8000 } |
| JVM module exports and opens flags. More... | |
| enum class | method_owner_kind : std::uint8_t { class_ , interface } |
| Selects the constant-pool owner kind for a symbolic method reference. More... | |
| enum class | processing_mode : std::uint8_t { strict , tooling } |
| Controls whether invalid-but-preservable tool input is accepted. More... | |
| enum class | newarray_type : std::uint8_t { boolean = 4 , character = 5 , floating_point = 6 , double_precision = 7 , byte = 8 , short_integer = 9 , integer = 10 , long_integer = 11 } |
| Primitive array types accepted by the newarray instruction. More... | |
| enum class | opcode : std::uint8_t { nop = 0x00 , aconst_null = 0x01 , iconst_m1 = 0x02 , iconst_0 = 0x03 , iconst_1 = 0x04 , iconst_2 = 0x05 , iconst_3 = 0x06 , iconst_4 = 0x07 , iconst_5 = 0x08 , lconst_0 = 0x09 , lconst_1 = 0x0A , fconst_0 = 0x0B , fconst_1 = 0x0C , fconst_2 = 0x0D , dconst_0 = 0x0E , dconst_1 = 0x0F , bipush = 0x10 , sipush = 0x11 , ldc = 0x12 , ldc_w = 0x13 , ldc2_w = 0x14 , iload = 0x15 , lload = 0x16 , fload = 0x17 , dload = 0x18 , aload = 0x19 , iload_0 = 0x1A , iload_1 = 0x1B , iload_2 = 0x1C , iload_3 = 0x1D , lload_0 = 0x1E , lload_1 = 0x1F , lload_2 = 0x20 , lload_3 = 0x21 , fload_0 = 0x22 , fload_1 = 0x23 , fload_2 = 0x24 , fload_3 = 0x25 , dload_0 = 0x26 , dload_1 = 0x27 , dload_2 = 0x28 , dload_3 = 0x29 , aload_0 = 0x2A , aload_1 = 0x2B , aload_2 = 0x2C , aload_3 = 0x2D , iaload = 0x2E , laload = 0x2F , faload = 0x30 , daload = 0x31 , aaload = 0x32 , baload = 0x33 , caload = 0x34 , saload = 0x35 , istore = 0x36 , lstore = 0x37 , fstore = 0x38 , dstore = 0x39 , astore = 0x3A , istore_0 = 0x3B , istore_1 = 0x3C , istore_2 = 0x3D , istore_3 = 0x3E , lstore_0 = 0x3F , lstore_1 = 0x40 , lstore_2 = 0x41 , lstore_3 = 0x42 , fstore_0 = 0x43 , fstore_1 = 0x44 , fstore_2 = 0x45 , fstore_3 = 0x46 , dstore_0 = 0x47 , dstore_1 = 0x48 , dstore_2 = 0x49 , dstore_3 = 0x4A , astore_0 = 0x4B , astore_1 = 0x4C , astore_2 = 0x4D , astore_3 = 0x4E , iastore = 0x4F , lastore = 0x50 , fastore = 0x51 , dastore = 0x52 , aastore = 0x53 , bastore = 0x54 , castore = 0x55 , sastore = 0x56 , pop = 0x57 , pop2 = 0x58 , dup = 0x59 , dup_x1 = 0x5A , dup_x2 = 0x5B , dup2 = 0x5C , dup2_x1 = 0x5D , dup2_x2 = 0x5E , swap = 0x5F , iadd = 0x60 , ladd = 0x61 , fadd = 0x62 , dadd = 0x63 , isub = 0x64 , lsub = 0x65 , fsub = 0x66 , dsub = 0x67 , imul = 0x68 , lmul = 0x69 , fmul = 0x6A , dmul = 0x6B , idiv = 0x6C , ldiv = 0x6D , fdiv = 0x6E , ddiv = 0x6F , irem = 0x70 , lrem = 0x71 , frem = 0x72 , drem = 0x73 , ineg = 0x74 , lneg = 0x75 , fneg = 0x76 , dneg = 0x77 , ishl = 0x78 , lshl = 0x79 , ishr = 0x7A , lshr = 0x7B , iushr = 0x7C , lushr = 0x7D , iand = 0x7E , land = 0x7F , ior = 0x80 , lor = 0x81 , ixor = 0x82 , lxor = 0x83 , iinc = 0x84 , i2l = 0x85 , i2f = 0x86 , i2d = 0x87 , l2i = 0x88 , l2f = 0x89 , l2d = 0x8A , f2i = 0x8B , f2l = 0x8C , f2d = 0x8D , d2i = 0x8E , d2l = 0x8F , d2f = 0x90 , i2b = 0x91 , i2c = 0x92 , i2s = 0x93 , lcmp = 0x94 , fcmpl = 0x95 , fcmpg = 0x96 , dcmpl = 0x97 , dcmpg = 0x98 , ifeq = 0x99 , ifne = 0x9A , iflt = 0x9B , ifge = 0x9C , ifgt = 0x9D , ifle = 0x9E , if_icmpeq = 0x9F , if_icmpne = 0xA0 , if_icmplt = 0xA1 , if_icmpge = 0xA2 , if_icmpgt = 0xA3 , if_icmple = 0xA4 , if_acmpeq = 0xA5 , if_acmpne = 0xA6 , goto_ = 0xA7 , jsr = 0xA8 , ret = 0xA9 , tableswitch = 0xAA , lookupswitch = 0xAB , ireturn = 0xAC , lreturn = 0xAD , freturn = 0xAE , dreturn = 0xAF , areturn = 0xB0 , return_ = 0xB1 , getstatic = 0xB2 , putstatic = 0xB3 , getfield = 0xB4 , putfield = 0xB5 , invokevirtual = 0xB6 , invokespecial = 0xB7 , invokestatic = 0xB8 , invokeinterface = 0xB9 , invokedynamic = 0xBA , new_ = 0xBB , newarray = 0xBC , anewarray = 0xBD , arraylength = 0xBE , athrow = 0xBF , checkcast = 0xC0 , instanceof_ = 0xC1 , monitorenter = 0xC2 , monitorexit = 0xC3 , wide = 0xC4 , multianewarray = 0xC5 , ifnull = 0xC6 , ifnonnull = 0xC7 , goto_w = 0xC8 , jsr_w = 0xC9 , breakpoint = 0xCA , impdep1 = 0xFE , impdep2 = 0xFF } |
| Every defined Java SE 26 opcode, plus the three permanently reserved opcodes. More... | |
| enum class | primitive_descriptor_kind : std::uint8_t { byte = 'B' , character = 'C' , double_precision = 'D' , floating_point = 'F' , integer = 'I' , long_integer = 'J' , short_integer = 'S' , boolean = 'Z' } |
| Primitive field-descriptor kinds. More... | |
| enum class | 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 | 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 | 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 | 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 | 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 | compression_method : std::uint16_t { stored = 0 , deflated = 8 } |
| Compression methods supported by JAR serialization. More... | |
| enum class | jar_entry_flags : std::uint16_t { none = 0 , utf8_names = 0x0800 } |
| JAR entry flags preserved by this library. More... | |
| enum class | validation_code : std::uint16_t { invalid_version , invalid_constant_pool_index , invalid_constant_pool_reference_kind , feature_not_supported_by_version , invalid_flags , invalid_descriptor , invalid_attribute_name , duplicate_attribute , missing_code_attribute , unexpected_code_attribute , invalid_code , invalid_branch_target , invalid_switch_table , invalid_exception_range , invalid_stack_map , invalid_annotation , invalid_module_structure , resource_limit_exceeded } |
| Stable machine-readable codes emitted by class-file validation. More... | |
| enum class | validation_location_kind : std::uint8_t { class_file , constant_pool , interface , field , method , class_attribute , field_attribute , method_attribute , code , code_attribute , record_component } |
| The class-file area associated with a diagnostic. More... | |
Functions | |
| template<typename Visitor> | |
| bool | visit_instruction_type (opcode operation, Visitor &&visitor) |
| Invokes a visitor with the instruction type associated with a runtime opcode. | |
| opcode | instruction_opcode (instruction const &value) noexcept |
| Returns the opcode of a structured instruction. | |
| std::size_t | instruction_size (instruction const &value, code_offset offset) |
| Returns the exact encoded size of an instruction at the supplied byte offset. | |
| code_body | deserialize_instructions (std::span< std::byte const > bytes, bytecode_read_options const &options={}) |
| Decodes an entire JVM code array. | |
| std::vector< std::byte > | serialize_instructions (code_body const &value, bytecode_write_options const &options={}) |
| Encodes an entire JVM code array. | |
| template<typename OutputIt> | |
| auto | serialize_iter (code_body const &value, OutputIt output, bytecode_write_options const &options={}) -> OutputIt |
| Serial4-style bytecode output-iterator interface. | |
| template<typename OutputIt> | |
| auto | serialize_iter (code_body const &value, OutputIt output, OutputIt end, bytecode_write_options const &options={}) -> OutputIt |
| Serial4-style bounded bytecode output-iterator interface. | |
| template<std::forward_iterator InputIt, std::sentinel_for< InputIt > Sentinel> | |
| auto | deserialize_iter (code_body &value, InputIt input, Sentinel end, bytecode_read_options const &options={}) -> InputIt |
| Serial4-style bytecode forward-iterator interface. | |
| std::vector< std::byte > | serialize_class_file (class_file const &value, class_file_write_options const &options={}) |
| Serializes a class file using the big-endian JVM class-file format. | |
| class_file | deserialize_class_file (std::span< std::byte const > bytes, class_file_read_options const &options={}) |
| Deserializes exactly one class file and rejects trailing bytes. | |
| deserialization_result< class_file > | deserialize_class_file_prefix (std::span< std::byte const > bytes, class_file_read_options const &options={}) |
| Deserializes one class file prefix and reports the number of bytes consumed. | |
| template<typename OutputIt> | |
| auto | serialize_iter (class_file const &value, OutputIt output, class_file_write_options const &options={}) -> OutputIt |
| Serial4-style output-iterator interface for JVM class-file bytes. | |
| template<typename OutputIt> | |
| auto | serialize_iter (class_file const &value, OutputIt output, OutputIt end, class_file_write_options const &options={}) -> OutputIt |
| Serial4-style bounded output-iterator interface for JVM class-file bytes. | |
| template<std::forward_iterator InputIt, std::sentinel_for< InputIt > Sentinel> | |
| auto | deserialize_iter (class_file &value, InputIt input, Sentinel end, class_file_read_options const &options={}) -> InputIt |
| Serial4-style bounded forward-iterator interface for JVM class-file bytes. | |
| field_type_descriptor | parse_field_descriptor (std::string_view text) |
| Parses exactly one field descriptor. | |
| method_descriptor | parse_method_descriptor (std::string_view text) |
| Parses exactly one method descriptor and enforces the 255-slot parameter limit. | |
| std::string | serialize_field_descriptor (field_type_descriptor const &descriptor) |
| Encodes one field descriptor. | |
| std::string | serialize_method_descriptor (method_descriptor const &descriptor) |
| Encodes one method descriptor. | |
| std::size_t | descriptor_slot_count (field_type_descriptor const &descriptor) noexcept |
| Returns the number of JVM local/operand slots occupied by a field descriptor. | |
| std::vector< std::byte > | serialize_jar (jar_file const &value) |
| Serializes an archive as a non-Zip64 JAR-compatible ZIP file. | |
| jar_file | deserialize_jar (std::span< std::byte const > bytes, jar_read_options const &options={}) |
| Deserializes exactly one JAR archive and validates entry sizes and CRC-32 values. | |
| template<typename OutputIt> | |
| auto | serialize_iter (jar_file const &value, OutputIt output) -> OutputIt |
| Serial4-style output-iterator interface for JAR bytes. | |
| template<typename OutputIt> | |
| auto | serialize_iter (jar_file const &value, OutputIt output, OutputIt end) -> OutputIt |
| Serial4-style bounded output-iterator interface for JAR bytes. | |
| template<std::forward_iterator InputIt, std::sentinel_for< InputIt > Sentinel> | |
| auto | deserialize_iter (jar_file &value, InputIt input, Sentinel end) -> InputIt |
| Serial4-style bounded forward-iterator interface for JAR bytes. | |
| reference_type_signature | parse_field_signature (std::string_view text, signature_parse_options const &options={}) |
| Parses a complete field or record-component generic signature. | |
| class_signature | parse_class_signature (std::string_view text, signature_parse_options const &options={}) |
| Parses a complete class generic signature. | |
| method_signature | parse_method_signature (std::string_view text, signature_parse_options const &options={}) |
| Parses a complete method generic signature. | |
| std::string | serialize_field_signature (reference_type_signature const &signature) |
| Serializes a field or record-component generic signature. | |
| std::string | serialize_class_signature (class_signature const &signature) |
| Serializes a class generic signature. | |
| std::string | serialize_method_signature (method_signature const &signature) |
| Serializes a method generic signature. | |
| constexpr class_access_flags | operator| (class_access_flags left, class_access_flags right) noexcept |
| Combines JVM class access flags without discarding their domain type. | |
| constexpr field_access_flags | operator| (field_access_flags left, field_access_flags right) noexcept |
| Combines JVM field access flags without discarding their domain type. | |
| constexpr method_access_flags | operator| (method_access_flags left, method_access_flags right) noexcept |
| Combines JVM method access flags without discarding their domain type. | |
| validation_report | validate_class_file (class_file const &value, validation_options const &options={}) |
| Validates a complete class-file model without throwing for model errors. | |
Variables | |
| constexpr std::uint32_t | class_file_magic = 0xCAFEBABEU |
| The fixed magic value at the start of every JVM class file. | |
JVM class-file, bytecode, validation, generation, and JAR APIs.
Every element accepted by code_builder before lowering.
Definition at line 173 of file builders.hpp.
Attributes valid on a ClassFile structure.
Definition at line 724 of file attributes.hpp.
| using rpnx::cortado::code_body = std::variant< instruction_sequence, raw_code > |
Either a decoded instruction sequence or an exact raw tooling payload.
Definition at line 317 of file bytecode.hpp.
Attributes valid within a Code attribute.
Definition at line 688 of file attributes.hpp.
Attributes valid on a field_info structure.
Definition at line 718 of file attributes.hpp.
| using rpnx::cortado::field_type_descriptor = rpnx::variant< primitive_type_descriptor, object_type_descriptor, array_type_descriptor > |
Any JVM field descriptor.
The heap-backed RPNX variant permits recursion.
Definition at line 41 of file descriptors.hpp.
| using rpnx::cortado::instruction = std::variant< simple_instruction< opcode::nop >, simple_instruction< opcode::aconst_null >, simple_instruction< opcode::iconst_m1 >, simple_instruction< opcode::iconst_0 >, simple_instruction< opcode::iconst_1 >, simple_instruction< opcode::iconst_2 >, simple_instruction< opcode::iconst_3 >, simple_instruction< opcode::iconst_4 >, simple_instruction< opcode::iconst_5 >, simple_instruction< opcode::lconst_0 >, simple_instruction< opcode::lconst_1 >, simple_instruction< opcode::fconst_0 >, simple_instruction< opcode::fconst_1 >, simple_instruction< opcode::fconst_2 >, simple_instruction< opcode::dconst_0 >, simple_instruction< opcode::dconst_1 >, signed_byte_instruction< opcode::bipush >, signed_short_instruction< opcode::sipush >, constant_pool_index8_instruction< opcode::ldc >, constant_pool_index16_instruction< opcode::ldc_w >, constant_pool_index16_instruction< opcode::ldc2_w >, local_instruction< opcode::iload >, local_instruction< opcode::lload >, local_instruction< opcode::fload >, local_instruction< opcode::dload >, local_instruction< opcode::aload >, simple_instruction< opcode::iload_0 >, simple_instruction< opcode::iload_1 >, simple_instruction< opcode::iload_2 >, simple_instruction< opcode::iload_3 >, simple_instruction< opcode::lload_0 >, simple_instruction< opcode::lload_1 >, simple_instruction< opcode::lload_2 >, simple_instruction< opcode::lload_3 >, simple_instruction< opcode::fload_0 >, simple_instruction< opcode::fload_1 >, simple_instruction< opcode::fload_2 >, simple_instruction< opcode::fload_3 >, simple_instruction< opcode::dload_0 >, simple_instruction< opcode::dload_1 >, simple_instruction< opcode::dload_2 >, simple_instruction< opcode::dload_3 >, simple_instruction< opcode::aload_0 >, simple_instruction< opcode::aload_1 >, simple_instruction< opcode::aload_2 >, simple_instruction< opcode::aload_3 >, simple_instruction< opcode::iaload >, simple_instruction< opcode::laload >, simple_instruction< opcode::faload >, simple_instruction< opcode::daload >, simple_instruction< opcode::aaload >, simple_instruction< opcode::baload >, simple_instruction< opcode::caload >, simple_instruction< opcode::saload >, local_instruction< opcode::istore >, local_instruction< opcode::lstore >, local_instruction< opcode::fstore >, local_instruction< opcode::dstore >, local_instruction< opcode::astore >, simple_instruction< opcode::istore_0 >, simple_instruction< opcode::istore_1 >, simple_instruction< opcode::istore_2 >, simple_instruction< opcode::istore_3 >, simple_instruction< opcode::lstore_0 >, simple_instruction< opcode::lstore_1 >, simple_instruction< opcode::lstore_2 >, simple_instruction< opcode::lstore_3 >, simple_instruction< opcode::fstore_0 >, simple_instruction< opcode::fstore_1 >, simple_instruction< opcode::fstore_2 >, simple_instruction< opcode::fstore_3 >, simple_instruction< opcode::dstore_0 >, simple_instruction< opcode::dstore_1 >, simple_instruction< opcode::dstore_2 >, simple_instruction< opcode::dstore_3 >, simple_instruction< opcode::astore_0 >, simple_instruction< opcode::astore_1 >, simple_instruction< opcode::astore_2 >, simple_instruction< opcode::astore_3 >, simple_instruction< opcode::iastore >, simple_instruction< opcode::lastore >, simple_instruction< opcode::fastore >, simple_instruction< opcode::dastore >, simple_instruction< opcode::aastore >, simple_instruction< opcode::bastore >, simple_instruction< opcode::castore >, simple_instruction< opcode::sastore >, simple_instruction< opcode::pop >, simple_instruction< opcode::pop2 >, simple_instruction< opcode::dup >, simple_instruction< opcode::dup_x1 >, simple_instruction< opcode::dup_x2 >, simple_instruction< opcode::dup2 >, simple_instruction< opcode::dup2_x1 >, simple_instruction< opcode::dup2_x2 >, simple_instruction< opcode::swap >, simple_instruction< opcode::iadd >, simple_instruction< opcode::ladd >, simple_instruction< opcode::fadd >, simple_instruction< opcode::dadd >, simple_instruction< opcode::isub >, simple_instruction< opcode::lsub >, simple_instruction< opcode::fsub >, simple_instruction< opcode::dsub >, simple_instruction< opcode::imul >, simple_instruction< opcode::lmul >, simple_instruction< opcode::fmul >, simple_instruction< opcode::dmul >, simple_instruction< opcode::idiv >, simple_instruction< opcode::ldiv >, simple_instruction< opcode::fdiv >, simple_instruction< opcode::ddiv >, simple_instruction< opcode::irem >, simple_instruction< opcode::lrem >, simple_instruction< opcode::frem >, simple_instruction< opcode::drem >, simple_instruction< opcode::ineg >, simple_instruction< opcode::lneg >, simple_instruction< opcode::fneg >, simple_instruction< opcode::dneg >, simple_instruction< opcode::ishl >, simple_instruction< opcode::lshl >, simple_instruction< opcode::ishr >, simple_instruction< opcode::lshr >, simple_instruction< opcode::iushr >, simple_instruction< opcode::lushr >, simple_instruction< opcode::iand >, simple_instruction< opcode::land >, simple_instruction< opcode::ior >, simple_instruction< opcode::lor >, simple_instruction< opcode::ixor >, simple_instruction< opcode::lxor >, iinc_instruction, simple_instruction< opcode::i2l >, simple_instruction< opcode::i2f >, simple_instruction< opcode::i2d >, simple_instruction< opcode::l2i >, simple_instruction< opcode::l2f >, simple_instruction< opcode::l2d >, simple_instruction< opcode::f2i >, simple_instruction< opcode::f2l >, simple_instruction< opcode::f2d >, simple_instruction< opcode::d2i >, simple_instruction< opcode::d2l >, simple_instruction< opcode::d2f >, simple_instruction< opcode::i2b >, simple_instruction< opcode::i2c >, simple_instruction< opcode::i2s >, simple_instruction< opcode::lcmp >, simple_instruction< opcode::fcmpl >, simple_instruction< opcode::fcmpg >, simple_instruction< opcode::dcmpl >, simple_instruction< opcode::dcmpg >, branch16_instruction< opcode::ifeq >, branch16_instruction< opcode::ifne >, branch16_instruction< opcode::iflt >, branch16_instruction< opcode::ifge >, branch16_instruction< opcode::ifgt >, branch16_instruction< opcode::ifle >, branch16_instruction< opcode::if_icmpeq >, branch16_instruction< opcode::if_icmpne >, branch16_instruction< opcode::if_icmplt >, branch16_instruction< opcode::if_icmpge >, branch16_instruction< opcode::if_icmpgt >, branch16_instruction< opcode::if_icmple >, branch16_instruction< opcode::if_acmpeq >, branch16_instruction< opcode::if_acmpne >, branch16_instruction< opcode::goto_ >, branch16_instruction< opcode::jsr >, local_instruction< opcode::ret >, tableswitch_instruction, lookupswitch_instruction, simple_instruction< opcode::ireturn >, simple_instruction< opcode::lreturn >, simple_instruction< opcode::freturn >, simple_instruction< opcode::dreturn >, simple_instruction< opcode::areturn >, simple_instruction< opcode::return_ >, constant_pool_index16_instruction< opcode::getstatic >, constant_pool_index16_instruction< opcode::putstatic >, constant_pool_index16_instruction< opcode::getfield >, constant_pool_index16_instruction< opcode::putfield >, constant_pool_index16_instruction< opcode::invokevirtual >, constant_pool_index16_instruction< opcode::invokespecial >, constant_pool_index16_instruction< opcode::invokestatic >, invokeinterface_instruction, invokedynamic_instruction, constant_pool_index16_instruction< opcode::new_ >, newarray_instruction, constant_pool_index16_instruction< opcode::anewarray >, simple_instruction< opcode::arraylength >, simple_instruction< opcode::athrow >, constant_pool_index16_instruction< opcode::checkcast >, constant_pool_index16_instruction< opcode::instanceof_ >, simple_instruction< opcode::monitorenter >, simple_instruction< opcode::monitorexit >, wide_instruction, multianewarray_instruction, branch16_instruction< opcode::ifnull >, branch16_instruction< opcode::ifnonnull >, branch32_instruction< opcode::goto_w >, branch32_instruction< opcode::jsr_w >, simple_instruction< opcode::breakpoint >, simple_instruction< opcode::impdep1 >, simple_instruction< opcode::impdep2 > > |
Every exact JVM instruction encoding supported by Java SE 26.
Definition at line 236 of file bytecode.hpp.
Attributes valid on a method_info structure.
Definition at line 721 of file attributes.hpp.
| using rpnx::cortado::method_result_signature = std::variant< void_type_descriptor, java_type_signature > |
A void or Java-type method result signature.
Definition at line 130 of file signatures.hpp.
Attributes valid in a record_component_info structure.
Definition at line 668 of file attributes.hpp.
| using rpnx::cortado::return_type_descriptor = rpnx::variant< void_type_descriptor, field_type_descriptor > |
A JVM method return descriptor.
Definition at line 57 of file descriptors.hpp.
Any valid StackMapTable frame encoding.
Definition at line 162 of file attributes.hpp.
| using rpnx::cortado::throws_signature = std::variant< class_type_signature, type_variable_signature > |
A declared throws signature for a class or type-variable exception.
Definition at line 133 of file signatures.hpp.
| using rpnx::cortado::type_annotation_target_info = std::variant< type_annotation_target< type_annotation_target_type::class_type_parameter, type_parameter_target_info >, type_annotation_target< type_annotation_target_type::method_type_parameter, type_parameter_target_info >, type_annotation_target< type_annotation_target_type::class_extends, supertype_target_info >, type_annotation_target< type_annotation_target_type::class_type_parameter_bound, type_parameter_bound_target_info >, type_annotation_target< type_annotation_target_type::method_type_parameter_bound, type_parameter_bound_target_info >, type_annotation_target< type_annotation_target_type::field, empty_target_info >, type_annotation_target< type_annotation_target_type::method_return, empty_target_info >, type_annotation_target< type_annotation_target_type::method_receiver, empty_target_info >, type_annotation_target< type_annotation_target_type::method_formal_parameter, formal_parameter_target_info >, type_annotation_target< type_annotation_target_type::throws_, throws_target_info >, type_annotation_target< type_annotation_target_type::local_variable, local_variable_target_info >, type_annotation_target< type_annotation_target_type::resource_variable, local_variable_target_info >, type_annotation_target< type_annotation_target_type::exception_parameter, catch_target_info >, type_annotation_target< type_annotation_target_type::instanceof_, offset_target_info >, type_annotation_target< type_annotation_target_type::new_, offset_target_info >, type_annotation_target< type_annotation_target_type::constructor_reference, offset_target_info >, type_annotation_target< type_annotation_target_type::method_reference, offset_target_info >, type_annotation_target< type_annotation_target_type::cast, type_argument_target_info >, type_annotation_target< type_annotation_target_type::constructor_invocation_type_argument, type_argument_target_info >, type_annotation_target< type_annotation_target_type::method_invocation_type_argument, type_argument_target_info >, type_annotation_target< type_annotation_target_type::constructor_reference_type_argument, type_argument_target_info >, type_annotation_target< type_annotation_target_type::method_reference_type_argument, type_argument_target_info > > |
Any valid type-annotation target_info structure.
Definition at line 486 of file attributes.hpp.
| using rpnx::cortado::type_argument = std::variant< any_type_argument, exact_type_argument, extends_type_argument, super_type_argument > |
One generic class type argument.
Definition at line 78 of file signatures.hpp.
A StackMapTable verification_type_info structure.
Definition at line 103 of file attributes.hpp.
| using rpnx::cortado::wide_operand = std::variant< wide_local_instruction< opcode::iload >, wide_local_instruction< opcode::lload >, wide_local_instruction< opcode::fload >, wide_local_instruction< opcode::dload >, wide_local_instruction< opcode::aload >, wide_local_instruction< opcode::istore >, wide_local_instruction< opcode::lstore >, wide_local_instruction< opcode::fstore >, wide_local_instruction< opcode::dstore >, wide_local_instruction< opcode::astore >, wide_local_instruction< opcode::ret >, wide_iinc_instruction > |
Exact operand of a wide-prefixed instruction.
Definition at line 160 of file bytecode.hpp.
|
strong |
Constant-valued annotation element tags.
Definition at line 300 of file attributes.hpp.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Selects the constant-pool owner kind for a symbolic method reference.
Definition at line 133 of file builders.hpp.
|
strong |
JVM MethodParameters access flags.
Definition at line 550 of file attributes.hpp.
|
strong |
JVM module declaration flags.
Definition at line 569 of file attributes.hpp.
|
strong |
JVM module exports and opens flags.
Definition at line 575 of file attributes.hpp.
|
strong |
JVM module requires flags.
Definition at line 572 of file attributes.hpp.
|
strong |
Primitive array types accepted by the newarray instruction.
Definition at line 57 of file bytecode.hpp.
|
strong |
Every defined Java SE 26 opcode, plus the three permanently reserved opcodes.
Definition at line 60 of file bytecode.hpp.
|
strong |
Primitive field-descriptor kinds.
Definition at line 22 of file descriptors.hpp.
|
strong |
Controls whether invalid-but-preservable tool input is accepted.
Definition at line 26 of file bytecode.hpp.
|
strong |
A type-annotation target discriminator.
Definition at line 394 of file attributes.hpp.
|
strong |
A type_path component kind.
Definition at line 489 of file attributes.hpp.
|
strong |
Stable machine-readable codes emitted by class-file validation.
Definition at line 20 of file validation.hpp.
|
strong |
The class-file area associated with a diagnostic.
Definition at line 23 of file validation.hpp.
|
nodiscardnoexcept |
Returns the number of JVM local/operand slots occupied by a field descriptor.
| descriptor | Type whose category is inspected. |
long and double; one for every other field type.
|
nodiscard |
Deserializes exactly one class file and rejects trailing bytes.
| bytes | Complete class-file input. |
| options | Strictness and resource limits. |
| parse_error | if input is malformed, invalid in the selected mode, exceeds a limit, or has trailing bytes. |
|
nodiscard |
Deserializes one class file prefix and reports the number of bytes consumed.
| bytes | Range beginning with a class file; trailing data is permitted. |
| options | Strictness and resource limits. |
| parse_error | if the class-file prefix is malformed, invalid in the selected mode, or exceeds a limit. |
|
nodiscard |
Decodes an entire JVM code array.
| bytes | Complete Code attribute code array, without its length prefix. |
| options | Strictness and input-size policy. |
raw_code in tooling mode when boundaries are unknowable. | parse_error | if the bytes are malformed or disallowed by the selected mode. |
| auto rpnx::cortado::deserialize_iter | ( | class_file & | value, |
| InputIt | input, | ||
| Sentinel | end, | ||
| class_file_read_options const & | options = {} ) -> InputIt |
Serial4-style bounded forward-iterator interface for JVM class-file bytes.
| InputIt | Forward iterator whose value converts to std::byte. |
| Sentinel | End sentinel for InputIt. |
| value | Destination replaced only after a complete prefix is decoded. |
| input | First input byte. |
| end | One-past-the-end input sentinel. |
| options | Strictness and resource limits. |
Definition at line 127 of file class_file.hpp.
| auto rpnx::cortado::deserialize_iter | ( | code_body & | value, |
| InputIt | input, | ||
| Sentinel | end, | ||
| bytecode_read_options const & | options = {} ) -> InputIt |
Serial4-style bytecode forward-iterator interface.
| InputIt | Forward iterator whose value converts to std::byte. |
| Sentinel | End sentinel for InputIt. |
| value | Destination replaced after the complete range is decoded. |
| input | First code-array byte. |
| end | One-past-the-end input sentinel. |
| options | Strictness and input-size policy. |
end; code-array decoding consumes the complete range. Definition at line 417 of file bytecode.hpp.
| auto rpnx::cortado::deserialize_iter | ( | jar_file & | value, |
| InputIt | input, | ||
| Sentinel | end ) -> InputIt |
Serial4-style bounded forward-iterator interface for JAR bytes.
| InputIt | Forward iterator whose value converts to std::byte. |
| Sentinel | End sentinel for InputIt. |
| value | Destination replaced after the complete archive is decoded. |
| input | First input byte. |
| end | One-past-the-end input sentinel. |
end; JAR deserialization consumes the complete range. Definition at line 86 of file jar.hpp.
References deserialize_jar().
|
nodiscard |
Deserializes exactly one JAR archive and validates entry sizes and CRC-32 values.
| bytes | Complete single-disk JAR-compatible ZIP input. |
| options | Inflated-data resource limits. |
| parse_error | if the archive is malformed, unsupported, inconsistent, corrupt, or exceeds a limit. |
Referenced by deserialize_iter().
|
nodiscardnoexcept |
Returns the opcode of a structured instruction.
| value | Exact instruction alternative to inspect. |
|
nodiscard |
Returns the exact encoded size of an instruction at the supplied byte offset.
| value | Exact instruction to measure. |
| offset | Byte offset at which it will be encoded; this determines switch padding. |
|
nodiscardconstexprnoexcept |
|
nodiscardconstexprnoexcept |
|
nodiscardconstexprnoexcept |
|
nodiscard |
Parses a complete class generic signature.
| text | Complete Signature attribute bytes. |
| options | Resource limits applied during parsing. |
| parse_error | if the signature is malformed, has trailing bytes, or exceeds a limit. |
|
nodiscard |
Parses exactly one field descriptor.
| text | Complete descriptor bytes, such as I or Ljava/lang/String;. |
| parse_error | if the text is malformed, contains trailing bytes, or exceeds 255 array dimensions. |
|
nodiscard |
Parses a complete field or record-component generic signature.
| text | Complete Signature attribute bytes. |
| options | Resource limits applied during parsing. |
| parse_error | if the signature is malformed, has trailing bytes, or exceeds a limit. |
|
nodiscard |
Parses exactly one method descriptor and enforces the 255-slot parameter limit.
| text | Complete method descriptor bytes, such as (II)I. |
| parse_error | if the descriptor is malformed, has trailing bytes, or exceeds a JVM limit. |
|
nodiscard |
Parses a complete method generic signature.
| text | Complete Signature attribute bytes. |
| options | Resource limits applied during parsing. |
| parse_error | if the signature is malformed, has trailing bytes, or exceeds a limit. |
|
nodiscard |
Serializes a class file using the big-endian JVM class-file format.
| value | Complete structured model to encode. |
| options | Strictness policy used during encoding. |
| validation_error | if the model violates format rules or configured strictness. |
|
nodiscard |
Serializes a class generic signature.
| signature | Structured signature to encode. |
| validation_error | if an identifier or class segment is invalid. |
|
nodiscard |
Encodes one field descriptor.
| descriptor | Structured field type to encode. |
| validation_error | if the structured descriptor contains an invalid internal name. |
|
nodiscard |
Serializes a field or record-component generic signature.
| signature | Structured signature to encode. |
| validation_error | if an identifier or class segment is invalid. |
|
nodiscard |
Encodes an entire JVM code array.
| value | Exact instruction sequence or tooling-mode raw body. |
| options | Strictness policy. |
| validation_error | if the model is inconsistent, too large, or disallowed by the selected mode. |
| auto rpnx::cortado::serialize_iter | ( | class_file const & | value, |
| OutputIt | output, | ||
| class_file_write_options const & | options = {} ) -> OutputIt |
Serial4-style output-iterator interface for JVM class-file bytes.
| OutputIt | Writable output iterator accepting std::byte. |
| value | Model to serialize. |
| output | First output position. |
| options | Strictness policy used during encoding. |
Definition at line 81 of file class_file.hpp.
| auto rpnx::cortado::serialize_iter | ( | class_file const & | value, |
| OutputIt | output, | ||
| OutputIt | end, | ||
| class_file_write_options const & | options = {} ) -> OutputIt |
Serial4-style bounded output-iterator interface for JVM class-file bytes.
| OutputIt | Writable forward iterator accepting std::byte. |
| value | Model to serialize. |
| output | First output position. |
| end | One-past-the-end output sentinel. |
| options | Strictness policy used during encoding. |
| std::length_error | if the output range cannot hold the encoded class. |
Definition at line 102 of file class_file.hpp.
| auto rpnx::cortado::serialize_iter | ( | code_body const & | value, |
| OutputIt | output, | ||
| bytecode_write_options const & | options = {} ) -> OutputIt |
Serial4-style bytecode output-iterator interface.
| OutputIt | Writable output iterator accepting std::byte. |
| value | Code body to serialize. |
| output | First output position. |
| options | Strictness policy. |
Definition at line 371 of file bytecode.hpp.
| auto rpnx::cortado::serialize_iter | ( | code_body const & | value, |
| OutputIt | output, | ||
| OutputIt | end, | ||
| bytecode_write_options const & | options = {} ) -> OutputIt |
Serial4-style bounded bytecode output-iterator interface.
| OutputIt | Writable forward iterator accepting std::byte. |
| value | Code body to serialize. |
| output | First output position. |
| end | One-past-the-end output position. |
| options | Strictness policy. |
| std::length_error | if the output range is too small. |
Definition at line 392 of file bytecode.hpp.
| auto rpnx::cortado::serialize_iter | ( | jar_file const & | value, |
| OutputIt | output ) -> OutputIt |
Serial4-style output-iterator interface for JAR bytes.
| OutputIt | Writable output iterator accepting std::byte. |
| value | Archive to serialize. |
| output | First output position. |
Definition at line 42 of file jar.hpp.
References serialize_jar().
| auto rpnx::cortado::serialize_iter | ( | jar_file const & | value, |
| OutputIt | output, | ||
| OutputIt | end ) -> OutputIt |
Serial4-style bounded output-iterator interface for JAR bytes.
| OutputIt | Writable forward iterator accepting std::byte. |
| value | Archive to serialize. |
| output | First output position. |
| end | One-past-the-end output position. |
| std::length_error | if the output range is too small. |
Definition at line 62 of file jar.hpp.
References serialize_jar().
|
nodiscard |
Serializes an archive as a non-Zip64 JAR-compatible ZIP file.
| value | Owning archive model; each entry contains uncompressed data. |
| std::length_error | if an entry, archive, or field requires Zip64. |
| std::invalid_argument | if an entry requests unsupported flags or compression. |
Referenced by serialize_iter(), and serialize_iter().
|
nodiscard |
Encodes one method descriptor.
| descriptor | Structured parameter and return types to encode. |
| validation_error | if a component is invalid or the parameters exceed 255 slots. |
|
nodiscard |
Serializes a method generic signature.
| signature | Structured signature to encode. |
| validation_error | if an identifier or class segment is invalid. |
|
nodiscard |
Validates a complete class-file model without throwing for model errors.
| value | Owning model to inspect; it is never modified. |
| options | Diagnostic and traversal limits. |
Format errors are reported in the returned value. Allocation and other exceptional runtime failures may still propagate.
References validate_class_file().
Referenced by validate_class_file().
|
nodiscard |
Invokes a visitor with the instruction type associated with a runtime opcode.
| Visitor | Callable accepting std::type_identity<Instruction> for any instruction alternative. |
| operation | Runtime opcode to resolve. |
| visitor | Callable invoked synchronously; no reference to it is retained. |
true if operation has an instruction alternative, otherwise false. Definition at line 280 of file bytecode.hpp.