Home | History | Annotate | Download | only in android
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_HISTORY_ANDROID_VISIT_SQL_HANDLER_H_
      6 #define CHROME_BROWSER_HISTORY_ANDROID_VISIT_SQL_HANDLER_H_
      7 
      8 #include "chrome/browser/history/android/sql_handler.h"
      9 
     10 namespace base {
     11 class Time;
     12 }
     13 
     14 namespace history {
     15 
     16 class HistoryDatabase;
     17 
     18 // This class is the SQLHandler for visits table.
     19 class VisitSQLHandler : public SQLHandler {
     20  public:
     21   explicit VisitSQLHandler(HistoryDatabase* history_db);
     22   virtual ~VisitSQLHandler();
     23 
     24   // Overriden from SQLHandler.
     25   virtual bool Update(const HistoryAndBookmarkRow& row,
     26                       const TableIDRows& ids_set) OVERRIDE;
     27   virtual bool Insert(HistoryAndBookmarkRow* row) OVERRIDE;
     28   virtual bool Delete(const TableIDRows& ids_set) OVERRIDE;
     29 
     30  private:
     31   // Add a row in visit table with the given |url_id| and |visit_time|.
     32   bool AddVisit(URLID url_id, const base::Time& visit_time);
     33 
     34   // Add the given |visit_count| rows for |url_id|. The visit time of each row
     35   // has minium difference and ends with the |last_visit_time|.
     36   bool AddVisitRows(URLID url_id,
     37                     int visit_count,
     38                     const base::Time& last_visit_time);
     39 
     40   // Delete the visits of the given |url_id|.
     41   bool DeleteVisitsForURL(URLID url_id);
     42 
     43   HistoryDatabase* history_db_;
     44 
     45   DISALLOW_COPY_AND_ASSIGN(VisitSQLHandler);
     46 };
     47 
     48 }  // namespace history.
     49 
     50 #endif  // CHROME_BROWSER_HISTORY_ANDROID_VISIT_SQL_HANDLER_H_
     51