qtmobility/plugins/contacts/maemo5/qcontactmaemo5backend_p.h
changeset 5 453da2cfceef
parent 4 90517678cc4f
child 11 06b8e2af4411
--- 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 <QMap>
 #include <QString>
 #include <QList>
-
+#include <QQueue>
 #include <QDebug>
 
 #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<QVariant::Type> 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<QString, QString> managerParameters() const {return QMap<QString,QString>();}
-
-    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<QContactRelationship>*, QMap<int, QContactManager::Error>*, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;}
-    bool removeRelationships(const QList<QContactRelationship>&, QMap<int, QContactManager::Error>*, QContactManager::Error* error) {*error = QContactManager::NotSupportedError; return false;}
-    bool isRelationshipTypeSupported(const QString&, const QString&) const {return false;}
-    QList<QContactRelationship> relationships(const QString&, const QContactId&, QContactRelationship::Role, QContactManager::Error* error) const {*error = QContactManager::NotSupportedError; return QList<QContactRelationship>();}
-
-  private:
+  private slots:
+    void performAsynchronousOperation();
+    
+  private:  
+    QQueue<QContactAbstractRequest*> m_asynchronousOperations; // async requests to be performed.
     QSharedDataPointer<QContactMaemo5EngineData> d;
 };