coeng
annotate src/comp.cc @ 3:66d1762eb203
foo
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 05 Feb 2015 23:20:20 +0200 |
parents | 4a1c9597f4d3 |
children | 49a2e70ac455 |
rev | line source |
---|---|
nuclear@2 | 1 #include <map> |
nuclear@2 | 2 #include <string> |
nuclear@2 | 3 #include "comp.h" |
nuclear@2 | 4 |
nuclear@2 | 5 static std::map<std::string, Component *(*)()> comp_cons; |
nuclear@2 | 6 |
nuclear@2 | 7 Component::Component() |
nuclear@2 | 8 { |
nuclear@2 | 9 name = "unknown"; |
nuclear@2 | 10 gobj = 0; |
nuclear@2 | 11 upd_prio = 0; |
nuclear@2 | 12 } |
nuclear@2 | 13 |
nuclear@2 | 14 Component::~Component() |
nuclear@2 | 15 { |
nuclear@2 | 16 } |
nuclear@2 | 17 |
nuclear@2 | 18 const char *Component::get_name() const |
nuclear@2 | 19 { |
nuclear@2 | 20 return name; |
nuclear@2 | 21 } |
nuclear@2 | 22 |
nuclear@2 | 23 void Component::update() |
nuclear@2 | 24 { |
nuclear@2 | 25 } |
nuclear@2 | 26 |
nuclear@2 | 27 bool Component::operator <(const Component &c) const |
nuclear@2 | 28 { |
nuclear@2 | 29 return upd_prio < c.upd_prio; |
nuclear@2 | 30 } |
nuclear@2 | 31 |
nuclear@2 | 32 |
nuclear@2 | 33 void register_component(const char *name, Component *(*cons_func)()) |
nuclear@2 | 34 { |
nuclear@3 | 35 if(!comp_cons[name]) { |
nuclear@3 | 36 printf("register component: %s\n", name); |
nuclear@3 | 37 comp_cons[name] = cons_func; |
nuclear@3 | 38 } |
nuclear@2 | 39 } |
nuclear@2 | 40 |
nuclear@2 | 41 Component *create_component(const char *name) |
nuclear@2 | 42 { |
nuclear@2 | 43 Component *(*cons)() = comp_cons[name]; |
nuclear@2 | 44 if(cons) { |
nuclear@2 | 45 return cons(); |
nuclear@2 | 46 } |
nuclear@2 | 47 return 0; |
nuclear@2 | 48 } |