retdec
vtable.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_COMMON_VTABLE_H
8 #define RETDEC_COMMON_VTABLE_H
9 
10 #include <set>
11 #include <string>
12 
13 #include <retdec/common/address.h>
14 
15 namespace retdec {
16 namespace common {
17 
23 {
24  public:
27  const retdec::common::Address& target
29  bool isThumb = false);
30 
33  void setAddress(const retdec::common::Address& a);
35  void setTargetFunctionName(const std::string& n);
36  void setIsThumb(bool isThumb);
38 
44  std::string getTargetFunctionName() const;
45  bool isThumb() const;
47 
48  bool operator<(const VtableItem& o) const;
49  bool operator==(const VtableItem& o) const;
50 
51  private:
57  std::string _targetFunctionName;
60  bool _isThumb = false;
61 };
62 
67 class Vtable
68 {
69  public:
72 
75  void setAddress(const retdec::common::Address& a);
76  void setName(const std::string& n);
78 
83  std::string getName() const;
85 
86  bool operator<(const Vtable& o) const;
87  bool operator==(const Vtable& o) const;
88 
89  public:
90  std::set<VtableItem> items;
91 
92  private:
93  std::string _name;
96 };
97 
102 using VtableContainer = std::set<Vtable>;
103 
104 } // namespace common
105 } // namespace retdec
106 
107 #endif
Definition: address.h:21
static const uint64_t Undefined
Definition: address.h:47
Definition: vtable.h:23
retdec::common::Address _address
Virtual table item's address in binary file.
Definition: vtable.h:53
void setIsThumb(bool isThumb)
Definition: vtable.cpp:45
void setTargetFunctionAddress(const retdec::common::Address &a)
Definition: vtable.cpp:35
bool operator==(const VtableItem &o) const
Definition: vtable.cpp:96
VtableItem(const retdec::common::Address &a=retdec::common::Address::Undefined, const retdec::common::Address &target=retdec::common::Address::Undefined, bool isThumb=false)
Definition: vtable.cpp:19
retdec::common::Address getAddress() const
Definition: vtable.cpp:58
std::string getTargetFunctionName() const
Definition: vtable.cpp:74
bool isThumb() const
Definition: vtable.cpp:79
bool operator<(const VtableItem &o) const
Definition: vtable.cpp:87
retdec::common::Address _targetAddress
Virtual function address for this item.
Definition: vtable.h:55
std::string _targetFunctionName
Name (unique ID) of function on target address.
Definition: vtable.h:57
retdec::common::Address getId() const
Definition: vtable.cpp:50
bool _isThumb
Definition: vtable.h:60
retdec::common::Address getTargetFunctionAddress() const
Definition: vtable.cpp:66
void setTargetFunctionName(const std::string &n)
Definition: vtable.cpp:40
void setAddress(const retdec::common::Address &a)
Definition: vtable.cpp:30
Definition: vtable.h:68
bool operator<(const Vtable &o) const
Definition: vtable.cpp:144
std::string _name
Definition: vtable.h:93
std::string getName() const
Definition: vtable.cpp:136
Vtable(const retdec::common::Address &a=retdec::common::Address::Undefined)
Definition: vtable.cpp:107
bool operator==(const Vtable &o) const
Definition: vtable.cpp:153
retdec::common::Address getAddress() const
Definition: vtable.cpp:131
retdec::common::Address getId() const
Definition: vtable.cpp:123
retdec::common::Address _address
Virtual table's address in binary file.
Definition: vtable.h:95
void setName(const std::string &n)
Definition: vtable.cpp:118
std::set< VtableItem > items
Definition: vtable.h:90
void setAddress(const retdec::common::Address &a)
Definition: vtable.cpp:113
Address, address pair and other derived class representation.
std::set< Vtable > VtableContainer
Definition: vtable.h:102
Definition: archive_wrapper.h:19