creator-level saving new files in fat
[quarnos.git] / manes / manager.h
blobbda2a0ac3449501d05815e5d79e4134b68293766
1 /* Quarn OS
3 * Manager class
5 * Copyright (C) 2008 Pawel Dziepak
8 */
10 #ifndef _MANAGER_H_
11 #define _MANAGER_H_
13 #include "creator.h"
15 namespace manes {
16 class type;
18 class manager : public implementation /*: public creator*/ {
19 public:
20 virtual bool initialize() = 0;
21 virtual bool type_added(type_name) = 0;
23 virtual component *new_component(const type_name&) = 0;
24 virtual component *get_component(const component_name&) = 0;
26 virtual void register_type(type*) = 0;
27 virtual type *get_type(type_name) = 0;
30 class manager_impl : public manager {
31 private:
32 list<component*> components;
34 list<type*> types;
35 public:
36 bool initialize();
37 bool type_added(type_name);
39 component *new_component(const type_name&);
40 component *get_component(const component_name&);
42 void register_type(type*);
43 type *get_type(type_name);
48 #endif