1 #ifndef INCLUDE__InformationManager_hxx
2 #define INCLUDE__InformationManager_hxx
4 #include <boost/signals2.hpp>
15 class InformationManager {
17 void reset(const std::string& filename);
18 void save(const QString& filename);
20 boost::signals2::connection
21 connect_new_function_signal(std::function<void(Function*)> f)
22 { return new_function_signal.connect(f); }
24 void signal_new_function(Function* f)
25 { functions.insert(f); new_function_signal(f); }
27 boost::signals2::connection
28 connect_new_dyn_symbol_signal(std::function<void(const std::string& name)> f)
29 { return new_dyn_symbol_signal.connect(f); }
31 void signal_new_dyn_symbol(const std::string& f)
32 { new_dyn_symbol_signal(f); }
34 boost::signals2::connection
35 connect_reset_signal(std::function<void ()> f)
36 { return reset_signal.connect(f); }
38 Disassembler* getDisassembler()
39 { return disassembler.get(); }
41 boost::signals2::signal<void ()> reset_signal;
42 boost::signals2::signal<void (Function*)> new_function_signal;
43 boost::signals2::signal<void (const std::string& name)> new_dyn_symbol_signal;
44 std::unique_ptr<Disassembler> disassembler;
45 std::set<Function*> functions;
48 #endif /* INCLUDE__InformationManager_hxx */