Implemented Interface::Message.
[aesalon.git] / src / interface / dwarf / Tag.h
blob4b6599200a41a9d9a832d4c44f79e27c94f9ce24
1 #ifndef AESALON_INTERFACE_DWARF_TAG_H
2 #define AESALON_INTERFACE_DWARF_TAG_H
4 #include <string>
5 #include <map>
7 #include "Attribute.h"
8 #include "misc/SmartPointer.h"
10 namespace Aesalon {
11 namespace Interface {
12 namespace DWARF {
14 class Tag {
15 public:
16 typedef std::map<std::string, Misc::SmartPointer<Attribute> > attribute_map_t;
17 private:
18 std::string name;
20 attribute_map_t attribute_map;
21 public:
22 Tag(std::string name) : name(name) {}
23 virtual ~Tag() {}
25 std::string get_name() const { return name; }
27 Misc::SmartPointer<Attribute> get_attribute(std::string name) const { return attribute_map.at(name); }
30 } // namespace DWARF
31 } // namespace Interface
32 } // namespace Aesalon
34 #endif