arcsnativefamily.h
1 /*
2  name: include/arcs/arcsnativefamily.h
3 
4  This file is part of ARCS - Augmented Reality Component System
5  (version 2-current), written by Jean-Yves Didier
6  for IBISC Laboratory (http://www.ibisc.univ-evry.fr)
7 
8  Copyright (C) 2013 Université d'Evry-Val d'Essonne
9 
10  This program is free software: you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation, either version 2 of the License, or
13  (at your option) any later version.
14 
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with this program. If not, see <http://www.gnu.org/licenses/>.
22 
23 
24  Please send bugreports with examples or suggestions to
25  jean-yves.didier__at__ibisc.univ-evry.fr
26 */
27 
28 
29 #ifndef __ARCSNATIVEFAMILY_H__
30 #define __ARCSNATIVEFAMILY_H__
31 
32 #include <arcs/arcsabstractfamily.h>
33 #include <arcs/arcslibtoolkit.h>
34 
42 {
43 public:
44 
46  virtual ~ARCSNativeFamily();
47 
48  virtual QStringList factoryList() { return factories.keys(); }
49  virtual bool addFactory( QString type, ARCSAbstractComponent* whatever); //{ componentList << type; }
50  virtual void removeFactory(QString type);
51 
52  virtual ARCSAbstractComponent* instanciate(QString type);
53  virtual void destroy(ARCSAbstractComponent* component);
54 
55  virtual QString name() const;
56  virtual bool isInternal() const;
57 
58 private:
59  QHash <QString, ARCSNativeComponent*> factories;
60 
61 };
62 
63 #endif //__ARCSNATIVEFAMILY_H__
virtual QStringList factoryList()
Returns a list of available factories.
virtual void removeFactory(QString type)
Removes a component factory to the family.
Class handling the generic description of a component.
virtual bool addFactory(QString type, ARCSAbstractComponent *whatever)
Adds a component factory to the family.
virtual bool isInternal() const
Describes wether the family is internal to ARCS or not.
virtual void destroy(ARCSAbstractComponent *component)
Destroys a component.
virtual QString name() const
name of the family
Native family handling native components inside ARCS runtime.
virtual ARCSAbstractComponent * instanciate(QString type)
Returns a component.
Abstract class representing a family of components i.e. a factory of factories of components...