blob: 0e6b8044b7367eb520075db53d3517c768b3e3be [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 CHROME_BROWSER_HISTORY_ANDROID_VISIT_SQL_HANDLER_H_
#define CHROME_BROWSER_HISTORY_ANDROID_VISIT_SQL_HANDLER_H_
#include "chrome/browser/history/android/sql_handler.h"
namespace base {
class Time;
}
namespace history {
class HistoryDatabase;
// This class is the SQLHandler for visits table.
class VisitSQLHandler : public SQLHandler {
public:
explicit VisitSQLHandler(HistoryDatabase* history_db);
virtual ~VisitSQLHandler();
// Overriden from SQLHandler.
virtual bool Update(const HistoryAndBookmarkRow& row,
const TableIDRows& ids_set) override;
virtual bool Insert(HistoryAndBookmarkRow* row) override;
virtual 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);
HistoryDatabase* history_db_;
DISALLOW_COPY_AND_ASSIGN(VisitSQLHandler);
};
} // namespace history.
#endif // CHROME_BROWSER_HISTORY_ANDROID_VISIT_SQL_HANDLER_H_