IDA Domain
segment.hpp
Go to the documentation of this file.
1 #ifndef IDA_DOMAIN_SEGMENT_HPP
2 #define IDA_DOMAIN_SEGMENT_HPP
3 
5 #include <ida.hpp>
6 #include <segment.hpp>
7 #include <string>
8 
9 #ifndef SWIG
11 {
12 #endif
13  class Database;
14 
17  {
19  const Database &m_database;
20 
22  Segments() = delete;
23 
24  public:
27  {
29  const Database &m_database;
30 
32  ea_t m_current_ea = 0;
33 
35  Iterator() = delete;
36 
37  public:
40  Iterator(const Database &database) : m_database(database)
41  {
42  }
43 
46  segment_t *get_first();
47 
50  segment_t *get_next();
51  };
52 
53  public:
56  Segments(const Database &database) : m_database(database)
57  {
58  }
59 
63  segment_t *get_at(const ea_t ea) const;
64 
68  std::string get_name(const segment_t *segment) const;
69 
74  bool set_name(segment_t *segment, const std::string &name) const;
75 
78  Iterator get_all() const
79  {
80  return Iterator(m_database);
81  }
82  };
83 #ifndef SWIG
84 }
85 #endif
86 
87 #endif // IDA_DOMAIN_SEGMENT_HPP
Provides access and control over the loaded IDA database.
Definition: database.hpp:25
Iterator for segments in the IDA database.
Definition: segment.hpp:27
segment_t * get_next()
Retrieves the next segment in the database.
Iterator(const Database &database)
Constructs a segments iterator for the given database.
Definition: segment.hpp:40
segment_t * get_first()
Retrieves the first segment in the database.
Provides access to segment-related operations in the IDA database.
Definition: segment.hpp:17
Segments(const Database &database)
Constructs a segments handler for the given database.
Definition: segment.hpp:56
segment_t * get_at(const ea_t ea) const
Retrieves the segment that contains the given address.
bool set_name(segment_t *segment, const std::string &name) const
Renames a segment.
std::string get_name(const segment_t *segment) const
Retrieves the name of the given segment.
Iterator get_all() const
Retrieves an iterator over all segments in the database.
Definition: segment.hpp:78
#define IDA_API
Definition: common_defines.hpp:11
#define ABI_VERSION_NS
Definition: version.hpp:17