Developer documentation | Axl-2.5.1

axlFieldWritersFactory.h
Go to the documentation of this file.
1 /* axlFieldWritersFactory.h ---
2  *
3  * Author: Anais Ducoffe
4  * Copyright (C) 2013 - Anais Ducoffe, Inria.
5  */
6 
7 /* Commentary:
8  *
9  */
10 
11 /* Change log:
12  *
13  */
14 
15 
16 #ifndef AXLFIELDWRITERSFACTORY_H
17 #define AXLFIELDWRITERSFACTORY_H
18 
19 #include "axlCoreExport.h"
20 
22 
23 #include <QtWidgets>
24 
26 
27 // /////////////////////////////////////////////////////////////////
28 //
29 // /////////////////////////////////////////////////////////////////
30 
32 {
33  Q_OBJECT
34 public:
35  axlFieldWritersInterface(QWidget *parent = 0);
36  virtual ~axlFieldWritersInterface(void);
37 
38  void setActorFactorySingleton(axlFieldWritersFactory *actorFactorySingleton);
39  axlFieldWritersFactory *actorFactorySingleton(void);
40 
41 
42 protected :
44 };
45 
46 // /////////////////////////////////////////////////////////////////
47 //
48 // /////////////////////////////////////////////////////////////////
49 
50 class axlFieldWritersFactoryPrivate;
51 
52 class AXLCORE_EXPORT axlFieldWritersFactory : public QObject
53 {
54  Q_OBJECT
55 
56 public:
57  typedef dtkAbstractDataWriter *(*axlFieldWritersCreator)(void);
58 
59  typedef QHash<QString, axlFieldWritersCreator> axlFieldWritersCreatorHash;
60 
61 public:
62  static axlFieldWritersFactory *instance(void);
63 
64  bool registerFieldWriters(const QString& interface_name, axlFieldWritersCreator func);
65 
66  dtkAbstractDataWriter *create(const QString& interface_name);
67  void initialize(void);
68 
69 protected:
71 
72 private:
75 
76 private:
77  axlFieldWritersFactoryPrivate *d;
78 };
79 
80 #endif // AXLFIELDWRITERSFACTORY_H
axlFieldWritersFactory * m_actorFactorySingleton
static axlFieldWritersFactory * s_instance
QHash< QString, axlFieldWritersCreator > axlFieldWritersCreatorHash
#define AXLCORE_EXPORT