1 #ifndef INCLUDE__Function_hxx
2 #define INCLUDE__Function_hxx
5 #include "BasicBlock.hxx"
7 class InformationManager;
8 class QXmlStreamWriter;
9 class QXmlStreamReader;
13 uint64_t getStartAddress() const { return start_address; }
15 std::string getName() const { return name; }
16 void setName(const std::string& new_name);
18 InformationManager* getManager() const { return manager; }
20 bool isDynamic() const { return dynamic; }
22 void addBasicBlock(BasicBlock* block) {
23 _blocks.insert(std::make_pair(block->getStartAddress(), block));
26 const std::map<uint64_t, BasicBlock*>& blocks() {
30 void serialize(QXmlStreamWriter& stream);
31 static Function* deserialize(QXmlStreamReader& stream, InformationManager* manager);
34 Function(uint64_t start_address, bool dynamic, InformationManager* manager);
37 uint64_t start_address;
39 InformationManager * manager;
40 std::map<uint64_t, BasicBlock*> _blocks;
42 friend class InformationManager;