From: Mikel Astiz <[email protected]>

This instantiates the D-Bus wrapper and thus requests a obex-client
session.

A local cache of the addressbook has been added which will be loaded
when the database is opened.
---
 src/backends/pbap/PbapSyncSource.cpp |   15 ++++++++++++++-
 src/backends/pbap/PbapSyncSource.h   |    6 ++++++
 2 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/src/backends/pbap/PbapSyncSource.cpp 
b/src/backends/pbap/PbapSyncSource.cpp
index 0747b15..0277e7e 100644
--- a/src/backends/pbap/PbapSyncSource.cpp
+++ b/src/backends/pbap/PbapSyncSource.cpp
@@ -187,6 +187,7 @@ void PbapSession::removeSessionCb(const string &error)
 PbapSyncSource::PbapSyncSource(const SyncSourceParams &params) :
     TrackingSyncSource(params)
 {
+    m_session.reset(new PbapSession());
 }
 
 std::string PbapSyncSource::getMimeType() const
@@ -209,11 +210,15 @@ void PbapSyncSource::open()
     }
 
     std::string address = database.substr(prefix.size());
+
+    m_session->initSession(address);
+    m_session->pullAll(m_content);
+    m_session->shutdown();
 }
 
 bool PbapSyncSource::isEmpty()
 {
-    return true;
+    return m_content.empty();
 }
 
 void PbapSyncSource::close()
@@ -231,10 +236,18 @@ PbapSyncSource::Databases PbapSyncSource::getDatabases()
 
 void PbapSyncSource::listAllItems(RevisionMap_t &revisions)
 {
+    typedef std::pair<std::string, std::string> Entry;
+    BOOST_FOREACH(const Entry &entry, m_content) {
+        revisions[entry.first] = "0";
+    }
 }
 
 void PbapSyncSource::readItem(const string &uid, std::string &item, bool raw)
 {
+    Content::iterator it = m_content.find(uid);
+    if(it != m_content.end()) {
+        item = it->second;
+    }
 }
 
 TrackingSyncSource::InsertItemResult PbapSyncSource::insertItem(const string 
&uid, const std::string &item, bool raw)
diff --git a/src/backends/pbap/PbapSyncSource.h 
b/src/backends/pbap/PbapSyncSource.h
index 7074b5d..fb31386 100644
--- a/src/backends/pbap/PbapSyncSource.h
+++ b/src/backends/pbap/PbapSyncSource.h
@@ -31,6 +31,8 @@
 #include <syncevo/declarations.h>
 SE_BEGIN_CXX
 
+class PbapSession;
+
 class PbapSyncSource : public TrackingSyncSource, private boost::noncopyable
 {
   public:
@@ -54,6 +56,10 @@ class PbapSyncSource : public TrackingSyncSource, private 
boost::noncopyable
     virtual void removeItem(const string &uid);
 
  private:
+    std::auto_ptr<PbapSession> m_session;
+
+    typedef std::map<std::string, std::string> Content;
+    Content m_content;
 };
 
 SE_END_CXX
-- 
1.7.6.5

_______________________________________________
SyncEvolution mailing list
[email protected]
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to