Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Side by Side Diff: third_party/WebKit/Source/modules/indexeddb/IDBObserver.h

Issue 2125213002: [IndexedDB] Propogating changes to observers : Renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lifetime
Patch Set: Options constrcutor modified Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 IDBObserver_h 5 #ifndef IDBObserver_h
6 #define IDBObserver_h 6 #define IDBObserver_h
7 7
8 #include "bindings/core/v8/ScriptWrappable.h" 8 #include "bindings/core/v8/ScriptWrappable.h"
9 #include "modules/ModulesExport.h" 9 #include "modules/ModulesExport.h"
10 #include "platform/heap/Handle.h" 10 #include "platform/heap/Handle.h"
11 #include <set> 11 #include "public/platform/WebVector.h"
12 #include "public/platform/modules/indexeddb/WebIDBTypes.h"
13 #include <bitset>
12 14
13 namespace blink { 15 namespace blink {
14 16
15 class ExceptionState; 17 class ExceptionState;
16 class IDBDatabase; 18 class IDBDatabase;
17 class IDBObserverCallback; 19 class IDBObserverCallback;
18 class IDBObserverInit; 20 class IDBObserverInit;
19 class IDBTransaction; 21 class IDBTransaction;
22 struct WebIDBObservation;
20 23
21 class MODULES_EXPORT IDBObserver final : public GarbageCollectedFinalized<IDBObs erver>, public ScriptWrappable { 24 class MODULES_EXPORT IDBObserver final : public GarbageCollectedFinalized<IDBObs erver>, public ScriptWrappable {
22 DEFINE_WRAPPERTYPEINFO(); 25 DEFINE_WRAPPERTYPEINFO();
23 26
24 public: 27 public:
25 static IDBObserver* create(IDBObserverCallback&, const IDBObserverInit&); 28 static IDBObserver* create(IDBObserverCallback&, const IDBObserverInit&);
26 29
27 ~IDBObserver(); 30 ~IDBObserver();
28 // API methods 31
32 void removeObserver(int32_t id);
33 void onChange(int32_t id, const WebVector<WebIDBObservation>&, const WebVect or<int32_t>& observationIndex);
34
35 bool transaction() const { return m_transaction; }
36 bool noRecords() const { return m_noRecords; }
37 bool values() const { return m_values; }
38 std::bitset<WebIDBOperationTypeCount> operationTypes() const
jsbell 2016/07/18 23:38:57 Return a reference, rather than a copy.
palakj1 2016/07/19 03:53:11 Done
39 {
40 return m_operationTypes;
jsbell 2016/07/18 23:38:57 You can put this all on one line.
palakj1 2016/07/19 03:53:11 Done
41 }
42
43 // Implement the IDBObserver IDL.
29 void observe(IDBDatabase*, IDBTransaction*, ExceptionState&); 44 void observe(IDBDatabase*, IDBTransaction*, ExceptionState&);
30 void unobserve(IDBDatabase*, ExceptionState&); 45 void unobserve(IDBDatabase*, ExceptionState&);
31 void removeObserver(int32_t id);
32 46
33 DECLARE_TRACE(); 47 DECLARE_TRACE();
34 48
35 private: 49 private:
36 IDBObserver(IDBObserverCallback&, const IDBObserverInit&); 50 IDBObserver(IDBObserverCallback&, const IDBObserverInit&);
37 51
38 Member<IDBObserverCallback> m_callback; 52 Member<IDBObserverCallback> m_callback;
39 bool m_transaction; 53 bool m_transaction;
40 bool m_values; 54 bool m_values;
41 bool m_noRecords; 55 bool m_noRecords;
42 std::set<int32_t> m_observerIds; 56 // Operation types and corresponding bits are add(0), put(1), delete(2), cle ar(3).
jsbell 2016/07/18 23:38:57 Can you reference WebIDBOperationType in the comme
palakj1 2016/07/19 03:53:11 Done
57 std::bitset<WebIDBOperationTypeCount> m_operationTypes;
58 HeapHashMap<int32_t, WeakMember<IDBDatabase>> m_observerIds;
43 }; 59 };
44 60
45 } // namespace blink 61 } // namespace blink
46 62
47 #endif // IDBObserver_h 63 #endif // IDBObserver_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698