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); |
|
Matt Perry
2013/01/03 20:53:35
It seems to me this would be better handled by the
felt
2013/01/07 23:44:22
I agree that it would be neater to have a single A
Matt Perry
2013/01/08 00:02:01
I don't understand the reason you give here. Why c
felt
2013/01/08 06:38:51
Done.
|
| + |
| + // 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>; |
| + |
| + virtual ~ActivityDatabase(); |
| + |
| + 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_ |
| + |