X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fcore%2FFunction.hxx;h=98417de2a7639d05b76a2a49a49f91946d0137c3;hp=aebfe8f8591e2b1174551f4a69b9bf9ae8ab0ecc;hb=c81c0d3dba088b302187d7862a62ca88d2306e24;hpb=73fbbe0b8d199d2ee85e2cfaf4304689f4d6e6eb diff --git a/src/core/Function.hxx b/src/core/Function.hxx index aebfe8f..98417de 100644 --- a/src/core/Function.hxx +++ b/src/core/Function.hxx @@ -5,27 +5,19 @@ #include "BasicBlock.hxx" class InformationManager; +class QXmlStreamWriter; +class QXmlStreamReader; class Function { public: - Function(const std::string& name, uint64_t start_address, - InformationManager* manager) - : name(name) - , start_address(start_address) - ,manager(manager) {} - - uint64_t getStartAddress() const { - return start_address; - } + uint64_t getStartAddress() const { return start_address; } - std::string getName() const - { return name; } - void setName(const std::string& new_name) - { name = new_name; } + std::string getName() const { return name; } + void setName(const std::string& new_name); - InformationManager* getManager() const { - return manager; - } + InformationManager* getManager() const { return manager; } + + bool isDynamic() const { return dynamic; } void addBasicBlock(BasicBlock* block) { _blocks.insert(std::make_pair(block->getStartAddress(), block)); @@ -34,11 +26,20 @@ public: const std::map& blocks() { return _blocks; } + + void serialize(QXmlStreamWriter& stream); + static Function* deserialize(QXmlStreamReader& stream, InformationManager* manager); + private: + Function(uint64_t start_address, bool dynamic, InformationManager* manager); + std::string name; uint64_t start_address; + bool dynamic; InformationManager * manager; std::map _blocks; + + friend class InformationManager; }; #endif