qtmobility/plugins/contacts/symbian/inc/cntsymbianengine.h
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 5 453da2cfceef
--- a/qtmobility/plugins/contacts/symbian/inc/cntsymbianengine.h	Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/plugins/contacts/symbian/inc/cntsymbianengine.h	Mon May 03 13:18:40 2010 +0300
@@ -86,66 +86,76 @@
     Q_OBJECT
 
 public:
-    CntSymbianEngine(const QMap<QString, QString>& parameters, QContactManager::Error& error);
+    CntSymbianEngine(const QMap<QString, QString>& parameters, QContactManager::Error* error);
     CntSymbianEngine(const CntSymbianEngine& other);
     ~CntSymbianEngine();
-    void deref();
     
     /* URI reporting */
     QString managerName() const;
 
+    /* XXX TODO - implement these correctly */
+    QMap<QString, QString> managerParameters() const {return QMap<QString, QString>();}
+    int managerVersion() const { return 1;}
+    QContact compatibleContact(const QContact&, QContactManager::Error* error) const {*error =  QContactManager::NotSupportedError;return QContact();}
+    bool validateContact(const QContact& contact, QContactManager::Error* error) const {return QContactManagerEngine::validateContact(contact, error);}
+    bool validateDefinition(const QContactDetailDefinition& def, QContactManager::Error* error) const {return QContactManagerEngine::validateDefinition(def, error);}
+    QContactDetailDefinition detailDefinition(const QString& definitionId, const QString& contactType, QContactManager::Error* error) const  {return QContactManagerEngine::detailDefinition(definitionId, contactType, error);}
+    bool saveDetailDefinition(const QContactDetailDefinition& def, const QString& contactType, QContactManager::Error* error) {return QContactManagerEngine::saveDetailDefinition(def, contactType, error);}
+    bool removeDetailDefinition(const QString& definitionId, const QString& contactType, QContactManager::Error* error)  {return QContactManagerEngine::removeDetailDefinition(definitionId, contactType, error);}
+    QStringList supportedContactTypes() const {return QContactManagerEngine::supportedContactTypes();}
+
+    /* Functions that are optional in the base API */
+    bool saveRelationship(QContactRelationship* relationship, QContactManager::Error* error);
+    bool removeRelationship(const QContactRelationship& relationship, QContactManager::Error* error);
+    bool saveContact(QContact* contact, QContactManager::Error* error);
+    bool removeContact(const QContactLocalId& contactId, QContactManager::Error* error);
+
     /* Contacts - Accessors and Mutators */
-    QList<QContactLocalId> contactIds(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, QContactManager::Error& error) const;
-    QList<QContactLocalId> contactIds(const QList<QContactSortOrder>& sortOrders, QContactManager::Error& error) const;
-    QList<QContact> contacts(const QList<QContactSortOrder>& sortOrders, const QStringList& definitionRestrictions, QContactManager::Error& error) const;
-    QList<QContact> contacts(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, const QStringList& definitionRestrictions, QContactManager::Error& error) const;
-    QContact contact(const QContactLocalId& contactId, const QStringList& definitionRestrictions, QContactManager::Error& error) const;
-    
-    bool saveContact(QContact* contact, QContactManager::Error& error);
-    bool saveContacts(QList<QContact>* contacts, QMap<int, QContactManager::Error>* errorMap, QContactManager::Error& error);
-    bool removeContact(const QContactLocalId& contactId, QContactManager::Error& error);
-    bool removeContacts(QList<QContactLocalId>* contactIds, QMap<int, QContactManager::Error>* errorMap, QContactManager::Error& error);
+    QList<QContactLocalId> contactIds(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, QContactManager::Error* error) const;
+    QList<QContact> contacts(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, const QContactFetchHint& fetchHint, QContactManager::Error* error) const;
+    QContact contact(const QContactLocalId& contactId, const QContactFetchHint& fetchHint, QContactManager::Error* error) const;
+
+    bool saveContacts(QList<QContact>* contacts, QMap<int, QContactManager::Error>* errorMap, QContactManager::Error* error);
+    bool removeContacts(const QList<QContactLocalId>& contactIds, QMap<int, QContactManager::Error>* errorMap, QContactManager::Error* error);
 
     /* Synthesize the display label of a contact */
-    QString synthesizedDisplayLabel(const QContact& contact, QContactManager::Error& error) const;
+    QString synthesizedDisplayLabel(const QContact& contact, QContactManager::Error* error) const;
     
     /* "Self" contact id (MyCard) */
-    bool setSelfContactId(const QContactLocalId& contactId, QContactManager::Error& error);
-    QContactLocalId selfContactId(QContactManager::Error& error) const;
+    bool setSelfContactId(const QContactLocalId& contactId, QContactManager::Error* error);
+    QContactLocalId selfContactId(QContactManager::Error* error) const;
     
     /* Relationships between contacts */
-    QList<QContactRelationship> relationships(const QString& relationshipType, const QContactId& participantId, QContactRelationshipFilter::Role role, QContactManager::Error& error) const;
-    bool saveRelationship(QContactRelationship* relationship, QContactManager::Error& error);
-    QList<QContactManager::Error> saveRelationships(QList<QContactRelationship>* relationships, QContactManager::Error& error);
-    bool removeRelationship(const QContactRelationship& relationship, QContactManager::Error& error);
-    QList<QContactManager::Error> removeRelationships(const QList<QContactRelationship>& relationships, QContactManager::Error& error);
+    QList<QContactRelationship> relationships(const QString& relationshipType, const QContactId& participantId, QContactRelationship::Role role, QContactManager::Error* error) const;
+    bool saveRelationships(QList<QContactRelationship>* relationships, QMap<int, QContactManager::Error>* errorMap, QContactManager::Error* error);
+    bool removeRelationships(const QList<QContactRelationship>& relationships, QMap<int, QContactManager::Error>* errorMap, QContactManager::Error* error);
 
     /* Definitions - Accessors and Mutators */
-    QMap<QString, QContactDetailDefinition> detailDefinitions(const QString& contactType, QContactManager::Error& error) const;
+    QMap<QString, QContactDetailDefinition> detailDefinitions(const QString& contactType, QContactManager::Error* error) const;
 
     /* Capabilities reporting */
     bool hasFeature(QContactManager::ManagerFeature feature, const QString& contactType) const;
-    QStringList supportedRelationshipTypes(const QString& contactType) const;
+    bool isRelationshipTypeSupported(const QString& relationshipType, const QString& contactType) const;
     bool isFilterSupported(const QContactFilter& filter) const;
     QList<QVariant::Type> supportedDataTypes() const;
 
 private:
-    QList<QContactLocalId> slowFilter(const QContactFilter& filter, const QList<QContactLocalId>& contacts, QContactManager::Error& error) const;
-    QList<QContactLocalId> slowSort(const QList<QContactLocalId>& contactIds, const QList<QContactSortOrder>& sortOrders, QContactManager::Error& error) const;
-    bool doSaveContact(QContact* contact, QContactChangeSet& changeSet, QContactManager::Error& error);
+    QList<QContactLocalId> slowFilter(const QContactFilter& filter, const QList<QContactLocalId>& contacts, QContactManager::Error* error) const;
+    QList<QContactLocalId> slowSort(const QList<QContactLocalId>& contactIds, const QList<QContactSortOrder>& sortOrders, QContactManager::Error* error) const;
+    bool doSaveContact(QContact* contact, QContactChangeSet& changeSet, QContactManager::Error* error);
 
     QContact fetchContactL(const QContactLocalId &localId, const QStringList& definitionRestrictions) const;
 
     /* Add contact */
-    bool addContact(QContact& contact, QContactChangeSet& changeSet, QContactManager::Error& qtError);
+    bool addContact(QContact& contact, QContactChangeSet& changeSet, QContactManager::Error* qtError);
     int addContactL(QContact &contact);
 
     /* Update contact */
-    bool updateContact(QContact& contact, QContactChangeSet& changeSet, QContactManager::Error& qtError);
+    bool updateContact(QContact& contact, QContactChangeSet& changeSet, QContactManager::Error* qtError);
     void updateContactL(QContact &contact);
 
     /* Remove contact */
-    bool removeContact(const QContactLocalId &id, QContactChangeSet& changeSet, QContactManager::Error& qtError);
+    bool removeContact(const QContactLocalId &id, QContactChangeSet& changeSet, QContactManager::Error* qtError);
     int removeContactL(QContactLocalId id);
 
     void updateDisplayLabel(QContact& contact) const;
@@ -172,15 +182,16 @@
     QQueue<QContactAbstractRequest*> m_asynchronousOperations; // async requests to be performed.
 #ifdef PBK_UNIT_TEST
     friend class TestSymbianEngine;
+    friend class TestCntRelationship;
 #endif  //PBK_UNIT_TEST
 };
 #ifndef PBK_UNIT_TEST
-class Q_DECL_EXPORT CntSymbianFactory : public QObject, public QContactManagerEngineFactory
+class CntSymbianFactory : public QObject, public QContactManagerEngineFactory
 {
     Q_OBJECT
     Q_INTERFACES(QtMobility::QContactManagerEngineFactory)
     public:
-        QContactManagerEngine* engine(const QMap<QString, QString>& parameters, QContactManager::Error& error);
+        QContactManagerEngine* engine(const QMap<QString, QString>& parameters, QContactManager::Error* error);
         QString managerName() const;
 };
 #endif  //PBK_UNIT_TEST