Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: chrome/browser/chromeos/contacts/gdata_contacts_service.h

Issue 190063004: chromeos: Delete old, unused contacts code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge again Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_CHROMEOS_CONTACTS_GDATA_CONTACTS_SERVICE_H_
6 #define CHROME_BROWSER_CHROMEOS_CONTACTS_GDATA_CONTACTS_SERVICE_H_
7
8 #include <set>
9 #include <string>
10
11 #include "base/basictypes.h"
12 #include "base/callback.h"
13 #include "base/compiler_specific.h"
14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/scoped_vector.h"
16 #include "base/time/time.h"
17 #include "url/gurl.h"
18
19 class Profile;
20
21 namespace base {
22 class Value;
23 } // namespace base
24
25 namespace google_apis {
26 class AuthServiceInterface;
27 class RequestSender;
28 } // namespace google_apis
29
30 namespace net {
31 class URLRequestContextGetter;
32 } // namespace net
33
34 namespace contacts {
35
36 class Contact;
37
38 // Interface for fetching a user's Google contacts via the Contacts API
39 // (described at https://developers.google.com/google-apps/contacts/v3/).
40 class GDataContactsServiceInterface {
41 public:
42 typedef base::Callback<void(scoped_ptr<ScopedVector<contacts::Contact> >)>
43 SuccessCallback;
44 typedef base::Closure FailureCallback;
45
46 virtual ~GDataContactsServiceInterface() {}
47
48 // Downloads all contacts changed at or after |min_update_time| and invokes
49 // the appropriate callback asynchronously on the UI thread when complete. If
50 // min_update_time.is_null() is true, all contacts will be returned.
51 virtual void DownloadContacts(SuccessCallback success_callback,
52 FailureCallback failure_callback,
53 const base::Time& min_update_time) = 0;
54
55 protected:
56 GDataContactsServiceInterface() {}
57
58 private:
59 DISALLOW_COPY_AND_ASSIGN(GDataContactsServiceInterface);
60 };
61
62 class GDataContactsService : public GDataContactsServiceInterface {
63 public:
64 typedef base::Callback<std::string(const std::string&)>
65 RewritePhotoUrlCallback;
66
67 GDataContactsService(
68 net::URLRequestContextGetter* url_request_context_getter,
69 google_apis::AuthServiceInterface* auth_service);
70 virtual ~GDataContactsService();
71
72 const std::string& cached_my_contacts_group_id_for_testing() const {
73 return cached_my_contacts_group_id_;
74 }
75 void clear_cached_my_contacts_group_id_for_testing() {
76 cached_my_contacts_group_id_.clear();
77 }
78
79 void set_max_photo_downloads_per_second_for_testing(int max_downloads) {
80 max_photo_downloads_per_second_ = max_downloads;
81 }
82 void set_photo_download_timer_interval_for_testing(base::TimeDelta interval) {
83 photo_download_timer_interval_ = interval;
84 }
85 void set_groups_feed_url_for_testing(const GURL& url) {
86 groups_feed_url_for_testing_ = url;
87 }
88 void set_contacts_feed_url_for_testing(const GURL& url) {
89 contacts_feed_url_for_testing_ = url;
90 }
91 void set_rewrite_photo_url_callback_for_testing(RewritePhotoUrlCallback cb) {
92 rewrite_photo_url_callback_for_testing_ = cb;
93 }
94
95 // Overridden from GDataContactsServiceInterface:
96 virtual void DownloadContacts(SuccessCallback success_callback,
97 FailureCallback failure_callback,
98 const base::Time& min_update_time) OVERRIDE;
99
100 private:
101 class DownloadContactsRequest;
102
103 // Invoked by a download request once it's finished (either successfully or
104 // unsuccessfully).
105 void OnRequestComplete(DownloadContactsRequest* request);
106
107 scoped_ptr<google_apis::RequestSender> sender_;
108
109 // Group ID for the "My Contacts" system contacts group.
110 // Cached after a DownloadContactsRequest has completed.
111 std::string cached_my_contacts_group_id_;
112
113 // In-progress download requests. Pointers are owned by this class.
114 std::set<DownloadContactsRequest*> requests_;
115
116 // Maximum number of photos we'll try to download per second (per
117 // DownloadContacts() request).
118 int max_photo_downloads_per_second_;
119
120 // Amount of time that we'll wait between waves of photo download requests.
121 // This is usually one second (see |max_photo_downloads_per_second_|) but can
122 // be set to a lower value for tests to make them complete more quickly.
123 base::TimeDelta photo_download_timer_interval_;
124
125 // If non-empty, URLs that will be used to fetch feeds.
126 GURL groups_feed_url_for_testing_;
127 GURL contacts_feed_url_for_testing_;
128
129 // Callback that's invoked to rewrite photo URLs for tests.
130 // This is needed for tests that serve static feed data from a host/port
131 // that's only known at runtime.
132 RewritePhotoUrlCallback rewrite_photo_url_callback_for_testing_;
133
134 DISALLOW_COPY_AND_ASSIGN(GDataContactsService);
135 };
136
137 } // namespace contacts
138
139 #endif // CHROME_BROWSER_CHROMEOS_CONTACTS_GDATA_CONTACTS_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/contacts/fake_contact_store.cc ('k') | chrome/browser/chromeos/contacts/gdata_contacts_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698