diff -r 90517678cc4f -r 453da2cfceef qtmobility/plugins/contacts/maemo5/qcontactmaemo5backend_p.h --- a/qtmobility/plugins/contacts/maemo5/qcontactmaemo5backend_p.h Mon May 03 13:18:40 2010 +0300 +++ b/qtmobility/plugins/contacts/maemo5/qcontactmaemo5backend_p.h Fri May 14 16:41:33 2010 +0300 @@ -48,7 +48,7 @@ #include #include #include - +#include #include #include "qtcontacts.h" @@ -59,6 +59,8 @@ QTM_USE_NAMESPACE +Q_DEFINE_LATIN1_CONSTANT(AddressFieldExtension, "X-Maemo5-Extension"); + class Q_DECL_EXPORT ContactMaemo5Factory : public QObject, public QContactManagerEngineFactory { Q_OBJECT @@ -105,6 +107,7 @@ QString synthesizedDisplayLabel(const QContact& contact, QContactManager::Error* error) const; bool validateContact(const QContact&, QContactManager::Error* error) const; bool validateDefinition(const QContactDetailDefinition&, QContactManager::Error* error) const; + QContact compatibleContact(const QContact& contact, QContactManager::Error* error) const; /* "Self" contact id (MyCard) */ QContactLocalId selfContactId(QContactManager::Error* errors) const; @@ -134,26 +137,18 @@ QList supportedDataTypes() const; QStringList supportedContactTypes() const {return (QStringList() << QContactType::TypeContact);} - // XXX TODO: FIXME - these are pure virtual and so MUST be implemented by the backend. Stubs here. - QMap managerParameters() const {return QMap();} - - QContact compatibleContact(const QContact&, QContactManager::Error* error) const {*error = QContactManager::NotSupportedError;return QContact();} - - bool setSelfContactId(const QContactLocalId&, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} - bool saveDetailDefinition(const QContactDetailDefinition&, const QString&, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} - bool removeDetailDefinition(const QString&, const QString&, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} - - void requestDestroyed(QContactAbstractRequest*) {} - bool startRequest(QContactAbstractRequest*) {return false;} - bool cancelRequest(QContactAbstractRequest*) {return false;} - bool waitForRequestFinished(QContactAbstractRequest*, int) {return false;} + /* Asynchronous Request Support - synchronous versions until thread worker is stable */ + void requestDestroyed(QContactAbstractRequest *req); + bool startRequest(QContactAbstractRequest *req); + bool cancelRequest(QContactAbstractRequest *req); + bool waitForRequestProgress(QContactAbstractRequest* req, int msecs); + bool waitForRequestFinished(QContactAbstractRequest* req, int msecs); - bool saveRelationships(QList*, QMap*, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} - bool removeRelationships(const QList&, QMap*, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;} - bool isRelationshipTypeSupported(const QString&, const QString&) const {return false;} - QList relationships(const QString&, const QContactId&, QContactRelationship::Role, QContactManager::Error* error) const {*error = QContactManager::NotSupportedError; return QList();} - - private: + private slots: + void performAsynchronousOperation(); + + private: + QQueue m_asynchronousOperations; // async requests to be performed. QSharedDataPointer d; };