summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h130
1 files changed, 83 insertions, 47 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 678caa06..475cede6 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -644,53 +644,6 @@ namespace BinaryNinja
std::string GetUniqueIdentifierString();
- class QualifiedName
- {
- std::vector<std::string> m_name;
-
- public:
- QualifiedName();
- QualifiedName(const std::string& name);
- QualifiedName(const std::vector<std::string>& name);
- QualifiedName(const QualifiedName& name);
-
- QualifiedName& operator=(const std::string& name);
- QualifiedName& operator=(const std::vector<std::string>& name);
- QualifiedName& operator=(const QualifiedName& name);
-
- bool operator==(const QualifiedName& other) const;
- bool operator!=(const QualifiedName& other) const;
- bool operator<(const QualifiedName& other) const;
-
- QualifiedName operator+(const QualifiedName& other) const;
-
- std::string& operator[](size_t i);
- const std::string& operator[](size_t i) const;
- std::vector<std::string>::iterator begin();
- std::vector<std::string>::iterator end();
- std::vector<std::string>::const_iterator begin() const;
- std::vector<std::string>::const_iterator end() const;
- std::string& front();
- const std::string& front() const;
- std::string& back();
- const std::string& back() const;
- void insert(std::vector<std::string>::iterator loc, const std::string& name);
- void insert(std::vector<std::string>::iterator loc, std::vector<std::string>::iterator b,
- std::vector<std::string>::iterator e);
- void erase(std::vector<std::string>::iterator i);
- void clear();
- void push_back(const std::string& name);
- // Returns count of names
- size_t size() const;
- // Returns size of output string
- size_t StringSize() const;
- std::string GetString() const;
-
- BNQualifiedName GetAPIObject() const;
- static void FreeAPIObject(BNQualifiedName* name);
- static QualifiedName FromAPIObject(BNQualifiedName* name);
- };
-
class DataBuffer
{
BNDataBuffer* m_buffer;
@@ -2097,6 +2050,89 @@ namespace BinaryNinja
Variable location;
};
+ class NameList
+ {
+ protected:
+ std::string m_join;
+ std::vector<std::string> m_name;
+ public:
+ NameList(const std::string& join);
+ NameList(const std::string& name, const std::string& join);
+ NameList(const std::vector<std::string>& name, const std::string& join);
+ NameList(const NameList& name, const std::string& join);
+
+ virtual NameList& operator=(const std::string& name);
+ virtual NameList& operator=(const std::vector<std::string>& name);
+ virtual NameList& operator=(const NameList& name);
+
+ virtual bool operator==(const NameList& other) const;
+ virtual bool operator!=(const NameList& other) const;
+ virtual bool operator<(const NameList& other) const;
+
+ virtual NameList operator+(const NameList& other) const;
+
+ virtual std::string& operator[](size_t i);
+ virtual const std::string& operator[](size_t i) const;
+ virtual std::vector<std::string>::iterator begin();
+ virtual std::vector<std::string>::iterator end();
+ virtual std::vector<std::string>::const_iterator begin() const;
+ virtual std::vector<std::string>::const_iterator end() const;
+ virtual std::string& front();
+ virtual const std::string& front() const;
+ virtual std::string& back();
+ virtual const std::string& back() const;
+ virtual void insert(std::vector<std::string>::iterator loc, const std::string& name);
+ virtual void insert(std::vector<std::string>::iterator loc, std::vector<std::string>::iterator b,
+ std::vector<std::string>::iterator e);
+ virtual void erase(std::vector<std::string>::iterator i);
+ virtual void clear();
+ virtual void push_back(const std::string& name);
+ virtual size_t size() const;
+ virtual size_t StringSize() const;
+
+ virtual std::string GetString() const;
+
+ BNNameList GetAPIObject() const;
+ static void FreeAPIObject(BNNameList* name);
+ static NameList FromAPIObject(BNNameList* name);
+ };
+
+ class QualifiedName: public NameList
+ {
+ public:
+ QualifiedName();
+ QualifiedName(const std::string& name);
+ QualifiedName(const std::vector<std::string>& name);
+ QualifiedName(const QualifiedName& name);
+
+ virtual QualifiedName& operator=(const std::string& name);
+ virtual QualifiedName& operator=(const std::vector<std::string>& name);
+ virtual QualifiedName& operator=(const QualifiedName& name);
+ virtual QualifiedName operator+(const QualifiedName& other) const;
+
+ BNQualifiedName GetAPIObject() const;
+ static void FreeAPIObject(BNQualifiedName* name);
+ static QualifiedName FromAPIObject(BNQualifiedName* name);
+ };
+
+ class NameSpace: public NameList
+ {
+ public:
+ NameSpace();
+ NameSpace(const std::string& name);
+ NameSpace(const std::vector<std::string>& name);
+ NameSpace(const NameSpace& name);
+
+ virtual NameSpace& operator=(const std::string& name);
+ virtual NameSpace& operator=(const std::vector<std::string>& name);
+ virtual NameSpace& operator=(const NameSpace& name);
+ virtual NameSpace operator+(const NameSpace& other) const;
+
+ BNNameSpace GetAPIObject() const;
+ static void FreeAPIObject(BNNameSpace* name);
+ static NameSpace FromAPIObject(BNNameSpace* name);
+ };
+
struct QualifiedNameAndType
{
QualifiedName name;