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