/* Copyright 2017 - 2021 R. Thomas * Copyright 2017 - 2021 Quarkslab * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef LIEF_DEX_TYPE_TRAITS_H_ #define LIEF_DEX_TYPE_TRAITS_H_ #include #include #include #include #include "LIEF/iterators.hpp" namespace LIEF { namespace DEX { class File; class Class; class Method; class Type; class Prototype; using dex_version_t = uint32_t; using magic_t = std::array; using signature_t = std::array; using dex_files_t = std::vector; using it_dex_files = ref_iterator; using it_const_dex_files = const_ref_iterator; using classes_t = std::unordered_map; using classes_list_t = std::vector; using it_classes = ref_iterator; using it_const_classes = const_ref_iterator; using methods_t = std::vector; using it_methods = ref_iterator; using it_const_methods = const_ref_iterator; using strings_t = std::vector; using it_strings = ref_iterator; using it_const_strings = const_ref_iterator; using types_t = std::vector; using it_types = ref_iterator; using it_const_types = const_ref_iterator; using prototypes_t = std::vector; using it_protypes = ref_iterator; using it_const_protypes = const_ref_iterator; // Method Index: {dex_pc: index, ...} using dex2dex_method_info_t = std::map; using dex2dex_class_info_t = std::map; using dex2dex_info_t = std::unordered_map; } } #endif