1 /* Quarn OS / Manes / CDS
5 * Copyright (C) 2009 Pawel Dziepak
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25 using namespace manes::cds
;
27 p
<component
> factory::new_component(const component_name
&obj_type
) {
28 throw new not_supported_exception
;
32 p
<component
> factory::get_component(const component_name
&obj
) {
33 if (obj
.get_type().get_name() == "type") {
34 /* Client looks for type with a certain name */
35 for (int i
= 0; i
< components
.get_count(); i
++)
36 if (components
[i
]->get_name() == obj
)
39 } else if (obj
.get_type().get_name() == "driver") {
40 /* Clients looks for appropiate driver and uses index to get type */
41 return components
[obj
.get_index()];
44 return p
<component
>::invalid
;
48 p
<component
> factory::add_existing(p
<component
> tpe
) {
52 throw new argument_exception
;