Merge lp:~michihenning/storage-framework/api2 into lp:storage-framework/devel

Proposed by Michi Henning
Status: Merged
Approved by: James Henstridge
Approved revision: 86
Merged at revision: 71
Proposed branch: lp:~michihenning/storage-framework/api2
Merge into: lp:storage-framework/devel
Diff against target: 511 lines (+68/-113)
22 files modified
include/unity/storage/qt/Account.h (+2/-0)
include/unity/storage/qt/AccountsJob.h (+3/-3)
include/unity/storage/qt/ConflictPolicy.h (+0/-32)
include/unity/storage/qt/Downloader.h (+3/-3)
include/unity/storage/qt/Item.h (+15/-2)
include/unity/storage/qt/ItemJob.h (+3/-3)
include/unity/storage/qt/ItemListJob.h (+2/-2)
include/unity/storage/qt/Runtime.h (+2/-1)
include/unity/storage/qt/Uploader.h (+6/-6)
include/unity/storage/qt/internal/AccountsJobImpl.h (+0/-1)
include/unity/storage/qt/internal/ItemImpl.h (+1/-1)
include/unity/storage/qt/internal/ItemJobImpl.h (+0/-3)
include/unity/storage/qt/internal/ItemListJobImpl.h (+0/-4)
src/qt/internal/ItemImpl.cpp (+1/-1)
src/qt/internal/ItemJobImpl.cpp (+10/-18)
src/qt/internal/ItemListJobImpl.cpp (+10/-28)
src/qt/internal/RuntimeImpl.cpp (+0/-1)
tests/provider-ProviderInterface/ProviderInterface_test.cpp (+2/-0)
tests/remote-client-v1/remote-client-v1_test.cpp (+2/-0)
tests/remote-client/remote-client_test.cpp (+2/-0)
tests/utils/ProviderFixture.cpp (+2/-2)
tests/utils/ProviderFixture.h (+2/-2)
To merge this branch: bzr merge lp:~michihenning/storage-framework/api2
Reviewer Review Type Date Requested Status
James Henstridge Approve
unity-api-1-bot continuous-integration Approve
Review via email: mp+306726@code.launchpad.net

Commit message

Changed Q_PROPERTY definitions to emit statusChanged where appropriate.
Moved ConflictPolicy definition into Item. Enumerator values are set from common.h.
Got rid of deferred signal emission except where we need to emit signal from constructor.
Removed disconnectFromBus() in RuntimeImpl.
Moved ProviderFixture construct/destructor code to SetUp()/TearDown().

Description of the change

Remaining review comment changes:

  Changed Q_PROPERTY definitions to emit statusChanged where appropriate.
  Moved ConflictPolicy definition into Item. Enumerator values are set from common.h.
  Got rid of deferred signal emission except where we need to emit signal from constructor.
  Removed disconnectFromBus() in RuntimeImpl.
  Moved ProviderFixture construct/destructor code to SetUp()/TearDown().

To post a comment you must log in.
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

PASSED: Continuous integration, rev:86
https://jenkins.canonical.com/unity-api-1/job/lp-storage-framework-ci/127/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/767
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/773
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=vivid+overlay/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=vivid+overlay/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=yakkety/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=yakkety/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=vivid+overlay/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=vivid+overlay/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=yakkety/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=yakkety/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=vivid+overlay/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=vivid+overlay/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/581/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=yakkety/581
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=yakkety/581/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-storage-framework-ci/127/rebuild

review: Approve (continuous-integration)
Revision history for this message
James Henstridge (jamesh) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'include/unity/storage/qt/Account.h'
--- include/unity/storage/qt/Account.h 2016-09-22 01:52:20 +0000
+++ include/unity/storage/qt/Account.h 2016-09-26 02:44:08 +0000
@@ -81,6 +81,8 @@
81 friend class internal::ItemImpl;81 friend class internal::ItemImpl;
82};82};
8383
84// Note: qHash(Account) does *not* return the same hash value is std::hash<Account> because
85// std:hash() returns size_t (typically 64 bits), but qHash() returns uint (typically 32 bits).
84uint Q_DECL_EXPORT qHash(Account const& acc);86uint Q_DECL_EXPORT qHash(Account const& acc);
8587
86} // namespace qt88} // namespace qt
8789
=== modified file 'include/unity/storage/qt/AccountsJob.h'
--- include/unity/storage/qt/AccountsJob.h 2016-09-20 23:52:45 +0000
+++ include/unity/storage/qt/AccountsJob.h 2016-09-26 02:44:08 +0000
@@ -45,10 +45,10 @@
45class Q_DECL_EXPORT AccountsJob final : public QObject45class Q_DECL_EXPORT AccountsJob final : public QObject
46{46{
47 Q_OBJECT47 Q_OBJECT
48 Q_PROPERTY(bool isValid READ isValid FINAL)48 Q_PROPERTY(bool isValid READ isValid NOTIFY statusChanged FINAL)
49 Q_PROPERTY(unity::storage::qt::AccountsJob::Status status READ status NOTIFY statusChanged FINAL)49 Q_PROPERTY(unity::storage::qt::AccountsJob::Status status READ status NOTIFY statusChanged FINAL)
50 Q_PROPERTY(unity::storage::qt::StorageError error READ error FINAL)50 Q_PROPERTY(unity::storage::qt::StorageError error READ error NOTIFY statusChanged FINAL)
51 Q_PROPERTY(QList<unity::storage::qt::Account> accounts READ accounts FINAL)51 Q_PROPERTY(QList<unity::storage::qt::Account> accounts READ accounts NOTIFY statusChanged FINAL)
5252
53public:53public:
54 enum Status { Loading, Finished, Error };54 enum Status { Loading, Finished, Error };
5555
=== removed file 'include/unity/storage/qt/ConflictPolicy.h'
--- include/unity/storage/qt/ConflictPolicy.h 2016-09-05 06:11:16 +0000
+++ include/unity/storage/qt/ConflictPolicy.h 1970-01-01 00:00:00 +0000
@@ -1,32 +0,0 @@
1/*
2 * Copyright (C) 2016 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors: Michi Henning <michi.henning@canonical.com>
17 */
18
19#pragma once
20
21namespace unity
22{
23namespace storage
24{
25namespace qt
26{
27
28enum class ConflictPolicy { ErrorIfConflict, Overwrite };
29
30} // namespace qt
31} // namespace storage
32} // namespace unity
330
=== modified file 'include/unity/storage/qt/Downloader.h'
--- include/unity/storage/qt/Downloader.h 2016-09-20 23:52:45 +0000
+++ include/unity/storage/qt/Downloader.h 2016-09-26 02:44:08 +0000
@@ -33,10 +33,10 @@
33class Q_DECL_EXPORT Downloader final : public QIODevice33class Q_DECL_EXPORT Downloader final : public QIODevice
34{34{
35 Q_OBJECT35 Q_OBJECT
36 Q_PROPERTY(bool isValid READ isValid FINAL) // TODO: Need notify and constant where appropriate36 Q_PROPERTY(bool isValid READ isValid NOTIFY statusChanged FINAL)
37 Q_PROPERTY(unity::Storage::qt::Downloader::Status status READ status NOTIFY statusChanged FINAL)37 Q_PROPERTY(unity::Storage::qt::Downloader::Status status READ status NOTIFY statusChanged FINAL)
38 Q_PROPERTY(unity::Storage::qt::StorageError error READ error FINAL)38 Q_PROPERTY(unity::Storage::qt::StorageError error READ error NOTIFY statusChanged FINAL)
39 Q_PROPERTY(unity::Storage::qt::Item item READ item FINAL)39 Q_PROPERTY(unity::Storage::qt::Item item READ item NOTIFY statusChanged FINAL)
4040
41public:41public:
42 enum Status { Loading, Ready, Cancelled, Finished, Error };42 enum Status { Loading, Ready, Cancelled, Finished, Error };
4343
=== modified file 'include/unity/storage/qt/Item.h'
--- include/unity/storage/qt/Item.h 2016-09-22 01:52:20 +0000
+++ include/unity/storage/qt/Item.h 2016-09-26 02:44:08 +0000
@@ -18,7 +18,7 @@
1818
19#pragma once19#pragma once
2020
21#include <unity/storage/qt/ConflictPolicy.h>21#include <unity/storage/common.h>
2222
23#pragma GCC diagnostic push23#pragma GCC diagnostic push
24#pragma GCC diagnostic ignored "-Wcast-align"24#pragma GCC diagnostic ignored "-Wcast-align"
@@ -70,9 +70,21 @@
70 Item& operator=(Item const&);70 Item& operator=(Item const&);
71 Item& operator=(Item&&);71 Item& operator=(Item&&);
7272
73 enum Type { File, Folder, Root };73 enum Type
74 {
75 File = unsigned(unity::storage::ItemType::file),
76 Folder = unsigned(unity::storage::ItemType::folder),
77 Root = unsigned(unity::storage::ItemType::root)
78 };
74 Q_ENUMS(Type)79 Q_ENUMS(Type)
7580
81 enum ConflictPolicy
82 {
83 ErrorIfConflict = unsigned(unity::storage::ConflictPolicy::error_if_conflict),
84 Overwrite = unsigned(unity::storage::ConflictPolicy::overwrite)
85 };
86 Q_ENUMS(ConflictPolicy)
87
76 bool isValid() const;88 bool isValid() const;
77 QString itemId() const;89 QString itemId() const;
78 QString name() const;90 QString name() const;
@@ -127,6 +139,7 @@
127Q_DECLARE_METATYPE(unity::storage::qt::Item)139Q_DECLARE_METATYPE(unity::storage::qt::Item)
128Q_DECLARE_METATYPE(QList<unity::storage::qt::Item>)140Q_DECLARE_METATYPE(QList<unity::storage::qt::Item>)
129Q_DECLARE_METATYPE(unity::storage::qt::Item::Type)141Q_DECLARE_METATYPE(unity::storage::qt::Item::Type)
142Q_DECLARE_METATYPE(unity::storage::qt::Item::ConflictPolicy)
130143
131namespace std144namespace std
132{145{
133146
=== modified file 'include/unity/storage/qt/ItemJob.h'
--- include/unity/storage/qt/ItemJob.h 2016-09-20 23:52:45 +0000
+++ include/unity/storage/qt/ItemJob.h 2016-09-26 02:44:08 +0000
@@ -41,10 +41,10 @@
41class Q_DECL_EXPORT ItemJob final : public QObject41class Q_DECL_EXPORT ItemJob final : public QObject
42{42{
43 Q_OBJECT43 Q_OBJECT
44 Q_PROPERTY(bool isValid READ isValid FINAL)44 Q_PROPERTY(bool isValid READ isValid NOTIFY statusChanged FINAL)
45 Q_PROPERTY(unity::storage::qt::ItemJob::Status status READ status NOTIFY statusChanged FINAL)45 Q_PROPERTY(unity::storage::qt::ItemJob::Status status READ status NOTIFY statusChanged FINAL)
46 Q_PROPERTY(unity::storage::qt::StorageError error READ error FINAL)46 Q_PROPERTY(unity::storage::qt::StorageError error READ error NOTIFY statusChanged FINAL)
47 Q_PROPERTY(unity::storage::qt::Item item READ item FINAL)47 Q_PROPERTY(unity::storage::qt::Item item READ item NOTIFY statusChanged FINAL)
4848
49public:49public:
50 virtual ~ItemJob();50 virtual ~ItemJob();
5151
=== modified file 'include/unity/storage/qt/ItemListJob.h'
--- include/unity/storage/qt/ItemListJob.h 2016-09-21 00:29:49 +0000
+++ include/unity/storage/qt/ItemListJob.h 2016-09-26 02:44:08 +0000
@@ -44,9 +44,9 @@
44class Q_DECL_EXPORT ItemListJob final : public QObject44class Q_DECL_EXPORT ItemListJob final : public QObject
45{45{
46 Q_OBJECT46 Q_OBJECT
47 Q_PROPERTY(bool isValid READ isValid FINAL)47 Q_PROPERTY(bool isValid READ isValid NOTIFY statusChanged FINAL)
48 Q_PROPERTY(unity::storage::qt::ItemListJob::Status status READ status NOTIFY statusChanged FINAL)48 Q_PROPERTY(unity::storage::qt::ItemListJob::Status status READ status NOTIFY statusChanged FINAL)
49 Q_PROPERTY(unity::storage::qt::StorageError error READ error FINAL)49 Q_PROPERTY(unity::storage::qt::StorageError error READ error NOTIFY statusChanged FINAL)
5050
51public:51public:
52 virtual ~ItemListJob();52 virtual ~ItemListJob();
5353
=== modified file 'include/unity/storage/qt/Runtime.h'
--- include/unity/storage/qt/Runtime.h 2016-09-22 01:52:20 +0000
+++ include/unity/storage/qt/Runtime.h 2016-09-26 02:44:08 +0000
@@ -50,7 +50,8 @@
50{50{
51 Q_PROPERTY(bool isValid READ isValid FINAL)51 Q_PROPERTY(bool isValid READ isValid FINAL)
52 Q_PROPERTY(unity::storage::StorageError error READ FINAL)52 Q_PROPERTY(unity::storage::StorageError error READ FINAL)
53 Q_PROPERTY(QDBusConnection connection READ connection FINAL)53 Q_PROPERTY(QDBusConnection connection READ connection CONSTANT FINAL)
54
54public:55public:
55 Runtime(QObject* parent = nullptr);56 Runtime(QObject* parent = nullptr);
56 Runtime(QDBusConnection const& bus, QObject* parent = nullptr);57 Runtime(QDBusConnection const& bus, QObject* parent = nullptr);
5758
=== modified file 'include/unity/storage/qt/Uploader.h'
--- include/unity/storage/qt/Uploader.h 2016-09-20 23:52:45 +0000
+++ include/unity/storage/qt/Uploader.h 2016-09-26 02:44:08 +0000
@@ -35,12 +35,12 @@
35class Q_DECL_EXPORT Uploader final : public QIODevice35class Q_DECL_EXPORT Uploader final : public QIODevice
36{36{
37 Q_OBJECT37 Q_OBJECT
38 Q_PROPERTY(bool isValid READ isValid FINAL) // TODO: Need notify38 Q_PROPERTY(bool isValid READ isValid NOTIFY statusChanged FINAL) // TODO: Need notify
39 Q_PROPERTY(unity::storage::qt::Uploader::Status status READ status FINAL)39 Q_PROPERTY(unity::storage::qt::Uploader::Status status READ status NOTIFY statusChanged FINAL)
40 Q_PROPERTY(unity::storage::qt::StorageError READ error FINAL)40 Q_PROPERTY(unity::storage::qt::StorageError READ error NOTIFY statusChanged FINAL)
41 Q_PROPERTY(unity::storage::qt::ConflictPolicy policy READ policy FINAL)41 Q_PROPERTY(unity::storage::qt::Item::ConflictPolicy policy READ policy CONSTANT FINAL)
42 Q_PROPERTY(qint64 sizeInBytes READ sizeInBytes FINAL)42 Q_PROPERTY(qint64 sizeInBytes READ sizeInBytes CONSTANT FINAL)
43 Q_PROPERTY(unity::storage::qt::Item item READ item FINAL)43 Q_PROPERTY(unity::storage::qt::Item item READ item NOTIFY statusChanged FINAL)
4444
45public:45public:
46 enum Status { Loading, Cancelled, Finished, Error };46 enum Status { Loading, Cancelled, Finished, Error };
4747
=== modified file 'include/unity/storage/qt/internal/AccountsJobImpl.h'
--- include/unity/storage/qt/internal/AccountsJobImpl.h 2016-09-16 06:25:08 +0000
+++ include/unity/storage/qt/internal/AccountsJobImpl.h 2016-09-26 02:44:08 +0000
@@ -54,7 +54,6 @@
54 AccountsJob::Status emit_status_changed(AccountsJob::Status new_status) const;54 AccountsJob::Status emit_status_changed(AccountsJob::Status new_status) const;
5555
56 AccountsJob* const public_instance_;56 AccountsJob* const public_instance_;
57
58 AccountsJob::Status status_;57 AccountsJob::Status status_;
59 StorageError error_;58 StorageError error_;
60 QList<unity::storage::qt::Account> accounts_;59 QList<unity::storage::qt::Account> accounts_;
6160
=== modified file 'include/unity/storage/qt/internal/ItemImpl.h'
--- include/unity/storage/qt/internal/ItemImpl.h 2016-09-20 23:52:45 +0000
+++ include/unity/storage/qt/internal/ItemImpl.h 2016-09-26 02:44:08 +0000
@@ -60,7 +60,7 @@
60 ItemJob* copy(Item const& newParent, QString const& newName) const;60 ItemJob* copy(Item const& newParent, QString const& newName) const;
61 ItemJob* move(Item const& newParent, QString const& newName) const;61 ItemJob* move(Item const& newParent, QString const& newName) const;
62 VoidJob* deleteItem() const;62 VoidJob* deleteItem() const;
63 Uploader* createUploader(ConflictPolicy policy, qint64 sizeInBytes) const;63 Uploader* createUploader(Item::ConflictPolicy policy, qint64 sizeInBytes) const;
64 Downloader* createDownloader() const;64 Downloader* createDownloader() const;
65 ItemListJob* list() const;65 ItemListJob* list() const;
66 ItemListJob* lookup(QString const& name) const;66 ItemListJob* lookup(QString const& name) const;
6767
=== modified file 'include/unity/storage/qt/internal/ItemJobImpl.h'
--- include/unity/storage/qt/internal/ItemJobImpl.h 2016-09-20 02:24:36 +0000
+++ include/unity/storage/qt/internal/ItemJobImpl.h 2016-09-26 02:44:08 +0000
@@ -66,10 +66,7 @@
66 std::function<void(storage::internal::ItemMetadata const&)> const& validate);66 std::function<void(storage::internal::ItemMetadata const&)> const& validate);
67 ItemJobImpl(StorageError const& e);67 ItemJobImpl(StorageError const& e);
6868
69 ItemJob::Status emit_status_changed(ItemJob::Status new_status) const;
70
71 ItemJob* public_instance_;69 ItemJob* public_instance_;
72
73 ItemJob::Status status_;70 ItemJob::Status status_;
74 StorageError error_;71 StorageError error_;
75 QString method_;72 QString method_;
7673
=== modified file 'include/unity/storage/qt/internal/ItemListJobImpl.h'
--- include/unity/storage/qt/internal/ItemListJobImpl.h 2016-09-20 02:24:36 +0000
+++ include/unity/storage/qt/internal/ItemListJobImpl.h 2016-09-26 02:44:08 +0000
@@ -65,11 +65,7 @@
65 std::function<void(storage::internal::ItemMetadata const&)> const& validate);65 std::function<void(storage::internal::ItemMetadata const&)> const& validate);
66 ItemListJobImpl(StorageError const& error);66 ItemListJobImpl(StorageError const& error);
6767
68 ItemListJob::Status emit_status_changed(ItemListJob::Status new_status) const;
69 void emit_items_ready(QList<unity::storage::qt::Item> const& items) const;
70
71 ItemListJob* public_instance_;68 ItemListJob* public_instance_;
72
73 ItemListJob::Status status_;69 ItemListJob::Status status_;
74 StorageError error_;70 StorageError error_;
75 QString method_;71 QString method_;
7672
=== modified file 'src/qt/internal/ItemImpl.cpp'
--- src/qt/internal/ItemImpl.cpp 2016-09-22 01:52:20 +0000
+++ src/qt/internal/ItemImpl.cpp 2016-09-26 02:44:08 +0000
@@ -134,7 +134,7 @@
134 return nullptr; // TODO134 return nullptr; // TODO
135}135}
136136
137Uploader* ItemImpl::createUploader(ConflictPolicy policy, qint64 sizeInBytes) const137Uploader* ItemImpl::createUploader(Item::ConflictPolicy policy, qint64 sizeInBytes) const
138{138{
139 return nullptr; // TODO139 return nullptr; // TODO
140}140}
141141
=== modified file 'src/qt/internal/ItemJobImpl.cpp'
--- src/qt/internal/ItemJobImpl.cpp 2016-09-21 00:29:49 +0000
+++ src/qt/internal/ItemJobImpl.cpp 2016-09-26 02:44:08 +0000
@@ -54,27 +54,29 @@
54 {54 {
55 validate_(metadata);55 validate_(metadata);
56 item_ = ItemImpl::make_item(method_, metadata, account_);56 item_ = ItemImpl::make_item(method_, metadata, account_);
57 status_ = emit_status_changed(ItemJob::Finished);57 status_ = ItemJob::Finished;
58 }58 }
59 catch (StorageError const& e)59 catch (StorageError const& e)
60 {60 {
61 // Bad metadata received from provider, validate_() or make_item() have logged it.61 // Bad metadata received from provider, validate_() or make_item() have logged it.
62 error_ = e;62 error_ = e;
63 status_ = emit_status_changed(ItemJob::Error);63 status_ = ItemJob::Error;
64 }64 }
65 Q_EMIT public_instance_->statusChanged(status_);
65 };66 };
6667
67 auto process_error = [this](StorageError const& error)68 auto process_error = [this](StorageError const& error)
68 {69 {
69 error_ = error;70 error_ = error;
70 status_ = emit_status_changed(ItemJob::Error);71 status_ = ItemJob::Error;
72 Q_EMIT public_instance_->statusChanged(status_);
71 };73 };
7274
73 new Handler<storage::internal::ItemMetadata>(this, reply, process_reply, process_error);75 new Handler<storage::internal::ItemMetadata>(this, reply, process_reply, process_error);
74}76}
7577
76ItemJobImpl::ItemJobImpl(StorageError const& error)78ItemJobImpl::ItemJobImpl(StorageError const& error)
77 : status_(ItemJob::Loading)79 : status_(ItemJob::Error)
78 , error_(error)80 , error_(error)
79{81{
80}82}
@@ -115,23 +117,13 @@
115 unique_ptr<ItemJobImpl> impl(new ItemJobImpl(error));117 unique_ptr<ItemJobImpl> impl(new ItemJobImpl(error));
116 auto job = new ItemJob(move(impl));118 auto job = new ItemJob(move(impl));
117 job->p_->public_instance_ = job;119 job->p_->public_instance_ = job;
118 job->p_->status_ = job->p_->emit_status_changed(ItemJob::Error);120 QMetaObject::invokeMethod(job,
121 "statusChanged",
122 Qt::QueuedConnection,
123 Q_ARG(unity::storage::qt::ItemJob::Status, job->p_->status_));
119 return job;124 return job;
120}125}
121126
122ItemJob::Status ItemJobImpl::emit_status_changed(ItemJob::Status new_status) const
123{
124 // TODO: should be an assert!
125 if (status_ == ItemJob::Loading) // Once in a final state, we don't emit the signal again.
126 {
127 QMetaObject::invokeMethod(public_instance_,
128 "statusChanged",
129 Qt::QueuedConnection,
130 Q_ARG(unity::storage::qt::ItemJob::Status, new_status));
131 }
132 return new_status;
133}
134
135} // namespace internal127} // namespace internal
136} // namespace qt128} // namespace qt
137} // namespace storage129} // namespace storage
138130
=== modified file 'src/qt/internal/ItemListJobImpl.cpp'
--- src/qt/internal/ItemListJobImpl.cpp 2016-09-21 00:29:49 +0000
+++ src/qt/internal/ItemListJobImpl.cpp 2016-09-26 02:44:08 +0000
@@ -64,21 +64,23 @@
64 // Bad metadata received from provider, validate_() or make_item() have logged it.64 // Bad metadata received from provider, validate_() or make_item() have logged it.
65 }65 }
66 }66 }
67 emit_items_ready(items);67 status_ = ItemListJob::Finished;
68 status_ = emit_status_changed(ItemListJob::Finished);68 Q_EMIT public_instance_->itemsReady(items);
69 Q_EMIT public_instance_->statusChanged(status_);
69 };70 };
7071
71 auto process_error = [this](StorageError const& error)72 auto process_error = [this](StorageError const& error)
72 {73 {
73 error_ = error;74 error_ = error;
74 status_ = emit_status_changed(ItemListJob::Error);75 status_ = ItemListJob::Error;
76 Q_EMIT public_instance_->statusChanged(status_);
75 };77 };
7678
77 new Handler<QList<storage::internal::ItemMetadata>>(this, reply, process_reply, process_error);79 new Handler<QList<storage::internal::ItemMetadata>>(this, reply, process_reply, process_error);
78}80}
7981
80ItemListJobImpl::ItemListJobImpl(StorageError const& error)82ItemListJobImpl::ItemListJobImpl(StorageError const& error)
81 : status_(ItemListJob::Loading)83 : status_(ItemListJob::Error)
82 , error_(error)84 , error_(error)
83{85{
84}86}
@@ -115,31 +117,11 @@
115 unique_ptr<ItemListJobImpl> impl(new ItemListJobImpl(error));117 unique_ptr<ItemListJobImpl> impl(new ItemListJobImpl(error));
116 auto job = new ItemListJob(move(impl));118 auto job = new ItemListJob(move(impl));
117 job->p_->public_instance_ = job;119 job->p_->public_instance_ = job;
118 job->p_->status_ = job->p_->emit_status_changed(ItemListJob::Error);120 QMetaObject::invokeMethod(job,
119 return job;121 "statusChanged",
120}
121
122ItemListJob::Status ItemListJobImpl::emit_status_changed(ItemListJob::Status new_status) const
123{
124 // TODO: use assert
125 if (status_ == ItemListJob::Loading) // Once in a final state, we don't emit the signal again.
126 {
127 // We defer emission of the signal so the client gets a chance to connect to the signal
128 // in case we emit the signal from the constructor.
129 QMetaObject::invokeMethod(public_instance_,
130 "statusChanged",
131 Qt::QueuedConnection,
132 Q_ARG(unity::storage::qt::ItemListJob::Status, new_status));
133 }
134 return new_status;
135}
136
137void ItemListJobImpl::emit_items_ready(QList<Item> const& items) const
138{
139 QMetaObject::invokeMethod(public_instance_,
140 "itemsReady",
141 Qt::QueuedConnection,122 Qt::QueuedConnection,
142 Q_ARG(QList<unity::storage::qt::Item>, items));123 Q_ARG(unity::storage::qt::ItemListJob::Status, job->p_->status_));
124 return job;
143}125}
144126
145} // namespace internal127} // namespace internal
146128
=== modified file 'src/qt/internal/RuntimeImpl.cpp'
--- src/qt/internal/RuntimeImpl.cpp 2016-09-22 01:52:20 +0000
+++ src/qt/internal/RuntimeImpl.cpp 2016-09-26 02:44:08 +0000
@@ -105,7 +105,6 @@
105{105{
106 if (is_valid_)106 if (is_valid_)
107 {107 {
108 conn_.disconnectFromBus(conn_.name());
109 is_valid_ = false;108 is_valid_ = false;
110 return StorageError();109 return StorageError();
111 }110 }
112111
=== modified file 'tests/provider-ProviderInterface/ProviderInterface_test.cpp'
--- tests/provider-ProviderInterface/ProviderInterface_test.cpp 2016-09-05 06:47:09 +0000
+++ tests/provider-ProviderInterface/ProviderInterface_test.cpp 2016-09-26 02:44:08 +0000
@@ -68,12 +68,14 @@
68protected:68protected:
69 void SetUp() override69 void SetUp() override
70 {70 {
71 ProviderFixture::SetUp();
71 client_.reset(new ProviderClient(bus_name(), object_path(), connection()));72 client_.reset(new ProviderClient(bus_name(), object_path(), connection()));
72 }73 }
7374
74 void TearDown() override75 void TearDown() override
75 {76 {
76 client_.reset();77 client_.reset();
78 ProviderFixture::TearDown();
77 }79 }
7880
79 std::unique_ptr<ProviderClient> client_;81 std::unique_ptr<ProviderClient> client_;
8082
=== modified file 'tests/remote-client-v1/remote-client-v1_test.cpp'
--- tests/remote-client-v1/remote-client-v1_test.cpp 2016-09-20 06:58:05 +0000
+++ tests/remote-client-v1/remote-client-v1_test.cpp 2016-09-26 02:44:08 +0000
@@ -80,6 +80,7 @@
80protected:80protected:
81 void SetUp() override81 void SetUp() override
82 {82 {
83 ProviderFixture::SetUp();
83 runtime_ = Runtime::create(connection());84 runtime_ = Runtime::create(connection());
84 //acc_ = runtime_->make_test_account(service_connection_->baseService(), impossible_name());85 //acc_ = runtime_->make_test_account(service_connection_->baseService(), impossible_name());
85 acc_ = runtime_->make_test_account(bus_name(), object_path());86 acc_ = runtime_->make_test_account(bus_name(), object_path());
@@ -87,6 +88,7 @@
8788
88 void TearDown() override89 void TearDown() override
89 {90 {
91 ProviderFixture::TearDown();
90 }92 }
9193
92 Runtime::SPtr runtime_;94 Runtime::SPtr runtime_;
9395
=== modified file 'tests/remote-client/remote-client_test.cpp'
--- tests/remote-client/remote-client_test.cpp 2016-09-20 23:52:45 +0000
+++ tests/remote-client/remote-client_test.cpp 2016-09-26 02:44:08 +0000
@@ -37,6 +37,7 @@
37protected:37protected:
38 void SetUp() override38 void SetUp() override
39 {39 {
40 ProviderFixture::SetUp();
40 runtime_.reset(new Runtime(connection()));41 runtime_.reset(new Runtime(connection()));
41 acc_ = runtime_->make_test_account(service_connection_->baseService(), object_path());42 acc_ = runtime_->make_test_account(service_connection_->baseService(), object_path());
42 }43 }
@@ -44,6 +45,7 @@
44 void TearDown() override45 void TearDown() override
45 {46 {
46 runtime_.reset();47 runtime_.reset();
48 ProviderFixture::TearDown();
47 }49 }
4850
49 unique_ptr<Runtime> runtime_;51 unique_ptr<Runtime> runtime_;
5052
=== modified file 'tests/utils/ProviderFixture.cpp'
--- tests/utils/ProviderFixture.cpp 2016-09-20 06:58:05 +0000
+++ tests/utils/ProviderFixture.cpp 2016-09-26 02:44:08 +0000
@@ -33,7 +33,7 @@
3333
34} // namespace34} // namespace
3535
36ProviderFixture::ProviderFixture()36void ProviderFixture::SetUp()
37{37{
38 dbus_.reset(new DBusEnvironment);38 dbus_.reset(new DBusEnvironment);
39 dbus_->start_services();39 dbus_->start_services();
@@ -43,7 +43,7 @@
43 account_manager_.reset(new OnlineAccounts::Manager("", *service_connection_));43 account_manager_.reset(new OnlineAccounts::Manager("", *service_connection_));
44}44}
4545
46ProviderFixture::~ProviderFixture()46void ProviderFixture::TearDown()
47{47{
48 test_server_.reset();48 test_server_.reset();
49 service_connection_.reset();49 service_connection_.reset();
5050
=== modified file 'tests/utils/ProviderFixture.h'
--- tests/utils/ProviderFixture.h 2016-09-20 06:58:05 +0000
+++ tests/utils/ProviderFixture.h 2016-09-26 02:44:08 +0000
@@ -33,8 +33,8 @@
33class ProviderFixture : public ::testing::Test33class ProviderFixture : public ::testing::Test
34{34{
35public:35public:
36 ProviderFixture();36 virtual void SetUp() override;
37 virtual ~ProviderFixture();37 virtual void TearDown() override;
3838
39 QDBusConnection const& connection() const;39 QDBusConnection const& connection() const;
40 void set_provider(std::unique_ptr<unity::storage::provider::ProviderBase>&& provider);40 void set_provider(std::unique_ptr<unity::storage::provider::ProviderBase>&& provider);

Subscribers

People subscribed via source and target branches

to all changes: