[gnote] Refactor GnoteSyncClient for better testability
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Refactor GnoteSyncClient for better testability
- Date: Sun, 29 Jun 2014 14:34:06 +0000 (UTC)
commit 711a2c1e42ac5d3ce54620084d502a66589a33db
Author: Aurimas Černius <aurisc4 gmail com>
Date: Sun Jun 1 20:45:03 2014 +0300
Refactor GnoteSyncClient for better testability
src/synchronization/gnotesyncclient.cpp | 14 +++++++++++++-
src/synchronization/gnotesyncclient.hpp | 5 ++++-
src/synchronization/syncmanager.cpp | 2 +-
3 files changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/src/synchronization/gnotesyncclient.cpp b/src/synchronization/gnotesyncclient.cpp
index fd96488..eb1495e 100644
--- a/src/synchronization/gnotesyncclient.cpp
+++ b/src/synchronization/gnotesyncclient.cpp
@@ -38,7 +38,19 @@ namespace sync {
const char * GnoteSyncClient::LOCAL_MANIFEST_FILE_NAME = "manifest.xml";
- GnoteSyncClient::GnoteSyncClient(NoteManagerBase & manager)
+ SyncClient::Ptr GnoteSyncClient::create(NoteManagerBase & manager)
+ {
+ GnoteSyncClient *ptr = new GnoteSyncClient;
+ ptr->init(manager);
+ return SyncClient::Ptr(ptr);
+ }
+
+ GnoteSyncClient::GnoteSyncClient()
+ {
+ }
+
+
+ void GnoteSyncClient::init(NoteManagerBase & manager)
{
m_local_manifest_file_path = Glib::build_filename(IGnote::conf_dir(), LOCAL_MANIFEST_FILE_NAME);
// TODO: Why doesn't OnChanged ever get fired?!
diff --git a/src/synchronization/gnotesyncclient.hpp b/src/synchronization/gnotesyncclient.hpp
index 1cddd5b..59ffda1 100644
--- a/src/synchronization/gnotesyncclient.hpp
+++ b/src/synchronization/gnotesyncclient.hpp
@@ -32,7 +32,7 @@ namespace sync {
: public SyncClient
{
public:
- GnoteSyncClient(NoteManagerBase &);
+ static SyncClient::Ptr create(NoteManagerBase &);
virtual sharp::DateTime last_sync_date() override
{
@@ -56,9 +56,12 @@ namespace sync {
return m_server_id;
}
virtual void associated_server_id(const std::string &) override;
+ protected:
+ GnoteSyncClient();
private:
static const char *LOCAL_MANIFEST_FILE_NAME;
+ void init(NoteManagerBase &);
void note_deleted_handler(const NoteBase::Ptr &);
void on_changed(const Glib::RefPtr<Gio::File>&, const Glib::RefPtr<Gio::File>&,
Gio::FileMonitorEvent);
diff --git a/src/synchronization/syncmanager.cpp b/src/synchronization/syncmanager.cpp
index 86ff9c8..2c6a05c 100644
--- a/src/synchronization/syncmanager.cpp
+++ b/src/synchronization/syncmanager.cpp
@@ -59,7 +59,7 @@ namespace sync {
void SyncManager::_init(NoteManagerBase & manager)
{
- m_client = SyncClient::Ptr(new GnoteSyncClient(manager));
+ m_client = GnoteSyncClient::create(manager);
// Add a "Synchronize Notes" to Gnote's Application Menu
IActionManager & am(IActionManager::obj());
am.add_app_action("sync-notes");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]