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

Side by Side Diff: components/copresence/rpc/rpc_handler.cc

Issue 460743004: Improve audible token detection. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "components/copresence/rpc/rpc_handler.h" 5 #include "components/copresence/rpc/rpc_handler.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 GetDeviceCapabilities(*request).release()); 255 GetDeviceCapabilities(*request).release());
256 SendServerRequest(kReportRequestRpcName, 256 SendServerRequest(kReportRequestRpcName,
257 app_id, 257 app_id,
258 request.Pass(), 258 request.Pass(),
259 // On destruction, this request will be cancelled. 259 // On destruction, this request will be cancelled.
260 base::Bind(&RpcHandler::ReportResponseHandler, 260 base::Bind(&RpcHandler::ReportResponseHandler,
261 base::Unretained(this), 261 base::Unretained(this),
262 status_callback)); 262 status_callback));
263 } 263 }
264 264
265 void RpcHandler::ReportTokens(TokenMedium medium, 265 void RpcHandler::ReportTokens(const std::vector<FullToken>& tokens) {
266 const std::vector<std::string>& tokens) {
267 DCHECK_EQ(medium, AUDIO_ULTRASOUND_PASSBAND);
268 DCHECK(!tokens.empty()); 266 DCHECK(!tokens.empty());
269 267
270 scoped_ptr<ReportRequest> request(new ReportRequest); 268 scoped_ptr<ReportRequest> request(new ReportRequest);
271 for (size_t i = 0; i < tokens.size(); ++i) { 269 for (size_t i = 0; i < tokens.size(); ++i) {
272 const std::string& token = ToUrlSafe(tokens[i]); 270 const std::string& token = ToUrlSafe(tokens[i].token);
273 if (invalid_audio_token_cache_.HasKey(token)) 271 if (invalid_audio_token_cache_.HasKey(token))
274 continue; 272 continue;
275 273
276 DVLOG(3) << "Sending token " << token << " to server."; 274 DVLOG(3) << "Sending token " << token << " to server.";
277 275
278 TokenObservation* token_observation = 276 TokenObservation* token_observation =
279 request->mutable_update_signals_request()->add_token_observation(); 277 request->mutable_update_signals_request()->add_token_observation();
280 token_observation->set_token_id(token); 278 token_observation->set_token_id(token);
281 279
282 TokenSignals* signals = token_observation->add_signals(); 280 TokenSignals* signals = token_observation->add_signals();
283 signals->set_medium(medium); 281 signals->set_medium(tokens[i].audible ? AUDIO_AUDIBLE_DTMF
282 : AUDIO_ULTRASOUND_PASSBAND);
284 signals->set_observed_time_millis(base::Time::Now().ToJsTime()); 283 signals->set_observed_time_millis(base::Time::Now().ToJsTime());
285 } 284 }
286 SendReportRequest(request.Pass()); 285 SendReportRequest(request.Pass());
287 } 286 }
288 287
289 void RpcHandler::ConnectToWhispernet() { 288 void RpcHandler::ConnectToWhispernet() {
290 WhispernetClient* whispernet_client = delegate_->GetWhispernetClient(); 289 WhispernetClient* whispernet_client = delegate_->GetWhispernetClient();
291 290
292 // |directive_handler_| will be destructed with us, so unretained is safe. 291 // |directive_handler_| will be destructed with us, so unretained is safe.
293 directive_handler_.reset(new DirectiveHandler); 292 directive_handler_.reset(new DirectiveHandler);
294 directive_handler_->Initialize( 293 directive_handler_->Initialize(
295 base::Bind(&WhispernetClient::DecodeSamples, 294 base::Bind(&WhispernetClient::DecodeSamples,
296 base::Unretained(whispernet_client)), 295 base::Unretained(whispernet_client)),
297 base::Bind(&RpcHandler::AudioDirectiveListToWhispernetConnector, 296 base::Bind(&RpcHandler::AudioDirectiveListToWhispernetConnector,
298 base::Unretained(this))); 297 base::Unretained(this)));
299 298
300 whispernet_client->RegisterTokensCallback( 299 whispernet_client->RegisterTokensCallback(
301 base::Bind(&RpcHandler::ReportTokens, 300 base::Bind(&RpcHandler::ReportTokens,
302 // On destruction, this callback will be disconnected. 301 // On destruction, this callback will be disconnected.
303 base::Unretained(this), 302 base::Unretained(this)));
304 AUDIO_ULTRASOUND_PASSBAND));
305 } 303 }
306 304
307 // Private methods 305 // Private methods
308 306
309 void RpcHandler::RegisterResponseHandler( 307 void RpcHandler::RegisterResponseHandler(
310 const SuccessCallback& init_done_callback, 308 const SuccessCallback& init_done_callback,
311 HttpPost* completed_post, 309 HttpPost* completed_post,
312 int http_status_code, 310 int http_status_code,
313 const std::string& response_data) { 311 const std::string& response_data) {
314 if (completed_post) { 312 if (completed_post) {
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 bool audible, 500 bool audible,
503 const WhispernetClient::SamplesCallback& samples_callback) { 501 const WhispernetClient::SamplesCallback& samples_callback) {
504 WhispernetClient* whispernet_client = delegate_->GetWhispernetClient(); 502 WhispernetClient* whispernet_client = delegate_->GetWhispernetClient();
505 if (whispernet_client) { 503 if (whispernet_client) {
506 whispernet_client->RegisterSamplesCallback(samples_callback); 504 whispernet_client->RegisterSamplesCallback(samples_callback);
507 whispernet_client->EncodeToken(token, audible); 505 whispernet_client->EncodeToken(token, audible);
508 } 506 }
509 } 507 }
510 508
511 } // namespace copresence 509 } // namespace copresence
OLDNEW
« no previous file with comments | « components/copresence/rpc/rpc_handler.h ('k') | components/copresence/rpc/rpc_handler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698