#include <map>
#include "BasicBlock.hxx"
+class InformationManager;
+
class Function {
public:
- Function(const std::string& name, uint64_t start_address)
- : name(name)
- , start_address(start_address) {
- }
+ Function(const std::string& name, uint64_t start_address, InformationManager* manager);
uint64_t getStartAddress() const {
return start_address;
}
- std::string getName() const {
- return name;
+ std::string getName() const
+ { return name; }
+ void setName(const std::string& new_name);
+
+ InformationManager* getManager() const {
+ return manager;
}
void addBasicBlock(BasicBlock* block) {
_blocks.insert(std::make_pair(block->getStartAddress(), block));
}
- std::map<uint64_t, BasicBlock*>& blocks() {
+ const std::map<uint64_t, BasicBlock*>& blocks() {
return _blocks;
}
private:
std::string name;
uint64_t start_address;
+ InformationManager * manager;
std::map<uint64_t, BasicBlock*> _blocks;
};