ibus-qt 1.3.0

/builddir/build/BUILD/ibus-qt-1.3.0-Source/src/qibusenginefactory.h

00001 #ifndef __Q_IBUS_FACTORY_ADAPTOR_H_
00002 #define __Q_IBUS_FACTORY_ADAPTOR_H_
00003 
00004 #include <QLinkedList>
00005 #include <QDBusConnection>
00006 #include <QDBusObjectPath>
00007 #include "qibusobject.h"
00008 
00009 class IBusFactoryAdaptor;
00010 
00011 namespace IBus {
00012 
00013 class Engine;
00014 typedef Pointer<Engine> EnginePointer;
00015 
00016 class EngineFactory : public Object
00017 {
00018     Q_OBJECT;
00019 
00020 private :
00021     Q_INVOKABLE EngineFactory (const QDBusConnection &conn, uint id = 0);
00022     ~EngineFactory ();
00023 
00024 public:
00025     void addMetaObject (const QString &name, const QMetaObject *metaObject);
00026     static EngineFactory *getEngineFactory (const QDBusConnection &conn);
00027 
00028 protected:
00029     virtual QString createEngine (const QString &name);
00030 
00031 private Q_SLOTS:
00032     Q_INVOKABLE QDBusObjectPath CreateEngine (const QString &name);
00033     Q_INVOKABLE void Destroy ();
00034 
00035 private :
00036 
00037     uint    m_id;
00038     QDBusConnection m_conn;
00039     QMap<QString, const QMetaObject *> m_engineMap;
00040     QLinkedList<EnginePointer> m_engineLList;
00041     IBusFactoryAdaptor  *m_factoryAdaptor;
00042 
00043     static EngineFactory        *m_factory;
00044 };
00045 
00046 };
00047 
00048 #endif
 All Classes Namespaces Functions Enumerations Enumerator