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

Side by Side Diff: remoting/protocol/pairing_registry.h

Issue 1864213002: Convert //remoting to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac IWYU Created 4 years, 8 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
« no previous file with comments | « remoting/protocol/pairing_authenticator_base.cc ('k') | remoting/protocol/pairing_registry.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef REMOTING_PROTOCOL_PAIRING_REGISTRY_H_ 5 #ifndef REMOTING_PROTOCOL_PAIRING_REGISTRY_H_
6 #define REMOTING_PROTOCOL_PAIRING_REGISTRY_H_ 6 #define REMOTING_PROTOCOL_PAIRING_REGISTRY_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory>
9 #include <queue> 10 #include <queue>
10 #include <string> 11 #include <string>
11 #include <vector> 12 #include <vector>
12 13
13 #include "base/callback.h" 14 #include "base/callback.h"
14 #include "base/gtest_prod_util.h" 15 #include "base/gtest_prod_util.h"
15 #include "base/macros.h" 16 #include "base/macros.h"
16 #include "base/memory/ref_counted.h" 17 #include "base/memory/ref_counted.h"
17 #include "base/memory/scoped_ptr.h"
18 #include "base/time/time.h" 18 #include "base/time/time.h"
19 19
20 namespace base { 20 namespace base {
21 class DictionaryValue; 21 class DictionaryValue;
22 class ListValue; 22 class ListValue;
23 class SingleThreadTaskRunner; 23 class SingleThreadTaskRunner;
24 } // namespace base 24 } // namespace base
25 25
26 namespace tracked_objects { 26 namespace tracked_objects {
27 class Location; 27 class Location;
(...skipping 18 matching lines...) Expand all
46 Pairing(const base::Time& created_time, 46 Pairing(const base::Time& created_time,
47 const std::string& client_name, 47 const std::string& client_name,
48 const std::string& client_id, 48 const std::string& client_id,
49 const std::string& shared_secret); 49 const std::string& shared_secret);
50 Pairing(const Pairing& other); 50 Pairing(const Pairing& other);
51 ~Pairing(); 51 ~Pairing();
52 52
53 static Pairing Create(const std::string& client_name); 53 static Pairing Create(const std::string& client_name);
54 static Pairing CreateFromValue(const base::DictionaryValue& pairing); 54 static Pairing CreateFromValue(const base::DictionaryValue& pairing);
55 55
56 scoped_ptr<base::DictionaryValue> ToValue() const; 56 std::unique_ptr<base::DictionaryValue> ToValue() const;
57 57
58 bool operator==(const Pairing& other) const; 58 bool operator==(const Pairing& other) const;
59 59
60 bool is_valid() const; 60 bool is_valid() const;
61 61
62 base::Time created_time() const { return created_time_; } 62 base::Time created_time() const { return created_time_; }
63 std::string client_id() const { return client_id_; } 63 std::string client_id() const { return client_id_; }
64 std::string client_name() const { return client_name_; } 64 std::string client_name() const { return client_name_; }
65 std::string shared_secret() const { return shared_secret_; } 65 std::string shared_secret() const { return shared_secret_; }
66 66
67 private: 67 private:
68 base::Time created_time_; 68 base::Time created_time_;
69 std::string client_name_; 69 std::string client_name_;
70 std::string client_id_; 70 std::string client_id_;
71 std::string shared_secret_; 71 std::string shared_secret_;
72 }; 72 };
73 73
74 // Mapping from client id to pairing information. 74 // Mapping from client id to pairing information.
75 typedef std::map<std::string, Pairing> PairedClients; 75 typedef std::map<std::string, Pairing> PairedClients;
76 76
77 // Delegate callbacks. 77 // Delegate callbacks.
78 typedef base::Callback<void(bool success)> DoneCallback; 78 typedef base::Callback<void(bool success)> DoneCallback;
79 typedef base::Callback<void(scoped_ptr<base::ListValue> pairings)> 79 typedef base::Callback<void(std::unique_ptr<base::ListValue> pairings)>
80 GetAllPairingsCallback; 80 GetAllPairingsCallback;
81 typedef base::Callback<void(Pairing pairing)> GetPairingCallback; 81 typedef base::Callback<void(Pairing pairing)> GetPairingCallback;
82 82
83 static const char kCreatedTimeKey[]; 83 static const char kCreatedTimeKey[];
84 static const char kClientIdKey[]; 84 static const char kClientIdKey[];
85 static const char kClientNameKey[]; 85 static const char kClientNameKey[];
86 static const char kSharedSecretKey[]; 86 static const char kSharedSecretKey[];
87 87
88 // Interface representing the persistent storage back-end. 88 // Interface representing the persistent storage back-end.
89 class Delegate { 89 class Delegate {
90 public: 90 public:
91 virtual ~Delegate() {} 91 virtual ~Delegate() {}
92 92
93 // Retrieves all JSON-encoded pairings from persistent storage. 93 // Retrieves all JSON-encoded pairings from persistent storage.
94 virtual scoped_ptr<base::ListValue> LoadAll() = 0; 94 virtual std::unique_ptr<base::ListValue> LoadAll() = 0;
95 95
96 // Deletes all pairings in persistent storage. 96 // Deletes all pairings in persistent storage.
97 virtual bool DeleteAll() = 0; 97 virtual bool DeleteAll() = 0;
98 98
99 // Retrieves the pairing identified by |client_id|. 99 // Retrieves the pairing identified by |client_id|.
100 virtual Pairing Load(const std::string& client_id) = 0; 100 virtual Pairing Load(const std::string& client_id) = 0;
101 101
102 // Saves |pairing| to persistent storage. 102 // Saves |pairing| to persistent storage.
103 virtual bool Save(const Pairing& pairing) = 0; 103 virtual bool Save(const Pairing& pairing) = 0;
104 104
105 // Deletes the pairing identified by |client_id|. 105 // Deletes the pairing identified by |client_id|.
106 virtual bool Delete(const std::string& client_id) = 0; 106 virtual bool Delete(const std::string& client_id) = 0;
107 }; 107 };
108 108
109 PairingRegistry( 109 PairingRegistry(
110 scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner, 110 scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner,
111 scoped_ptr<Delegate> delegate); 111 std::unique_ptr<Delegate> delegate);
112 112
113 // Creates a pairing for a new client and saves it to disk. 113 // Creates a pairing for a new client and saves it to disk.
114 // 114 //
115 // TODO(jamiewalch): Plumb the Save callback into the RequestPairing flow 115 // TODO(jamiewalch): Plumb the Save callback into the RequestPairing flow
116 // so that the client isn't sent the pairing information until it has been 116 // so that the client isn't sent the pairing information until it has been
117 // saved. 117 // saved.
118 Pairing CreatePairing(const std::string& client_name); 118 Pairing CreatePairing(const std::string& client_name);
119 119
120 // Gets the pairing for the specified client id. See the corresponding 120 // Gets the pairing for the specified client id. See the corresponding
121 // Delegate method for details. If none is found, the callback is invoked 121 // Delegate method for details. If none is found, the callback is invoked
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 const protocol::PairingRegistry::DoneCallback& callback); 168 const protocol::PairingRegistry::DoneCallback& callback);
169 169
170 // "Trampoline" callbacks that schedule the next pending request and then 170 // "Trampoline" callbacks that schedule the next pending request and then
171 // invoke the original caller-supplied callback. 171 // invoke the original caller-supplied callback.
172 void InvokeDoneCallbackAndScheduleNext( 172 void InvokeDoneCallbackAndScheduleNext(
173 const DoneCallback& callback, bool success); 173 const DoneCallback& callback, bool success);
174 void InvokeGetPairingCallbackAndScheduleNext( 174 void InvokeGetPairingCallbackAndScheduleNext(
175 const GetPairingCallback& callback, Pairing pairing); 175 const GetPairingCallback& callback, Pairing pairing);
176 void InvokeGetAllPairingsCallbackAndScheduleNext( 176 void InvokeGetAllPairingsCallbackAndScheduleNext(
177 const GetAllPairingsCallback& callback, 177 const GetAllPairingsCallback& callback,
178 scoped_ptr<base::ListValue> pairings); 178 std::unique_ptr<base::ListValue> pairings);
179 179
180 // Sanitize |pairings| by parsing each entry and removing the secret from it. 180 // Sanitize |pairings| by parsing each entry and removing the secret from it.
181 void SanitizePairings(const GetAllPairingsCallback& callback, 181 void SanitizePairings(const GetAllPairingsCallback& callback,
182 scoped_ptr<base::ListValue> pairings); 182 std::unique_ptr<base::ListValue> pairings);
183 183
184 // Queue management methods. 184 // Queue management methods.
185 void ServiceOrQueueRequest(const base::Closure& request); 185 void ServiceOrQueueRequest(const base::Closure& request);
186 void ServiceNextRequest(); 186 void ServiceNextRequest();
187 187
188 // Task runner on which all public methods of this class should be called. 188 // Task runner on which all public methods of this class should be called.
189 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner_; 189 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner_;
190 190
191 // Task runner used to run blocking calls to the delegate. A single thread 191 // Task runner used to run blocking calls to the delegate. A single thread
192 // task runner is used to guarantee that one one method of the delegate is 192 // task runner is used to guarantee that one one method of the delegate is
193 // called at a time. 193 // called at a time.
194 scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner_; 194 scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner_;
195 195
196 scoped_ptr<Delegate> delegate_; 196 std::unique_ptr<Delegate> delegate_;
197 197
198 std::queue<base::Closure> pending_requests_; 198 std::queue<base::Closure> pending_requests_;
199 199
200 DISALLOW_COPY_AND_ASSIGN(PairingRegistry); 200 DISALLOW_COPY_AND_ASSIGN(PairingRegistry);
201 }; 201 };
202 202
203 } // namespace protocol 203 } // namespace protocol
204 } // namespace remoting 204 } // namespace remoting
205 205
206 #endif // REMOTING_PROTOCOL_PAIRING_REGISTRY_H_ 206 #endif // REMOTING_PROTOCOL_PAIRING_REGISTRY_H_
OLDNEW
« no previous file with comments | « remoting/protocol/pairing_authenticator_base.cc ('k') | remoting/protocol/pairing_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698