blob: 6c4a6db8420f9c17db0aae5af27548449ea33737 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_HISTORY_CORE_BROWSER_ANDROID_VISIT_SQL_HANDLER_H_
#define COMPONENTS_HISTORY_CORE_BROWSER_ANDROID_VISIT_SQL_HANDLER_H_
#include "components/history/core/browser/android/sql_handler.h"
namespace base {
class Time;
}
namespace history {
class URLDatabase;
class VisitDatabase;
// This class is the SQLHandler for visits table.
class VisitSQLHandler : public SQLHandler {
public:
VisitSQLHandler(URLDatabase* url_db, VisitDatabase* visit_db);
~VisitSQLHandler() override;
// Overriden from SQLHandler.
bool Update(const HistoryAndBookmarkRow& row,
const TableIDRows& ids_set) override;
bool Insert(HistoryAndBookmarkRow* row) override;
bool Delete(const TableIDRows& ids_set) override;
private:
// Add a row in visit table with the given |url_id| and |visit_time|.
bool AddVisit(URLID url_id, const base::Time& visit_time);
// Add the given |visit_count| rows for |url_id|. The visit time of each row
// has minium difference and ends with the |last_visit_time|.
bool AddVisitRows(URLID url_id,
int visit_count,
const base::Time& last_visit_time);
// Delete the visits of the given |url_id|.
bool DeleteVisitsForURL(URLID url_id);
URLDatabase* url_db_;
VisitDatabase* visit_db_;
DISALLOW_COPY_AND_ASSIGN(VisitSQLHandler);
};
} // namespace history.
#endif // COMPONENTS_HISTORY_CORE_BROWSER_ANDROID_VISIT_SQL_HANDLER_H_