OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef COMPONENTS_UKM_UKM_RECORDER_IMPL_H_ | |
6 #define COMPONENTS_UKM_UKM_RECORDER_IMPL_H_ | |
7 | |
8 #include "components/ukm/public/ukm_recorder.h" | |
9 | |
10 namespace ukm { | |
11 | |
12 class UkmSource; | |
13 class Report; | |
14 | |
15 namespace debug { | |
16 class DebugPage; | |
17 } | |
18 | |
19 class UkmRecorderImpl : public UkmRecorder { | |
20 public: | |
21 UkmRecorderImpl(); | |
22 ~UkmRecorderImpl() override; | |
23 | |
24 // Enables/disables recording control if data is allowed to be collected. | |
25 void EnableRecording(); | |
26 void DisableRecording(); | |
27 | |
28 // Deletes stored recordings. | |
29 void Purge(); | |
30 | |
31 protected: | |
32 // Cache the list of whitelisted entries from the field trial parameter. | |
33 void StoreWhitelistedEntries(); | |
34 | |
35 // Writes recordings into a report proto, and clears recordings. | |
36 void StoreRecordingsInReport(Report* report); | |
37 | |
38 const std::map<ukm::SourceId, std::unique_ptr<UkmSource>>& sources() const { | |
39 return sources_; | |
40 } | |
41 | |
42 const std::vector<mojom::UkmEntryPtr>& entries() const { return entries_; } | |
43 | |
44 private: | |
45 friend ::ukm::debug::DebugPage; | |
46 // UkmRecorder: | |
oystein (OOO til 10th of July)
2017/05/17 18:25:06
nit: "UkmRecorder implementation:" for consistency
Steven Holte
2017/05/17 20:44:31
Not including the word implementation seems to be
| |
47 void UpdateSourceURL(SourceId source_id, const GURL& url) override; | |
48 void AddEntry(mojom::UkmEntryPtr entry) override; | |
49 | |
50 // Whether recording new data is currently allowed. | |
51 bool recording_enabled_; | |
52 | |
53 // Contains newly added sources and entries of UKM metrics which periodically | |
54 // get serialized and cleared by BuildAndStoreLog(). | |
55 std::map<ukm::SourceId, std::unique_ptr<UkmSource>> sources_; | |
56 std::vector<mojom::UkmEntryPtr> entries_; | |
57 | |
58 // Whitelisted Entry hashes, only the ones in this set will be recorded. | |
59 std::set<uint64_t> whitelisted_entry_hashes_; | |
60 | |
61 THREAD_CHECKER(thread_checker_); | |
oystein (OOO til 10th of July)
2017/05/17 18:25:06
nit: missing some includes for this (and the STL s
Steven Holte
2017/05/17 20:44:31
Done.
| |
62 }; | |
63 } | |
oystein (OOO til 10th of July)
2017/05/17 18:25:06
nit: // namespace ukm
Steven Holte
2017/05/17 20:44:31
Done.
| |
64 | |
65 #endif // COMPONENTS_UKM_UKM_RECORDER_IMPL_H_ | |
OLD | NEW |