1a69a01cdSopenharmony_ci/*
2a69a01cdSopenharmony_ci * @Description:
3a69a01cdSopenharmony_ci * @Date: 2022-05-15 18:49:26
4a69a01cdSopenharmony_ci * @LastEditTime: 2022-05-15 19:49:06
5a69a01cdSopenharmony_ci * @FilePath: /wukong/report/include/input_info.h
6a69a01cdSopenharmony_ci * @author: lemon
7a69a01cdSopenharmony_ci */
8a69a01cdSopenharmony_ci/*
9a69a01cdSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
10a69a01cdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
11a69a01cdSopenharmony_ci * you may not use this file except in compliance with the License.
12a69a01cdSopenharmony_ci * You may obtain a copy of the License at
13a69a01cdSopenharmony_ci *
14a69a01cdSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
15a69a01cdSopenharmony_ci *
16a69a01cdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
17a69a01cdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
18a69a01cdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19a69a01cdSopenharmony_ci * See the License for the specific language governing permissions and
20a69a01cdSopenharmony_ci * limitations under the License.
21a69a01cdSopenharmony_ci */
22a69a01cdSopenharmony_ci
23a69a01cdSopenharmony_ci#ifndef TEST_WUKONG_INPUF_INFO_H
24a69a01cdSopenharmony_ci#define TEST_WUKONG_INPUF_INFO_H
25a69a01cdSopenharmony_ci
26a69a01cdSopenharmony_ci#include <iostream>
27a69a01cdSopenharmony_ci#include <map>
28a69a01cdSopenharmony_ci#include <string>
29a69a01cdSopenharmony_ci#include <vector>
30a69a01cdSopenharmony_ci
31a69a01cdSopenharmony_ci#include "input_action.h"
32a69a01cdSopenharmony_ci#include "report.h"
33a69a01cdSopenharmony_ci#include "singleton.h"
34a69a01cdSopenharmony_ci
35a69a01cdSopenharmony_cinamespace OHOS {
36a69a01cdSopenharmony_cinamespace WuKong {
37a69a01cdSopenharmony_ciclass InputInfo final : public DelayedSingleton<InputInfo> {
38a69a01cdSopenharmony_ci    DECLARE_DELAYED_SINGLETON(InputInfo)
39a69a01cdSopenharmony_ci    friend class Report;
40a69a01cdSopenharmony_cipublic:
41a69a01cdSopenharmony_ci    void SetBundleName(const std::string &bundleName);
42a69a01cdSopenharmony_ci    void SetAbilityName(const std::string &abilityName);
43a69a01cdSopenharmony_ci    void SetInputType(InputType inputType);
44a69a01cdSopenharmony_ci    void SetComponmentName(const std::string &componmentName);
45a69a01cdSopenharmony_ci    void SetComponmentInputedTimes(int componmentInputedTimes);
46a69a01cdSopenharmony_ci    void SetComponmentTotals(int componmentTotals);
47a69a01cdSopenharmony_ciprivate:
48a69a01cdSopenharmony_ci    std::string GetBundleName();
49a69a01cdSopenharmony_ci    std::string GetAbilityName();
50a69a01cdSopenharmony_ci    std::string GetComponmentName();
51a69a01cdSopenharmony_ci    std::string GetComponmentInputedTimes();
52a69a01cdSopenharmony_ci    std::string GetComponmentTotals();
53a69a01cdSopenharmony_ci    void reset();
54a69a01cdSopenharmony_ci    /*
55a69a01cdSopenharmony_ci     * @brief update current conponment statistics
56a69a01cdSopenharmony_ci     * @param componmentStatistics  in order mean componment type, input times, total componment
57a69a01cdSopenharmony_ci     * @return
58a69a01cdSopenharmony_ci     */
59a69a01cdSopenharmony_ci    std::string InputTypeToString();
60a69a01cdSopenharmony_ci
61a69a01cdSopenharmony_ci    std::string bundleName_;
62a69a01cdSopenharmony_ci    std::string abilityName_;
63a69a01cdSopenharmony_ci    InputType inputType_;
64a69a01cdSopenharmony_ci    std::string componmentName_;
65a69a01cdSopenharmony_ci    int componmentInputedTimes_;
66a69a01cdSopenharmony_ci    int componmentTotals_;
67a69a01cdSopenharmony_ci};
68a69a01cdSopenharmony_ci}  // namespace WuKong
69a69a01cdSopenharmony_ci}  // namespace OHOS
70a69a01cdSopenharmony_ci
71a69a01cdSopenharmony_ci#endif