retdec
import.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_FILEFORMAT_TYPES_IMPORT_TABLE_IMPORT_H
8 #define RETDEC_FILEFORMAT_TYPES_IMPORT_TABLE_IMPORT_H
9 
10 #include <string>
11 
12 namespace retdec {
13 namespace fileformat {
14 
18 class Import
19 {
20  public:
21  enum class UsageType
22  {
23  UNKNOWN,
24  FUNCTION,
25  OBJECT,
26  FILE
27  };
28 
29  private:
30  std::string name;
31  unsigned long long libraryIndex = 0;
32  unsigned long long address = 0;
33  unsigned long long ordinalNumber = 0;
34  bool ordinalNumberIsValid = false;
36  public:
37  virtual ~Import() = default;
38 
41  std::string getName() const;
42  unsigned long long getLibraryIndex() const;
43  unsigned long long getAddress() const;
44  bool getOrdinalNumber(unsigned long long &importOrdinalNumber) const;
47 
50  bool isUnknown() const;
51  bool isFunction() const;
52  bool isObject() const;
53  bool isFile() const;
55 
58  void setName(std::string importName);
59  void setLibraryIndex(unsigned long long importLibraryIndex);
60  void setAddress(unsigned long long importAddress);
61  void setOrdinalNumber(unsigned long long importOrdinalNumber);
62  void setUsageType(Import::UsageType importUsageType);
64 
67  virtual bool isUsedForImphash() const;
69  bool hasEmptyName() const;
71 };
72 
73 } // namespace fileformat
74 } // namespace retdec
75 
76 #endif
Definition: import.h:19
unsigned long long ordinalNumber
Definition: import.h:33
void invalidateOrdinalNumber()
Definition: import.cpp:160
void setAddress(unsigned long long importAddress)
Definition: import.cpp:119
bool isUnknown() const
Definition: import.cpp:68
unsigned long long getLibraryIndex() const
Definition: import.cpp:25
bool hasEmptyName() const
Definition: import.cpp:168
unsigned long long getAddress() const
Definition: import.cpp:34
bool isObject() const
Definition: import.cpp:84
bool isFunction() const
Definition: import.cpp:76
unsigned long long address
Definition: import.h:32
std::string getName() const
Definition: import.cpp:16
bool ordinalNumberIsValid
Definition: import.h:34
void setOrdinalNumber(unsigned long long importOrdinalNumber)
Definition: import.cpp:128
void setLibraryIndex(unsigned long long importLibraryIndex)
Definition: import.cpp:110
virtual ~Import()=default
UsageType
Definition: import.h:22
std::string name
Definition: import.h:30
Import::UsageType getUsageType() const
Definition: import.cpp:60
void setUsageType(Import::UsageType importUsageType)
Definition: import.cpp:138
virtual bool isUsedForImphash() const
Definition: import.cpp:148
unsigned long long libraryIndex
Definition: import.h:31
bool isFile() const
Definition: import.cpp:92
UsageType usageType
Definition: import.h:35
void setName(std::string importName)
Definition: import.cpp:101
bool getOrdinalNumber(unsigned long long &importOrdinalNumber) const
Definition: import.cpp:46
Definition: archive_wrapper.h:19