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())) );
   103         if (check == CheckInterfaceSupported && !mInterfaces.contains(name)) {
   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()));
   135         mInterfaces = interfaces;
   139     QStringList mInterfaces;
 void setInterfaces(const QStringList &interfaces)
Definition: optional-interface-factory.h:133
Interface * interface() const 
Definition: optional-interface-factory.h:112
The AbstractInterface class is the base class for all client side D-Bus interfaces, allowing access to remote methods/properties/signals. 
Definition: abstract-interface.h:42
OptionalInterfaceFactory(DBusProxySubclass *this_)
Definition: optional-interface-factory.h:79
bool hasInterface(const QString &name) const 
Definition: optional-interface-factory.h:90
Definition: optional-interface-factory.h:75
Interface * optionalInterface(InterfaceSupportedChecking check=CheckInterfaceSupported) const 
Definition: optional-interface-factory.h:96
~OptionalInterfaceFactory()
Definition: optional-interface-factory.h:84
QStringList interfaces() const 
Definition: optional-interface-factory.h:88
The OptionalInterfaceFactory class is a helper class for high-level D-Bus proxy classes willing to of...
Definition: optional-interface-factory.h:65
Definition: abstract-adaptor.cpp:31
InterfaceSupportedChecking
Definition: optional-interface-factory.h:73