Chromium Code Reviews| Index: content/browser/indexed_db/indexed_db_observer.h |
| diff --git a/content/browser/indexed_db/indexed_db_observer.h b/content/browser/indexed_db/indexed_db_observer.h |
| index f7bd95985a3b280865f63303b9e44faaf4578ff7..c156a4e85ec5564f4f783bc5e797fcfb6bfd0b43 100644 |
| --- a/content/browser/indexed_db/indexed_db_observer.h |
| +++ b/content/browser/indexed_db/indexed_db_observer.h |
| @@ -8,20 +8,58 @@ |
| #include <stddef.h> |
| #include <stdint.h> |
| +#include <bitset> |
| +#include <set> |
| + |
| #include "base/macros.h" |
| +#include "base/stl_util.h" |
| #include "content/common/content_export.h" |
| +#include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBTypes.h" |
| namespace content { |
| class CONTENT_EXPORT IndexedDBObserver { |
| public: |
| - IndexedDBObserver(int32_t observer_id); |
| + struct Options { |
| + bool include_transaction; |
|
cmumford
2016/07/19 16:00:16
member variables are at end - API is always emphas
palakj1
2016/07/19 18:04:14
done
|
| + bool no_records; |
|
cmumford
2016/07/19 16:00:16
Seems odd to have a "negative" baked into the vari
palakj1
2016/07/19 18:04:14
yes, this is how it would be used.
This is a user
|
| + bool values; |
| + // Each bit in operation type corresponds to blink::WebIDBOperationType |
| + // values. |
| + std::bitset<blink::WebIDBOperationTypeCount> operation_types; |
| + |
| + explicit Options(bool include_transaction, |
| + bool no_records, |
| + bool values, |
| + unsigned short types); |
| + Options(const Options&); |
| + ~Options(); |
| + }; |
| + IndexedDBObserver(int32_t observer_id, |
| + std::set<int64_t> object_store_ids, |
| + Options options); |
|
cmumford
2016/07/19 16:00:16
const Options&
palakj1
2016/07/19 18:04:14
done
|
| ~IndexedDBObserver(); |
| - int32_t id() const { return observer_id_; } |
| + int32_t id() const { return id_; } |
| + const std::set<int64_t>& object_store_ids() const { |
| + return object_store_ids_; |
| + } |
| + |
| + bool IsRecordingType(blink::WebIDBOperationType type) const { |
| + DCHECK_NE(type, blink::WebIDBOperationTypeCount); |
| + return options_.operation_types[type]; |
| + } |
| + bool IsRecordingObjectStore(int64_t object_store_id) const { |
| + return ContainsValue(object_store_ids_, object_store_id); |
| + } |
| + bool include_transaction() const { return options_.include_transaction; } |
| + bool no_records() const { return options_.no_records; } |
| + bool values() const { return options_.values; } |
| private: |
| - int32_t observer_id_; |
| + int32_t id_; |
| + std::set<int64_t> object_store_ids_; |
| + Options options_; |
| DISALLOW_COPY_AND_ASSIGN(IndexedDBObserver); |
| }; |