File indexing completed on 2024-05-12 05:43:33
0001 /* 0002 Copyright (C) 2013-2014 Volker Krause <vkrause@kde.org> 0003 0004 This program is free software; you can redistribute it and/or modify it 0005 under the terms of the GNU Library General Public License as published by 0006 the Free Software Foundation; either version 2 of the License, or (at your 0007 option) any later version. 0008 0009 This program is distributed in the hope that it will be useful, but WITHOUT 0010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0011 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 0012 License for more details. 0013 0014 You should have received a copy of the GNU General Public License 0015 along with this program. If not, see <https://www.gnu.org/licenses/>. 0016 */ 0017 0018 #ifndef INDEXVISITOR_H 0019 #define INDEXVISITOR_H 0020 0021 #include "elfnodevisitor.h" 0022 0023 #include <QPair> 0024 0025 // TODO: better name "ChildVisitor"? 0026 class IndexVisitor : public ElfNodeVisitor<QPair<void*, ElfNodeVariant::Type>> 0027 { 0028 public: 0029 using ElfNodeVisitor<QPair<void*, ElfNodeVariant::Type>>::doVisit; 0030 type doVisit(ElfFileSet* fileSet, int row) const override; 0031 type doVisit(ElfFile* file, int row) const override; 0032 type doVisit(ElfSymbolTableSection* symtab, int row) const override; 0033 type doVisit(ElfDynamicSection* section, int row) const override; 0034 type doVisit(ElfGNUSymbolVersionDefinitionsSection *section, int row) const override; 0035 type doVisit(ElfGNUSymbolVersionDefinition *verDef, int row) const override; 0036 type doVisit(ElfGNUSymbolVersionRequirementsSection* section, int arg) const override; 0037 type doVisit(ElfGNUSymbolVersionRequirement *verNeed, int row) const override; 0038 type doVisit(ElfGotSection *section, int row) const override; 0039 type doVisit(ElfNoteSection* section, int row) const override; 0040 type doVisit(ElfPltSection *section, int row) const override; 0041 type doVisit(ElfRelocationSection *section, int row) const override; 0042 #if HAVE_DWARF 0043 type doVisit(DwarfInfo* info, int row) const override; 0044 type doVisit(DwarfDie* die, int row) const override; 0045 #endif 0046 }; 0047 0048 #endif // INDEXVISITOR_H