root/chrome/browser/history/android/visit_sql_handler.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


// 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_

/* [<][>][^][v][top][bottom][index][help] */