23 #ifndef _TelepathyQt_optional_interface_factory_h_HEADER_GUARD_ 24 #define _TelepathyQt_optional_interface_factory_h_HEADER_GUARD_ 26 #ifndef IN_TP_QT_HEADER 27 #error IN_TP_QT_HEADER 30 #include <TelepathyQt/Global> 33 #include <QStringList> 39 class AbstractInterface;
41 #ifndef DOXYGEN_SHOULD_SKIP_THIS 43 class TP_QT_EXPORT OptionalInterfaceCache
45 Q_DISABLE_COPY(OptionalInterfaceCache)
48 explicit OptionalInterfaceCache(QObject *proxy);
50 ~OptionalInterfaceCache();
53 AbstractInterface *getCached(
const QString &name)
const;
54 void cache(AbstractInterface *interface)
const;
55 QObject *proxy()
const;
59 friend struct Private;
66 #ifndef DOXYGEN_SHOULD_SKIP_THIS
67 :
private OptionalInterfaceCache
80 : OptionalInterfaceCache(this_)
88 inline QStringList
interfaces()
const {
return mInterfaces; }
92 return mInterfaces.contains(name);
95 template <
class Interface>
102 QString name( (QLatin1String(Interface::staticInterfaceName())) );
108 return interface<Interface>();
111 template <
typename Interface>
114 AbstractInterface* interfaceMustBeASubclassOfAbstractInterface = static_cast<Interface *>(NULL);
115 Q_UNUSED(interfaceMustBeASubclassOfAbstractInterface);
120 QString name( (QLatin1String(Interface::staticInterfaceName())) );
123 return static_cast<Interface *>(cached);
126 Interface *
interface = new Interface(
127 static_cast<DBusProxySubclass *>(proxy()));
139 QStringList mInterfaces;
Interface * optionalInterface(InterfaceSupportedChecking check=CheckInterfaceSupported) const
Definition: optional-interface-factory.h:96
bool hasInterface(const QString &name) const
Definition: optional-interface-factory.h:90
OptionalInterfaceFactory(DBusProxySubclass *this_)
Definition: optional-interface-factory.h:79
The AbstractInterface class is the base class for all client side D-Bus interfaces,...
Definition: abstract-interface.h:42
Definition: optional-interface-factory.h:76
Definition: optional-interface-factory.h:75
QStringList interfaces() const
Definition: optional-interface-factory.h:88
Interface * interface() const
Definition: optional-interface-factory.h:112
The OptionalInterfaceFactory class is a helper class for high-level D-Bus proxy classes willing to of...
Definition: optional-interface-factory.h:65
void setInterfaces(const QStringList &interfaces)
Definition: optional-interface-factory.h:133
InterfaceSupportedChecking
Definition: optional-interface-factory.h:73
Definition: abstract-adaptor.cpp:31
~OptionalInterfaceFactory()
Definition: optional-interface-factory.h:84