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

Unified Diff: chrome/browser/predictors/resource_prefetch_predictor_tables.h

Issue 2851473002: predictors: Extract sql key-value tables into separate class. (Closed)
Patch Set: Untemplate some code. Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/predictors/resource_prefetch_predictor_tables.h
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_tables.h b/chrome/browser/predictors/resource_prefetch_predictor_tables.h
index 0808fbad23ee3eb9668965ff898e1356e9215b9c..386661f1941c89afa2a7c5dc92913524f786d92e 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor_tables.h
+++ b/chrome/browser/predictors/resource_prefetch_predictor_tables.h
@@ -13,15 +13,12 @@
#include "base/gtest_prod_util.h"
#include "base/macros.h"
+#include "chrome/browser/predictors/glowplug_key_value_table.h"
#include "chrome/browser/predictors/predictor_table_base.h"
#include "chrome/browser/predictors/resource_prefetch_common.h"
#include "chrome/browser/predictors/resource_prefetch_predictor.pb.h"
#include "components/precache/core/proto/precache.pb.h"
-namespace sql {
-class Statement;
-}
-
namespace predictors {
// From resource_prefetch_predictor.proto.
@@ -32,10 +29,13 @@ using RedirectStat = RedirectData_RedirectStat;
// thread.
//
// Currently manages:
-// - UrlResourceTable - resources per Urls.
-// - UrlRedirectTable - redirects per Urls.
-// - HostResourceTable - resources per host.
-// - HostRedirectTable - redirects per host.
+// - UrlResourceTable - key: url, value: PrefetchData
+// - UrlRedirectTable - key: url, value: RedirectData
+// - HostResourceTable - key: host, value: PrefetchData
+// - HostRedirectTable - key: host, value: RedirectData
+// - ManifestTable - key: host with stripped "www." prefix,
+// value: precache::PrecacheManifest
+// - OriginTable - key: host, value: OriginData
class ResourcePrefetchPredictorTables : public PredictorTableBase {
public:
typedef std::map<std::string, PrefetchData> PrefetchDataMap;
@@ -130,11 +130,6 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
~ResourcePrefetchPredictorTables() override;
private:
- // Represents the type of information that is stored in prefetch database.
- enum class PrefetchDataType { RESOURCE, REDIRECT, MANIFEST, ORIGIN };
-
- enum class TableOperationType { INSERT, REMOVE };
-
friend class PredictorDatabaseInternal;
FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTablesTest,
DatabaseVersionIsSet);
@@ -145,23 +140,6 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
// schema (including the .proto).
static constexpr int kDatabaseVersion = 7;
- // Helper functions below help perform functions on the Url and host table
- // using the same code.
- void GetAllResourceDataHelper(PrefetchKeyType key_type,
- PrefetchDataMap* data_map);
- void GetAllRedirectDataHelper(PrefetchKeyType key_type,
- RedirectDataMap* redirect_map);
- void GetAllManifestDataHelper(ManifestDataMap* manifest_map);
- void GetAllOriginDataHelper(OriginDataMap* manifest_map);
-
- void UpdateDataHelper(PrefetchKeyType key_type,
- PrefetchDataType data_type,
- const std::string& key,
- const google::protobuf::MessageLite& data);
- void DeleteDataHelper(PrefetchKeyType key_type,
- PrefetchDataType data_type,
- const std::vector<std::string>& keys);
-
// PredictorTableBase:
void CreateTableIfNonExistent() override;
void LogDatabaseStats() override;
@@ -170,14 +148,13 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
static int GetDatabaseVersion(sql::Connection* db);
static bool SetDatabaseVersion(sql::Connection* db, int version);
- // Helper to return cached Statements.
- std::unique_ptr<sql::Statement> GetTableUpdateStatement(
- PrefetchKeyType key_type,
- PrefetchDataType data_type,
- TableOperationType op_type);
-
- static const char* GetTableName(PrefetchKeyType key_type,
- PrefetchDataType data_type);
+ std::unique_ptr<GlowplugKeyValueTable<PrefetchData>> url_resource_table_;
+ std::unique_ptr<GlowplugKeyValueTable<RedirectData>> url_redirect_table_;
+ std::unique_ptr<GlowplugKeyValueTable<PrefetchData>> host_resource_table_;
+ std::unique_ptr<GlowplugKeyValueTable<RedirectData>> host_redirect_table_;
+ std::unique_ptr<GlowplugKeyValueTable<precache::PrecacheManifest>>
+ manifest_table_;
+ std::unique_ptr<GlowplugKeyValueTable<OriginData>> origin_table_;
DISALLOW_COPY_AND_ASSIGN(ResourcePrefetchPredictorTables);
};

Powered by Google App Engine
This is Rietveld 408576698