41 element_t(HEADER_KEYS key,
const std::string& value) :
42 key(key), value(const_cast<std::string*>(&value)) {}
45 std::string* value =
nullptr;
47 using magic_t = std::array<uint8_t, 4>;
48 using key_values_t = std::map<HEADER_KEYS, std::string>;
49 using it_key_values_t = ref_iterator<std::vector<element_t>>;
50 using it_const_key_values_t = const_ref_iterator<std::vector<element_t>>;
51 using keys_t = std::vector<HEADER_KEYS>;
54 using values_t = std::vector<std::string>;
67 Header::magic_t
magic()
const;
108 const std::string*
get(HEADER_KEYS key)
const;
109 std::string*
get(HEADER_KEYS key);
111 Header&
set(HEADER_KEYS key,
const std::string& value);
118 void accept(Visitor& visitor)
const override;
126 uint32_t checksum_ = 0;
128 uint32_t instruction_set_features_bitmap_ = 0;
129 uint32_t dex_file_count_ = 0;
130 uint32_t oat_dex_files_offset_ = 0;
131 uint32_t executable_offset_ = 0;
132 uint32_t i2i_bridge_offset_ = 0;
133 uint32_t i2c_code_bridge_offset_ = 0;
134 uint32_t jni_dlsym_lookup_offset_ = 0;
136 uint32_t quick_generic_jni_trampoline_offset_ = 0;
137 uint32_t quick_imt_conflict_trampoline_offset_ = 0;
138 uint32_t quick_resolution_trampoline_offset_ = 0;
139 uint32_t quick_to_interpreter_bridge_offset_ = 0;
141 int32_t image_patch_delta_ = 0;
143 uint32_t image_file_location_oat_checksum_ = 0;
144 uint32_t image_file_location_oat_data_begin_ = 0;
146 uint32_t key_value_store_size_ = 0;
148 key_values_t dex2oat_context_;