Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 namespace extensions { | 24 namespace extensions { |
| 25 | 25 |
| 26 class Extension; | 26 class Extension; |
| 27 | 27 |
| 28 // Abstract class for summarizing data and storing it into the database. Any | 28 // Abstract class for summarizing data and storing it into the database. Any |
| 29 // subclass should implement the following functionality: | 29 // subclass should implement the following functionality: |
| 30 // | 30 // |
| 31 // (1) Summarization (and possibly) compression of data | 31 // (1) Summarization (and possibly) compression of data |
| 32 // (2) Periodical saving of the in-memory state with the database | 32 // (2) Periodical saving of the in-memory state with the database |
| 33 // (3) Periodical database cleanup | 33 // (3) Periodical database cleanup |
| 34 // (4) Cleaning of URLs | |
| 34 // | 35 // |
| 35 // Since every policy implementation might summarize data differently, the | 36 // Since every policy implementation might summarize data differently, the |
| 36 // database implementation is policy-specific and therefore completely | 37 // database implementation is policy-specific and therefore completely |
| 37 // encapsulated in the policy class. All the member functions can be called | 38 // encapsulated in the policy class. All the member functions can be called |
| 38 // on the UI thread, because all DB operations are dispatched via the | 39 // on the UI thread, because all DB operations are dispatched via the |
| 39 // ActivityDatabase. | 40 // ActivityDatabase. |
| 40 class ActivityLogPolicy { | 41 class ActivityLogPolicy { |
| 41 public: | 42 public: |
| 42 enum PolicyType { | 43 enum PolicyType { |
| 43 POLICY_FULLSTREAM, | 44 POLICY_FULLSTREAM, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 99 // TODO(felt,dbabic) This is overly specific to the current implementation | 100 // TODO(felt,dbabic) This is overly specific to the current implementation |
| 100 // of the FullStreamUIPolicy. We should refactor it to use the above | 101 // of the FullStreamUIPolicy. We should refactor it to use the above |
| 101 // more general member function. | 102 // more general member function. |
| 102 virtual void ReadData( | 103 virtual void ReadData( |
| 103 const std::string& extension_id, | 104 const std::string& extension_id, |
| 104 const int day, | 105 const int day, |
| 105 const base::Callback | 106 const base::Callback |
| 106 <void(scoped_ptr<std::vector<scoped_refptr<Action> > >)>& callback) | 107 <void(scoped_ptr<std::vector<scoped_refptr<Action> > >)>& callback) |
| 107 const {} | 108 const {} |
| 108 | 109 |
| 110 // Clean the relevant URL data. The cleaning may be different for different | |
| 111 // policies. An empty vector signifies all URLs should be cleaned up. | |
| 112 virtual void RemoveURLs(const std::vector<GURL>& gurls) = 0; | |
|
mvrable
2013/07/17 16:41:23
You could simplify the code by just providing a si
karenlees
2013/08/08 23:36:37
Done.
| |
| 113 virtual void RemoveURL(const GURL& gurl) = 0; | |
| 114 | |
| 109 virtual std::string GetKey(KeyType key_id) const; | 115 virtual std::string GetKey(KeyType key_id) const; |
| 110 | 116 |
| 111 protected: | 117 protected: |
| 112 // An ActivityLogPolicy is not directly destroyed. Instead, call Close() | 118 // An ActivityLogPolicy is not directly destroyed. Instead, call Close() |
| 113 // which will cause the object to be deleted when it is safe. | 119 // which will cause the object to be deleted when it is safe. |
| 114 virtual ~ActivityLogPolicy(); | 120 virtual ~ActivityLogPolicy(); |
| 115 | 121 |
| 116 // The Schedule methods dispatch the calls to the database on a | 122 // The Schedule methods dispatch the calls to the database on a |
| 117 // separate thread. We dispatch to the UI thread if the DB thread doesn't | 123 // separate thread. We dispatch to the UI thread if the DB thread doesn't |
| 118 // exist, which should only happen in tests where there is no DB thread. | 124 // exist, which should only happen in tests where there is no DB thread. |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 143 | 149 |
| 144 base::FilePath profile_base_path_; | 150 base::FilePath profile_base_path_; |
| 145 | 151 |
| 146 private: | 152 private: |
| 147 DISALLOW_COPY_AND_ASSIGN(ActivityLogPolicy); | 153 DISALLOW_COPY_AND_ASSIGN(ActivityLogPolicy); |
| 148 }; | 154 }; |
| 149 | 155 |
| 150 } // namespace extensions | 156 } // namespace extensions |
| 151 | 157 |
| 152 #endif // CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ | 158 #endif // CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ |
| OLD | NEW |