]> git.siccegge.de Git - frida/frida.git/blobdiff - src/core/BasicBlock.hxx
implement basic deserialization of BasicBlock's
[frida/frida.git] / src / core / BasicBlock.hxx
index 4790b1c5626f2e92e02c012ab161d8912bb394da..bec0da3a7d77752c78b031a429ea52a2f36908ee 100644 (file)
@@ -7,18 +7,11 @@
 
 class Disassembler;
 class InformationManager;
+class QXmlStreamWriter;
+class QXmlStreamReader;
 
 class BasicBlock {
 public:
-       BasicBlock(uint64_t start_address, Disassembler * disassembler,
-                  InformationManager* manager)
-               : start_address(start_address)
-               , disassembler(disassembler)
-               , manager(manager) {
-               next_blocks[0] = 0;
-               next_blocks[1] = 0;
-       }
-
        uint64_t getStartAddress() const {
                return start_address;
        }
@@ -51,19 +44,28 @@ public:
                return s.str();
        }
 
-       Disassembler * getDisassembler() const {
-               return disassembler;
-       }
-
        InformationManager* getManager() const {
                return manager;
        }
+
+       void serialize(QXmlStreamWriter& stream);
+       static BasicBlock* deserialize(QXmlStreamReader& stream, InformationManager* manager);
+
 private:
+       BasicBlock(uint64_t start_address, InformationManager* manager)
+               : start_address(start_address)
+               , manager(manager) {
+               next_blocks[0] = 0;
+               next_blocks[1] = 0;
+       }
+
        uint64_t start_address;
        uint64_t end_address;
        Disassembler* disassembler;
        InformationManager* manager;
        uint64_t next_blocks[2];
+
+       friend class InformationManager;
 };
 
 #endif