>From 28644de40a497a21f05595c36c4fc79f14c2b3c6 Mon Sep 17 00:00:00 2001
From: Christophe Dumez <christophe.dumez@intel.com>
Date: Fri, 13 May 2011 16:53:07 +0300
Subject: [PATCH 2/7] QContactEBookBackend: Code clean up

---
 engine/qcontactebookbackend.cpp |   84 ++++++++++++++++++++++-----------------
 engine/qcontactebookbackend_p.h |   16 +++++---
 2 files changed, 58 insertions(+), 42 deletions(-)

diff --git a/engine/qcontactebookbackend.cpp b/engine/qcontactebookbackend.cpp
index 9a9b48a..343e369 100644
--- a/engine/qcontactebookbackend.cpp
+++ b/engine/qcontactebookbackend.cpp
@@ -60,6 +60,7 @@ DEFINE_GLOBAL_DEBUG_VAR
 QMap<QString, QContactEBookEngineData*> QContactEBookEngine::engineDatas;
 QMutex QContactEBookEngine::mutex;
 
+/*! Data shared between engine instances using the same EBook. */
 class QContactEBookEngineData
 {
   Q_DISABLE_COPY(QContactEBookEngineData)
@@ -83,7 +84,8 @@ public:
   QString m_sourceUri;
 };
 
-QContactManagerEngine* ContactEBookFactory::engine(const QMap<QString, QString>& parameters, QContactManager::Error* error)
+QContactManagerEngine* ContactEBookFactory::engine(const QMap<QString, QString>& parameters,
+                                                   QContactManager::Error* error)
 {
   Q_UNUSED(error);
 
@@ -133,9 +135,12 @@ QContactEBookEngine * QContactEBookEngine::createEngine(const QMap<QString, QStr
 QContactEBookEngine::QContactEBookEngine(QContactEBookEngineData *data) : QContactManagerEngineV2(), d(data)
 {
   QContactEBook *ebook = d->m_ebook;
-  connect(ebook, SIGNAL(contactsAdded(const QList<QContactLocalId>&)), SIGNAL(contactsAdded(const QList<QContactLocalId>&)));
-  connect(ebook, SIGNAL(contactsChanged(const QList<QContactLocalId>&)), SIGNAL(contactsChanged(const QList<QContactLocalId>&)));
-  connect(ebook, SIGNAL(contactsRemoved(const QList<QContactLocalId>&)), SIGNAL(contactsRemoved(const QList<QContactLocalId>&)));
+  connect(ebook, SIGNAL(contactsAdded(const QList<QContactLocalId>&)),
+          SIGNAL(contactsAdded(const QList<QContactLocalId>&)));
+  connect(ebook, SIGNAL(contactsChanged(const QList<QContactLocalId>&)),
+          SIGNAL(contactsChanged(const QList<QContactLocalId>&)));
+  connect(ebook, SIGNAL(contactsRemoved(const QList<QContactLocalId>&)),
+          SIGNAL(contactsRemoved(const QList<QContactLocalId>&)));
   connect(ebook, SIGNAL(selfContactIdChanged(QContactLocalId,QContactLocalId)),
           SIGNAL(selfContactIdChanged(QContactLocalId,QContactLocalId)));
 }
@@ -175,7 +180,8 @@ QMap<QString, QString> QContactEBookEngine::managerParameters() const {
  * Returns a synthesized display label of a contact.
  * \return In preference order, "Firstname Lastname", Organization, Email, "No name".
  */
-QString QContactEBookEngine::synthesizedDisplayLabel(const QContact& contact, QContactManager::Error* error) const
+QString QContactEBookEngine::synthesizedDisplayLabel(const QContact& contact,
+                                                     QContactManager::Error* error) const
 { 
   *error = QContactManager::NoError;
 
@@ -209,11 +215,13 @@ QString QContactEBookEngine::synthesizedDisplayLabel(const QContact& contact, QC
   return QString("No name");
 }
 
+/*! \reimp */
 bool QContactEBookEngine::validateContact(const QContact& contact, QContactManager::Error* error) const
 {
   return QContactManagerEngine::validateContact(contact, error);
 }
 
+/*! \reimp */
 QContact QContactEBookEngine::compatibleContact(const QContact& contact, QContactManager::Error* error) const
 {
   QContact compatible = contact;
@@ -259,6 +267,7 @@ QContact QContactEBookEngine::compatibleContact(const QContact& contact, QContac
   return QContactManagerEngine::compatibleContact(compatible, error);
 }
 
+/*! \reimp */
 QContactLocalId QContactEBookEngine::selfContactId(QContactManager::Error* error) const
 {
   Q_CHECK_PTR(d->m_ebook);
@@ -266,16 +275,18 @@ QContactLocalId QContactEBookEngine::selfContactId(QContactManager::Error* error
   return d->m_ebook->selfContactId(error);
 }
 
+/*! \reimp */
 bool QContactEBookEngine::setSelfContactId(const QContactLocalId & contactId, QContactManager::Error* error)
 {
   Q_CHECK_PTR(d->m_ebook);
   return d->m_ebook->setSelfContactId(contactId, error);
 }
 
-QList<QContactLocalId> QContactEBookEngine::contactIds(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, QContactManager::Error* error) const
-{
-  Q_CHECK_PTR(d->m_ebook);
-  
+/*! \reimp */
+QList<QContactLocalId> QContactEBookEngine::contactIds(const QContactFilter& filter,
+                                                       const QList<QContactSortOrder>& sortOrders,
+                                                       QContactManager::Error* error) const
+{ 
   QList<QContactLocalId> rtn;
   QList<QContact> allContacts = contacts(filter, sortOrders, QContactFetchHint(), error);
   foreach (const QContact& contact, allContacts) {
@@ -291,7 +302,6 @@ QList<QContact> QContactEBookEngine::contacts(const QContactFilter & filter,
                                               QContactManager::Error* error ) const
 {
   Q_UNUSED(fetchHint); // no optimizations currently, ignore the fetchhint.
-  Q_CHECK_PTR(d->m_ebook);
 
   QContactFetchRequest req;
   req.setFilter(filter);
@@ -303,9 +313,9 @@ QList<QContact> QContactEBookEngine::contacts(const QContactFilter & filter,
 
 /*! \reimp */
 QList<QContact>	QContactEBookEngine::contacts(const QList<QContactLocalId>& localIds,
-                         const QContactFetchHint& fetchHint,
-                         QMap<int, QContactManager::Error>* errorMap,
-                         QContactManager::Error* error) const {
+                                              const QContactFetchHint& fetchHint,
+                                              QMap<int, QContactManager::Error>* errorMap,
+                                              QContactManager::Error* error) const {
   Q_UNUSED(fetchHint); // no optimizations currently, ignore the fetchhint.
 
   QContactFetchByIdRequest req;
@@ -320,7 +330,9 @@ QList<QContact>	QContactEBookEngine::contacts(const QList<QContactLocalId>& loca
   return req.contacts();
 }
 
-QContact QContactEBookEngine::contact(const QContactLocalId& contactId, const QContactFetchHint& fetchHint, QContactManager::Error* error) const
+/*! \reimp */
+QContact QContactEBookEngine::contact(const QContactLocalId& contactId, const QContactFetchHint& fetchHint,
+                                      QContactManager::Error* error) const
 {
   QList<QContact> ret = contacts(QList<QContactLocalId>() << contactId, fetchHint, 0, error);
   return ret.isEmpty() ? QContact() : ret.first();
@@ -371,17 +383,12 @@ bool QContactEBookEngine::removeContacts(const QList<QContactLocalId>& ids,
   return (req.error() == QContactManager::NoError);
 }
 
-QMap<QString, QContactDetailDefinition> QContactEBookEngine::detailDefinitions(const QString& contactType, QContactManager::Error* error) const
+/*! \reimp */
+QMap<QString, QContactDetailDefinition> QContactEBookEngine::detailDefinitions(const QString& contactType,
+                                                                               QContactManager::Error* error) const
 {   
   QMap<QString, QMap<QString, QContactDetailDefinition> > defns = QContactManagerEngine::schemaDefinitions(2);
 
-  // TODO: everything supported?!
-  //
-  // QContactGuid is supported, but its value has to match the
-  // QContactLocalId. Not sure how to express that limitation.
-  // Perhaps as explicit check in compatibleContact()? Currently
-  // this limitation is enforced in saveContact().
-
   *error = QContactManager::NoError;
 
   QMap<QString, QContactDetailDefinition> ret = defns[contactType];
@@ -399,12 +406,9 @@ QMap<QString, QContactDetailDefinition> QContactEBookEngine::detailDefinitions(c
   return ret;
 }
 
-QContactDetailDefinition QContactEBookEngine::detailDefinition(const QString& definitionName, const QString& contactType, QContactManager::Error* error) const
-{
-  return QContactManagerEngine::detailDefinition(definitionName, contactType, error);
-}
-
-bool QContactEBookEngine::hasFeature(QContactManager::ManagerFeature feature, const QString& contactType) const {
+/*! \reimp */
+bool QContactEBookEngine::hasFeature(QContactManager::ManagerFeature feature,
+                                     const QString& contactType) const {
   Q_UNUSED(contactType);
   if (feature == QContactManager::Anonymous ||
       feature == QContactManager::SelfContact)
@@ -413,7 +417,9 @@ bool QContactEBookEngine::hasFeature(QContactManager::ManagerFeature feature, co
   return false;
 }
 
-bool QContactEBookEngine::isFilterSupported(const QContactFilter& filter) const {
+/*! \reimp */
+bool QContactEBookEngine::isFilterSupported(const QContactFilter& filter) const
+{
   switch (filter.type()) {
   case QContactFilter::InvalidFilter:
   case QContactFilter::DefaultFilter:
@@ -439,6 +445,7 @@ bool QContactEBookEngine::isFilterSupported(const QContactFilter& filter) const
   }
 }
 
+/*! \reimp */
 QList<QVariant::Type> QContactEBookEngine::supportedDataTypes() const {
   QList<QVariant::Type> st;
   st.append(QVariant::String);
@@ -452,7 +459,8 @@ QList<QVariant::Type> QContactEBookEngine::supportedDataTypes() const {
 }
 
 /*! \reimp */
-void QContactEBookEngine::requestDestroyed(QContactAbstractRequest* req){
+void QContactEBookEngine::requestDestroyed(QContactAbstractRequest* req)
+{
   Q_UNUSED(req);
   // Note that there is no need to do anything for real asynchronous requests
   // here because they already track the request destruction
@@ -484,13 +492,15 @@ bool QContactEBookEngine::startRequest(QContactAbstractRequest* req){
 }
 
 /*! \reimp */
-bool QContactEBookEngine::cancelRequest(QContactAbstractRequest* req){
+bool QContactEBookEngine::cancelRequest(QContactAbstractRequest* req)
+{
   updateRequestState(req, QContactAbstractRequest::CanceledState);
   return true;
 }
 
 /*! \reimp */
-bool QContactEBookEngine::waitForRequestFinished(QContactAbstractRequest* req, int msecs){
+bool QContactEBookEngine::waitForRequestFinished(QContactAbstractRequest* req, int msecs)
+{
   if (isRequestAsynchronous(req)) {
     // True asynchronous operation
     QContactAbstractRequestWorker *worker;
@@ -510,7 +520,8 @@ bool QContactEBookEngine::waitForRequestFinished(QContactAbstractRequest* req, i
  * Performs a pseudo-asynchronous request.
  * The request is actually performed synchronously when start() is called.
  */
-void QContactEBookEngine::performPseudoAsyncOperation(QContactAbstractRequest* request){
+void QContactEBookEngine::performPseudoAsyncOperation(QContactAbstractRequest* request)
+{
   Q_ASSERT(!isRequestAsynchronous(request));
 
   // check to see if it is cancelling; if so, remove it from the queue and return.
@@ -555,7 +566,7 @@ void QContactEBookEngine::performPseudoAsyncOperation(QContactAbstractRequest* r
  * Creates an asynchronous request worker.
  * Note that the worker is not started.
  */
-QContactAbstractRequestWorker* QContactEBookEngine::createAsyncWorker(QtMobility::QContactAbstractRequest *request) const
+QContactAbstractRequestWorker* QContactEBookEngine::createAsyncWorker(QContactAbstractRequest *request) const
 {
   switch(request->type()) {
   case QContactAbstractRequest::ContactSaveRequest:
@@ -572,7 +583,7 @@ QContactAbstractRequestWorker* QContactEBookEngine::createAsyncWorker(QtMobility
                                           d->m_ebook->ebook(), this);
   case QContactAbstractRequest::ContactFetchByIdRequest:
     return new QContactFetchByIdRequestWorker(static_cast<QContactFetchByIdRequest*>(request),
-                                          d->m_ebook->ebook(), this);
+                                              d->m_ebook->ebook(), this);
   default:
     Q_ASSERT(0); // Should never happen
     return 0;
@@ -582,7 +593,8 @@ QContactAbstractRequestWorker* QContactEBookEngine::createAsyncWorker(QtMobility
 /*!
  * Returns true if the request can be performed asynchronously (i.e. we have a worker for it)
  */
-bool QContactEBookEngine::isRequestAsynchronous(QContactAbstractRequest* request) {
+bool QContactEBookEngine::isRequestAsynchronous(QContactAbstractRequest* request)
+{
   switch(request->type()) {
   case QContactAbstractRequest::ContactRemoveRequest:
   case QContactAbstractRequest::ContactSaveRequest:
diff --git a/engine/qcontactebookbackend_p.h b/engine/qcontactebookbackend_p.h
index 1588f59..1ee8edb 100644
--- a/engine/qcontactebookbackend_p.h
+++ b/engine/qcontactebookbackend_p.h
@@ -94,11 +94,14 @@ public:
   bool setSelfContactId(const QContactLocalId & contactId, QContactManager::Error* error);
 
   /* Filtering */
-  QList<QContactLocalId> contactIds(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, QContactManager::Error* error) const;
+  QList<QContactLocalId> contactIds(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders,
+                                    QContactManager::Error* error) const;
 
   /* Contacts - Accessors and Mutators */
-  QContact contact(const QContactLocalId& contactId, const QContactFetchHint& fetchHint, 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;
+  QList<QContact> contacts(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders,
+                           const QContactFetchHint& fetchHint, QContactManager::Error* error ) const;
   QList<QContact> contacts(const QList<QContactLocalId>& localIds,
                            const QContactFetchHint& fetchHint,
                            QMap<int, QContactManager::Error>* errorMap,
@@ -109,8 +112,8 @@ public:
                       QContactManager::Error* error);
 
   /* Definitions - Accessors and Mutators */
-  QMap<QString, QContactDetailDefinition> detailDefinitions(const QString& contactType, QContactManager::Error* error) const;
-  QContactDetailDefinition detailDefinition(const QString& definitionName, const QString& contactType, QContactManager::Error* error) const; // implemented in terms of the plural detailDefinitions
+  QMap<QString, QContactDetailDefinition> detailDefinitions(const QString& contactType,
+                                                            QContactManager::Error* error) const;
 
   /* Version Reporting */
   int implementationVersion() const { return EBOOK_ENGINE_VERSION; };
@@ -120,7 +123,7 @@ public:
   bool hasFeature(QContactManager::ManagerFeature feature, const QString& contactType) const;
   bool isFilterSupported(const QContactFilter& filter) const;
   QList<QVariant::Type> supportedDataTypes() const;
-  QStringList supportedContactTypes() const {return (QStringList() << QContactType::TypeContact);}
+  QStringList supportedContactTypes() const { return (QStringList() << QContactType::TypeContact); }
 
   /* Asynchronous Request Support */
   void requestDestroyed(QContactAbstractRequest *req);
@@ -140,6 +143,7 @@ private slots:
 private:
   QMutex m_asyncOpMutex;
   QMap<QContactAbstractRequest*, QContactAbstractRequestWorker*> m_asyncWorkers; // workers for true async requests
+  /* Engine private/shared data */
   QContactEBookEngineData* d;
   static QMutex mutex;
   static QMap<QString, QContactEBookEngineData*> engineDatas;
-- 
1.7.4.4

