Chromium Code Reviews| Index: chrome/browser/extensions/activity_database.h |
| =================================================================== |
| --- chrome/browser/extensions/activity_database.h (revision 0) |
| +++ chrome/browser/extensions/activity_database.h (revision 0) |
| @@ -0,0 +1,68 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// User of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_EXTENSIONS_ACTIVITY_DATABASE_H_ |
| +#define CHROME_BROWSER_EXTENSIONS_ACTIVITY_DATABASE_H_ |
| + |
| +#include "base/basictypes.h" |
| +#include "base/file_path.h" |
| +#include "base/memory/ref_counted_memory.h" |
| +#include "chrome/browser/extensions/blocked_actions.h" |
| +#include "chrome/browser/extensions/manager_actions.h" |
| +#include "chrome/browser/extensions/url_actions.h" |
| +#include "sql/connection.h" |
| +#include "sql/init_status.h" |
| + |
| +class FilePath; |
| + |
| +namespace extensions { |
| + |
| +// Encapsulates the SQL connection for the activity log database. |
| +// This class holds the database connection and has methods for writing. |
| +class ActivityDatabase : public base::RefCountedThreadSafe<ActivityDatabase> { |
| + public: |
| + // Need to call Init to actually use the ActivityDatabase. |
| + ActivityDatabase(); |
| + |
| + // Opens the DB and creates tables as necessary. |
| + sql::InitStatus Init(const FilePath& db_name, |
| + sql::ErrorDelegate* error_delegate); |
| + |
| + // Record a UrlAction in the database. |
| + void RecordUrlAction(scoped_refptr<UrlAction> action); |
| + |
| + // Record a ManagerAction in the database. |
| + void RecordManagerAction(scoped_refptr<ManagerAction> action); |
| + |
| + // Record a BlockedAction in the database. |
| + void RecordBlockedAction(scoped_refptr<BlockedAction> action); |
| + |
| + void KillDatabase(); |
| + |
| + bool initialized() const { return initialized_; } |
| + |
| + // Standard db operation wrappers. |
| + void BeginTransaction(); |
| + void CommitTransaction(); |
| + void RollbackTransaction(); |
| + bool Raze(); |
| + void Close(); |
| + |
| + private: |
| + friend class base::RefCountedThreadSafe<ActivityDatabase>; |
| + |
| + ~ActivityDatabase(); |
|
Eric Dingle
2012/12/18 21:55:35
virtual?
felt
2012/12/19 17:56:27
Done.
|
| + |
| + sql::InitStatus InitializeTable(const char* table_name, |
| + const char* table_structure); |
| + |
| + sql::Connection db_; |
| + bool initialized_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ActivityDatabase); |
| +}; |
| + |
| +} // namespace extensions |
| +#endif // CHROME_BROWSER_EXTENSIONS_ACTIVITY_DATABASE_H_ |
| + |