blob: 1e525c07216c3324087c02a4f4045857a8c69df1 [file] [log] [blame]
Yao Chenab273e22017-09-06 12:53:50 -07001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#ifndef STATS_LOG_PROCESSOR_H
17#define STATS_LOG_PROCESSOR_H
18
yro00698da2017-09-15 10:06:40 -070019#include "parse_util.h"
Yao Chenab273e22017-09-06 12:53:50 -070020
David Chen0656b7a2017-09-13 15:53:39 -070021#include <unordered_map>
22
Bookatz906a35c2017-09-20 15:26:44 -070023namespace android {
24namespace os {
25namespace statsd {
Yao Chenab273e22017-09-06 12:53:50 -070026
Yao Chenef99c4f2017-09-22 16:26:54 -070027class StatsLogProcessor : public LogListener {
Yao Chenab273e22017-09-06 12:53:50 -070028public:
29 StatsLogProcessor();
30 virtual ~StatsLogProcessor();
31
32 virtual void OnLogEvent(const log_msg& msg);
33
David Chen0656b7a2017-09-13 15:53:39 -070034 virtual void UpdateConfig(const int config_source, StatsdConfig config);
35
Yao Chenab273e22017-09-06 12:53:50 -070036private:
37 /**
38 * Numeric to string tag name mapping.
39 */
40 EventTagMap* m_tags;
41
42 /**
43 * Pretty printing format.
44 */
45 AndroidLogFormat* m_format;
46
47 DropboxWriter m_dropbox_writer;
David Chen0656b7a2017-09-13 15:53:39 -070048
49 /**
50 * Configs that have been specified, keyed by the source. This allows us to over-ride the config
51 * from a source later.
52 */
53 std::unordered_map<int, StatsdConfig> m_configs;
Yao Chenab273e22017-09-06 12:53:50 -070054};
Bookatz906a35c2017-09-20 15:26:44 -070055
Yao Chenef99c4f2017-09-22 16:26:54 -070056} // namespace statsd
57} // namespace os
58} // namespace android
Bookatz906a35c2017-09-20 15:26:44 -070059
Yao Chenef99c4f2017-09-22 16:26:54 -070060#endif // STATS_LOG_PROCESSOR_H