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

Side by Side Diff: chrome/browser/predictors/resource_prefetch_predictor_tables.cc

Issue 1851913002: Convert //sql to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IWYU fixup in precache_url_table_unittest.cc 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 | « no previous file | components/precache/core/precache_url_table_unittest.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 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 "chrome/browser/predictors/resource_prefetch_predictor_tables.h" 5 #include "chrome/browser/predictors/resource_prefetch_predictor_tables.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory>
10 #include <utility> 11 #include <utility>
11 12
12 #include "base/logging.h" 13 #include "base/logging.h"
13 #include "base/metrics/histogram.h" 14 #include "base/metrics/histogram.h"
14 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
15 #include "content/public/browser/browser_thread.h" 16 #include "content/public/browser/browser_thread.h"
16 #include "sql/statement.h" 17 #include "sql/statement.h"
17 18
18 using content::BrowserThread; 19 using content::BrowserThread;
19 using sql::Statement; 20 using sql::Statement;
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 bool ResourcePrefetchPredictorTables::UpdateDataHelper( 310 bool ResourcePrefetchPredictorTables::UpdateDataHelper(
310 const PrefetchData& data) { 311 const PrefetchData& data) {
311 DCHECK(!data.primary_key.empty()); 312 DCHECK(!data.primary_key.empty());
312 313
313 if (!StringsAreSmallerThanDBLimit(data)) { 314 if (!StringsAreSmallerThanDBLimit(data)) {
314 UMA_HISTOGRAM_BOOLEAN("ResourcePrefetchPredictor.DbStringTooLong", true); 315 UMA_HISTOGRAM_BOOLEAN("ResourcePrefetchPredictor.DbStringTooLong", true);
315 return false; 316 return false;
316 } 317 }
317 318
318 // Delete the older data from both the tables. 319 // Delete the older data from both the tables.
319 scoped_ptr<Statement> deleter(data.is_host() ? 320 std::unique_ptr<Statement> deleter(data.is_host()
320 GetHostResourceDeleteStatement() : GetUrlResourceDeleteStatement()); 321 ? GetHostResourceDeleteStatement()
322 : GetUrlResourceDeleteStatement());
321 deleter->BindString(0, data.primary_key); 323 deleter->BindString(0, data.primary_key);
322 if (!deleter->Run()) 324 if (!deleter->Run())
323 return false; 325 return false;
324 326
325 deleter.reset(data.is_host() ? GetHostMetadataDeleteStatement() : 327 deleter.reset(data.is_host() ? GetHostMetadataDeleteStatement() :
326 GetUrlMetadataDeleteStatement()); 328 GetUrlMetadataDeleteStatement());
327 deleter->BindString(0, data.primary_key); 329 deleter->BindString(0, data.primary_key);
328 if (!deleter->Run()) 330 if (!deleter->Run())
329 return false; 331 return false;
330 332
331 // Add the new data to the tables. 333 // Add the new data to the tables.
332 const ResourceRows& resources = data.resources; 334 const ResourceRows& resources = data.resources;
333 for (ResourceRows::const_iterator it = resources.begin(); 335 for (ResourceRows::const_iterator it = resources.begin();
334 it != resources.end(); ++it) { 336 it != resources.end(); ++it) {
335 scoped_ptr<Statement> resource_inserter(data.is_host() ? 337 std::unique_ptr<Statement> resource_inserter(
336 GetHostResourceUpdateStatement() : GetUrlResourceUpdateStatement()); 338 data.is_host() ? GetHostResourceUpdateStatement()
339 : GetUrlResourceUpdateStatement());
337 BindResourceRowToStatement(*it, data.primary_key, resource_inserter.get()); 340 BindResourceRowToStatement(*it, data.primary_key, resource_inserter.get());
338 if (!resource_inserter->Run()) 341 if (!resource_inserter->Run())
339 return false; 342 return false;
340 } 343 }
341 344
342 scoped_ptr<Statement> metadata_inserter(data.is_host() ? 345 std::unique_ptr<Statement> metadata_inserter(
343 GetHostMetadataUpdateStatement() : GetUrlMetadataUpdateStatement()); 346 data.is_host() ? GetHostMetadataUpdateStatement()
347 : GetUrlMetadataUpdateStatement());
344 metadata_inserter->BindString(0, data.primary_key); 348 metadata_inserter->BindString(0, data.primary_key);
345 metadata_inserter->BindInt64(1, data.last_visit.ToInternalValue()); 349 metadata_inserter->BindInt64(1, data.last_visit.ToInternalValue());
346 if (!metadata_inserter->Run()) 350 if (!metadata_inserter->Run())
347 return false; 351 return false;
348 352
349 return true; 353 return true;
350 } 354 }
351 355
352 void ResourcePrefetchPredictorTables::DeleteDataHelper( 356 void ResourcePrefetchPredictorTables::DeleteDataHelper(
353 PrefetchKeyType key_type, 357 PrefetchKeyType key_type,
354 const std::vector<std::string>& keys) { 358 const std::vector<std::string>& keys) {
355 bool is_host = key_type == PREFETCH_KEY_TYPE_HOST; 359 bool is_host = key_type == PREFETCH_KEY_TYPE_HOST;
356 360
357 for (std::vector<std::string>::const_iterator it = keys.begin(); 361 for (std::vector<std::string>::const_iterator it = keys.begin();
358 it != keys.end(); ++it) { 362 it != keys.end(); ++it) {
359 scoped_ptr<Statement> deleter(is_host ? GetHostResourceDeleteStatement() : 363 std::unique_ptr<Statement> deleter(is_host
360 GetUrlResourceDeleteStatement()); 364 ? GetHostResourceDeleteStatement()
365 : GetUrlResourceDeleteStatement());
361 deleter->BindString(0, *it); 366 deleter->BindString(0, *it);
362 deleter->Run(); 367 deleter->Run();
363 368
364 deleter.reset(is_host ? GetHostMetadataDeleteStatement() : 369 deleter.reset(is_host ? GetHostMetadataDeleteStatement() :
365 GetUrlMetadataDeleteStatement()); 370 GetUrlMetadataDeleteStatement());
366 deleter->BindString(0, *it); 371 deleter->BindString(0, *it);
367 deleter->Run(); 372 deleter->Run();
368 } 373 }
369 } 374 }
370 375
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 511
507 Statement* ResourcePrefetchPredictorTables::GetHostMetadataUpdateStatement() { 512 Statement* ResourcePrefetchPredictorTables::GetHostMetadataUpdateStatement() {
508 return new Statement(DB()->GetCachedStatement( 513 return new Statement(DB()->GetCachedStatement(
509 SQL_FROM_HERE, 514 SQL_FROM_HERE,
510 base::StringPrintf( 515 base::StringPrintf(
511 "INSERT INTO %s (main_page_url, last_visit_time) VALUES (?,?)", 516 "INSERT INTO %s (main_page_url, last_visit_time) VALUES (?,?)",
512 kHostMetadataTableName).c_str())); 517 kHostMetadataTableName).c_str()));
513 } 518 }
514 519
515 } // namespace predictors 520 } // namespace predictors
OLDNEW
« no previous file with comments | « no previous file | components/precache/core/precache_url_table_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698