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

Side by Side Diff: chrome/browser/google_apis/request_registry.h

Issue 17175017: Get rid of RequestRegistry (part 6): get rid of RequestRegistry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comment fix Created 7 years, 6 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_GOOGLE_APIS_REQUEST_REGISTRY_H_
6 #define CHROME_BROWSER_GOOGLE_APIS_REQUEST_REGISTRY_H_
7
8 #include "base/basictypes.h"
9 #include "base/id_map.h"
10
11 namespace google_apis {
12
13 // Unique ID to identify each request.
14 typedef int32 RequestID;
15
16 // This class tracks all the in-flight Google API requests and manage
17 // their lifetime.
18 class RequestRegistry {
19 public:
20 RequestRegistry();
21 ~RequestRegistry();
22
23 // Base class for requests that this registry class can maintain.
24 // NotifyStart() passes the ownership of the Request object to the registry.
25 // In particular, calling NotifyFinish() causes the registry to delete the
26 // Request object itself.
27 class Request {
28 public:
29 explicit Request(RequestRegistry* registry);
30 virtual ~Request();
31
32 protected:
33 // Notifies the registry about current status.
34 void NotifyStart();
35 void NotifyFinish();
36
37 private:
38 RequestRegistry* const registry_;
39 RequestID id_;
40 };
41
42 private:
43 // Handlers for notifications from Requests.
44 friend class Request;
45 // Notifies that an request has started. This method passes the ownership of
46 // the request to the registry. A fresh request ID is returned to *id.
47 void OnRequestStart(Request* request, RequestID* id);
48 void OnRequestFinish(RequestID request_id);
49
50 typedef IDMap<Request, IDMapOwnPointer> RequestIDMap;
51 RequestIDMap in_flight_requests_;
52
53 DISALLOW_COPY_AND_ASSIGN(RequestRegistry);
54 };
55
56 } // namespace google_apis
57
58 #endif // CHROME_BROWSER_GOOGLE_APIS_REQUEST_REGISTRY_H_
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/base_requests_unittest.cc ('k') | chrome/browser/google_apis/request_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698