~pete-woods/storage-framework/cmake-extras-compatibility

« back to all changes in this revision

Viewing changes to include/unity/storage/provider/ProviderBase.h

  • Committer: Bileto Bot
  • Date: 2016-11-04 12:21:58 UTC
  • mfrom: (12.1.1 merge-devel)
  • Revision ID: ci-train-bot@canonical.com-20161104122158-hu8h9qyg3vm129t5
* Added v2 of the client-side API.
* Updated server-side API to tell the provider which metadata to return.
* Update provider API to manager ProviderBase class as a shared_ptr.
* Update client to discover ownCloud/Nextcloud and OneDrive accounts.
* Add match_etag argument to Download() D-Bus method.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include <boost/variant.hpp>
27
27
 
28
28
#include <sys/types.h>
 
29
#include <map>
 
30
#include <memory>
29
31
#include <string>
30
 
#include <map>
31
32
#include <vector>
32
33
 
33
34
namespace unity
65
66
 
66
67
typedef std::vector<Item> ItemList;
67
68
 
68
 
class UNITY_STORAGE_EXPORT ProviderBase
 
69
class UNITY_STORAGE_EXPORT ProviderBase : public std::enable_shared_from_this<ProviderBase>
69
70
{
70
71
public:
71
72
    ProviderBase();
74
75
    ProviderBase(ProviderBase const& other) = delete;
75
76
    ProviderBase& operator=(ProviderBase const& other) = delete;
76
77
 
77
 
    virtual boost::future<ItemList> roots(Context const& context) = 0;
 
78
    virtual boost::future<ItemList> roots(std::vector<std::string> const& keys, Context const& context) = 0;
78
79
    virtual boost::future<std::tuple<ItemList,std::string>> list(
79
80
        std::string const& item_id, std::string const& page_token,
 
81
        std::vector<std::string> const& keys,
80
82
        Context const& context) = 0;
81
83
    virtual boost::future<ItemList> lookup(
82
 
        std::string const& parent_id, std::string const& name,
 
84
        std::string const& parent_id, std::string const& name, std::vector<std::string> const& keys,
83
85
        Context const& context) = 0;
84
 
    virtual boost::future<Item> metadata(std::string const& item_id,
 
86
    virtual boost::future<Item> metadata(std::string const& item_id, std::vector<std::string> const& keys,
85
87
        Context const& context) = 0;
86
88
 
87
89
    virtual boost::future<Item> create_folder(
88
 
        std::string const& parent_id, std::string const& name,
 
90
        std::string const& parent_id, std::string const& name, std::vector<std::string> const& keys,
89
91
        Context const& context) = 0;
90
92
 
91
93
    virtual boost::future<std::unique_ptr<UploadJob>> create_file(
92
94
        std::string const& parent_id, std::string const& name,
93
 
        int64_t size, std::string const& content_type, bool allow_overwrite,
 
95
        int64_t size, std::string const& content_type, bool allow_overwrite, std::vector<std::string> const& keys,
94
96
        Context const& context) = 0;
95
97
    virtual boost::future<std::unique_ptr<UploadJob>> update(
96
 
        std::string const& item_id, int64_t size, std::string const& old_etag,
 
98
        std::string const& item_id, int64_t size, std::string const& old_etag, std::vector<std::string> const& keys,
97
99
        Context const& context) = 0;
98
100
 
99
101
    virtual boost::future<std::unique_ptr<DownloadJob>> download(
100
 
        std::string const& item_id, Context const& context) = 0;
 
102
        std::string const& item_id, std::string const& match_etag,
 
103
        Context const& context) = 0;
101
104
 
102
105
    virtual boost::future<void> delete_item(
103
106
        std::string const& item_id, Context const& context) = 0;
104
107
    virtual boost::future<Item> move(
105
108
        std::string const& item_id, std::string const& new_parent_id,
106
 
        std::string const& new_name, Context const& context) = 0;
 
109
        std::string const& new_name, std::vector<std::string> const& keys, Context const& context) = 0;
107
110
    virtual boost::future<Item> copy(
108
111
        std::string const& item_id, std::string const& new_parent_id,
109
 
        std::string const& new_name, Context const& context) = 0;
 
112
        std::string const& new_name, std::vector<std::string> const& keys, Context const& context) = 0;
110
113
};
111
114
 
112
115
}