source: pacpusframework/trunk/include/Pacpus/kernel/ComponentFactoryBase.h@ 31

Last change on this file since 31 was 31, checked in by sgosseli, 12 years ago

Huge commit: use the new includes style in all the files, add the license header in all the headers, and in some cpp.

File size: 1.0 KB
Line 
1/**
2 *
3 * Distributed under the UTC Heudiascy Pacpus License, Version 1.0.
4 * Copyright (c) UTC Heudiasyc 2010 - 2013. All rights reserved.
5 *
6 * See the LICENSE file for more information or a copy at:
7 * http://www.hds.utc.fr/~kurdejma/LICENSE_1_0.txt
8 *
9 */
10
11#ifndef DEF_PACPUS_COMPONENTFACTORYBASE_H
12#define DEF_PACPUS_COMPONENTFACTORYBASE_H
13
14#include <Pacpus/kernel/pacpus.h>
15
16class QString;
17
18namespace pacpus {
19
20class ComponentManager;
21class ComponentBase;
22
23/** ComponentFactoryBase
24 * @brief Provide an abstract class to the template ComponentFactory.
25 */
26class PACPUSLIB_API ComponentFactoryBase
27{
28 friend class ComponentManager;
29
30public:
31 ComponentFactoryBase();
32 virtual ~ComponentFactoryBase();
33
34protected:
35 virtual ComponentBase * instantiateComponent(const QString & name) = 0;
36 void addFactory(ComponentFactoryBase * addr, const QString & type);
37 void addComponent(const QString & name);
38
39private:
40 ComponentManager * mgr_;
41};
42
43} // namespace pacpus
44
45#endif
Note: See TracBrowser for help on using the repository browser.