17c804472Sopenharmony_ci/*
27c804472Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
37c804472Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47c804472Sopenharmony_ci * you may not use this file except in compliance with the License.
57c804472Sopenharmony_ci * You may obtain a copy of the License at
67c804472Sopenharmony_ci *
77c804472Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87c804472Sopenharmony_ci *
97c804472Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107c804472Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117c804472Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127c804472Sopenharmony_ci * See the License for the specific language governing permissions and
137c804472Sopenharmony_ci * limitations under the License.
147c804472Sopenharmony_ci */
157c804472Sopenharmony_ci
167c804472Sopenharmony_ci#ifndef COMMANDLINE_H
177c804472Sopenharmony_ci#define COMMANDLINE_H
187c804472Sopenharmony_ci
197c804472Sopenharmony_ci#include <set>
207c804472Sopenharmony_ci#include <vector>
217c804472Sopenharmony_ci#include "JsonReader.h"
227c804472Sopenharmony_ci#include "LocalSocket.h"
237c804472Sopenharmony_ci
247c804472Sopenharmony_ciclass CommandLine {
257c804472Sopenharmony_cipublic:
267c804472Sopenharmony_ci    enum class CommandType { SET = 0, GET, ACTION, INVALID };
277c804472Sopenharmony_ci
287c804472Sopenharmony_ci    CommandLine(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
297c804472Sopenharmony_ci    virtual ~CommandLine();
307c804472Sopenharmony_ci    void CheckAndRun();
317c804472Sopenharmony_ci    void SetCommandResult(const std::string& type, const Json2::Value& resultContent);
327c804472Sopenharmony_ci    void SetResultToManager(const std::string& type, const Json2::Value& resultContent, const std::string& messageType);
337c804472Sopenharmony_ci    void RunAndSendResultToManager();
347c804472Sopenharmony_ci    void SendResultToManager();
357c804472Sopenharmony_ci    void SendResult();
367c804472Sopenharmony_ci    virtual void RunSet() {}
377c804472Sopenharmony_ci    bool IsArgValid() const;
387c804472Sopenharmony_ci    uint8_t ToUint8(std::string str) const;
397c804472Sopenharmony_ci    void SetCommandName(std::string command);
407c804472Sopenharmony_ci
417c804472Sopenharmony_ciprotected:
427c804472Sopenharmony_ci    const Json2::Value& args;
437c804472Sopenharmony_ci    const LocalSocket& cliSocket;
447c804472Sopenharmony_ci    Json2::Value commandResult = JsonReader::CreateObject();
457c804472Sopenharmony_ci    Json2::Value commandResultToManager = JsonReader::CreateObject();
467c804472Sopenharmony_ci    CommandType type;
477c804472Sopenharmony_ci    std::string commandName;
487c804472Sopenharmony_ci    const std::vector<std::string> liteSupportedLanguages = {"zh-CN", "en-US"};
497c804472Sopenharmony_ci    const std::vector<std::string> richSupportedLanguages = {
507c804472Sopenharmony_ci        "zh_CN", "zh_HK", "zh_TW", "en_US", "en_GB", "ar_AE", "bg_BG", "bo_CN", "cs_CZ", "da_DK",
517c804472Sopenharmony_ci        "de_DE", "el_GR", "en_PH", "es_ES", "es_LA", "fi_FI", "fr_FR", "he_IL", "hi_IN", "hu_HU",
527c804472Sopenharmony_ci        "id_ID", "it_IT", "ja_JP", "kk_KZ", "ms_MY", "nl_NL", "no_NO", "pl_PL", "pt_BR", "pt_PT",
537c804472Sopenharmony_ci        "ro_RO", "ru_RU", "sr_RS", "sv_SE", "th_TH", "tr_TR", "ug_CN", "uk_UA", "vi_VN"
547c804472Sopenharmony_ci    };
557c804472Sopenharmony_ci    const std::vector<std::string> LoadDocDevs = {"phone", "tablet", "wearable", "car", "tv", "2in1", "default"};
567c804472Sopenharmony_ci    const int maxWidth = 3000;
577c804472Sopenharmony_ci    const int minWidth = 50;
587c804472Sopenharmony_ci    const int maxDpi = 640;
597c804472Sopenharmony_ci    const int minDpi = 120;
607c804472Sopenharmony_ci    const int maxKeyVal = 2119;
617c804472Sopenharmony_ci    const int minKeyVal = 2000;
627c804472Sopenharmony_ci    const int maxActionVal = 2;
637c804472Sopenharmony_ci    const int minActionVal = 0;
647c804472Sopenharmony_ci    const int maxLoadDocWidth = 3000;
657c804472Sopenharmony_ci    const int minLoadDocWidth = 20;
667c804472Sopenharmony_ci
677c804472Sopenharmony_ci    virtual bool IsSetArgValid() const
687c804472Sopenharmony_ci    {
697c804472Sopenharmony_ci        return true;
707c804472Sopenharmony_ci    }
717c804472Sopenharmony_ci    virtual bool IsGetArgValid() const
727c804472Sopenharmony_ci    {
737c804472Sopenharmony_ci        return true;
747c804472Sopenharmony_ci    }
757c804472Sopenharmony_ci    virtual bool IsActionArgValid() const
767c804472Sopenharmony_ci    {
777c804472Sopenharmony_ci        return true;
787c804472Sopenharmony_ci    }
797c804472Sopenharmony_ci    virtual void RunGet() {}
807c804472Sopenharmony_ci    virtual void RunAction() {}
817c804472Sopenharmony_ci
827c804472Sopenharmony_ci    bool IsBoolType(std::string arg) const;
837c804472Sopenharmony_ci    bool IsIntType(std::string arg) const;
847c804472Sopenharmony_ci    bool IsOneDigitFloatType(std::string arg, bool allowNegativeNumber) const;
857c804472Sopenharmony_ci
867c804472Sopenharmony_ciprivate:
877c804472Sopenharmony_ci    void Run();
887c804472Sopenharmony_ci};
897c804472Sopenharmony_ci
907c804472Sopenharmony_ciclass TouchAndMouseCommand {
917c804472Sopenharmony_ciprotected:
927c804472Sopenharmony_ci    struct EventParams {
937c804472Sopenharmony_ci        double x;
947c804472Sopenharmony_ci        double y;
957c804472Sopenharmony_ci        int type;
967c804472Sopenharmony_ci        int button;
977c804472Sopenharmony_ci        int action;
987c804472Sopenharmony_ci        int sourceType;
997c804472Sopenharmony_ci        int sourceTool;
1007c804472Sopenharmony_ci        std::set<int> pressedBtnsVec;
1017c804472Sopenharmony_ci        std::vector<double> axisVec; // 13 is array size
1027c804472Sopenharmony_ci        std::string name;
1037c804472Sopenharmony_ci    };
1047c804472Sopenharmony_ci    void SetEventParams(EventParams& params);
1057c804472Sopenharmony_ci};
1067c804472Sopenharmony_ci
1077c804472Sopenharmony_ciclass TouchPressCommand : public CommandLine, public TouchAndMouseCommand {
1087c804472Sopenharmony_cipublic:
1097c804472Sopenharmony_ci    TouchPressCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1107c804472Sopenharmony_ci    ~TouchPressCommand() override {}
1117c804472Sopenharmony_ci
1127c804472Sopenharmony_ciprotected:
1137c804472Sopenharmony_ci    void RunAction() override;
1147c804472Sopenharmony_ci    bool IsActionArgValid() const override;
1157c804472Sopenharmony_ci};
1167c804472Sopenharmony_ci
1177c804472Sopenharmony_ciclass TouchMoveCommand : public CommandLine, public TouchAndMouseCommand {
1187c804472Sopenharmony_cipublic:
1197c804472Sopenharmony_ci    TouchMoveCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1207c804472Sopenharmony_ci    ~TouchMoveCommand() override {}
1217c804472Sopenharmony_ci
1227c804472Sopenharmony_ciprotected:
1237c804472Sopenharmony_ci    void RunAction() override;
1247c804472Sopenharmony_ci    bool IsActionArgValid() const override;
1257c804472Sopenharmony_ci};
1267c804472Sopenharmony_ci
1277c804472Sopenharmony_ciclass TouchReleaseCommand : public CommandLine, public TouchAndMouseCommand {
1287c804472Sopenharmony_cipublic:
1297c804472Sopenharmony_ci    TouchReleaseCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1307c804472Sopenharmony_ci    ~TouchReleaseCommand() override {}
1317c804472Sopenharmony_ci
1327c804472Sopenharmony_ciprotected:
1337c804472Sopenharmony_ci    void RunAction() override;
1347c804472Sopenharmony_ci    bool IsActionArgValid() const override;
1357c804472Sopenharmony_ci};
1367c804472Sopenharmony_ci
1377c804472Sopenharmony_ciclass MouseWheelCommand : public CommandLine {
1387c804472Sopenharmony_cipublic:
1397c804472Sopenharmony_ci    MouseWheelCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1407c804472Sopenharmony_ci    ~MouseWheelCommand() override {}
1417c804472Sopenharmony_ci
1427c804472Sopenharmony_ciprotected:
1437c804472Sopenharmony_ci    void RunAction() override;
1447c804472Sopenharmony_ci    bool IsActionArgValid() const override;
1457c804472Sopenharmony_ci};
1467c804472Sopenharmony_ci
1477c804472Sopenharmony_ciclass BackClickedCommand : public CommandLine {
1487c804472Sopenharmony_cipublic:
1497c804472Sopenharmony_ci    BackClickedCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1507c804472Sopenharmony_ci    ~BackClickedCommand() override {}
1517c804472Sopenharmony_ci
1527c804472Sopenharmony_ciprotected:
1537c804472Sopenharmony_ci    void RunAction() override;
1547c804472Sopenharmony_ci};
1557c804472Sopenharmony_ci
1567c804472Sopenharmony_ciclass RestartCommand : public CommandLine {
1577c804472Sopenharmony_cipublic:
1587c804472Sopenharmony_ci    RestartCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1597c804472Sopenharmony_ci    ~RestartCommand() override {}
1607c804472Sopenharmony_ci
1617c804472Sopenharmony_ciprotected:
1627c804472Sopenharmony_ci    void RunAction() override;
1637c804472Sopenharmony_ci};
1647c804472Sopenharmony_ci
1657c804472Sopenharmony_ciclass PowerCommand : public CommandLine {
1667c804472Sopenharmony_cipublic:
1677c804472Sopenharmony_ci    PowerCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1687c804472Sopenharmony_ci    ~PowerCommand() override {}
1697c804472Sopenharmony_ci    void RunSet() override;
1707c804472Sopenharmony_ci
1717c804472Sopenharmony_ciprotected:
1727c804472Sopenharmony_ci    void RunGet() override;
1737c804472Sopenharmony_ci    bool IsSetArgValid() const override;
1747c804472Sopenharmony_ci};
1757c804472Sopenharmony_ci
1767c804472Sopenharmony_ciclass VolumeCommand : public CommandLine {
1777c804472Sopenharmony_cipublic:
1787c804472Sopenharmony_ci    VolumeCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1797c804472Sopenharmony_ci    ~VolumeCommand() override {}
1807c804472Sopenharmony_ci    void RunSet() override;
1817c804472Sopenharmony_ci
1827c804472Sopenharmony_ciprotected:
1837c804472Sopenharmony_ci    void RunGet() override;
1847c804472Sopenharmony_ci    bool IsSetArgValid() const override;
1857c804472Sopenharmony_ci};
1867c804472Sopenharmony_ci
1877c804472Sopenharmony_ciclass BarometerCommand : public CommandLine {
1887c804472Sopenharmony_cipublic:
1897c804472Sopenharmony_ci    BarometerCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
1907c804472Sopenharmony_ci    ~BarometerCommand() override {}
1917c804472Sopenharmony_ci    void RunSet() override;
1927c804472Sopenharmony_ci
1937c804472Sopenharmony_ciprotected:
1947c804472Sopenharmony_ci    void RunGet() override;
1957c804472Sopenharmony_ci    bool IsSetArgValid() const override;
1967c804472Sopenharmony_ci};
1977c804472Sopenharmony_ci
1987c804472Sopenharmony_ciclass ResolutionSwitchCommand : public CommandLine {
1997c804472Sopenharmony_cipublic:
2007c804472Sopenharmony_ci    ResolutionSwitchCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2017c804472Sopenharmony_ci    ~ResolutionSwitchCommand() override {}
2027c804472Sopenharmony_ci    void RunSet() override;
2037c804472Sopenharmony_ci
2047c804472Sopenharmony_ciprotected:
2057c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2067c804472Sopenharmony_ci    bool IsIntValValid() const;
2077c804472Sopenharmony_ci};
2087c804472Sopenharmony_ci
2097c804472Sopenharmony_ciclass OrientationCommand : public CommandLine {
2107c804472Sopenharmony_cipublic:
2117c804472Sopenharmony_ci    OrientationCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2127c804472Sopenharmony_ci    ~OrientationCommand() override {}
2137c804472Sopenharmony_ci    void RunSet() override;
2147c804472Sopenharmony_ci
2157c804472Sopenharmony_ciprotected:
2167c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2177c804472Sopenharmony_ci};
2187c804472Sopenharmony_ci
2197c804472Sopenharmony_ciclass ColorModeCommand : public CommandLine {
2207c804472Sopenharmony_cipublic:
2217c804472Sopenharmony_ci    ColorModeCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2227c804472Sopenharmony_ci    ~ColorModeCommand() override {}
2237c804472Sopenharmony_ci    void RunSet() override;
2247c804472Sopenharmony_ci
2257c804472Sopenharmony_ciprotected:
2267c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2277c804472Sopenharmony_ci};
2287c804472Sopenharmony_ci
2297c804472Sopenharmony_ciclass LanguageCommand : public CommandLine {
2307c804472Sopenharmony_cipublic:
2317c804472Sopenharmony_ci    LanguageCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2327c804472Sopenharmony_ci    ~LanguageCommand() override {}
2337c804472Sopenharmony_ci    void RunSet() override;
2347c804472Sopenharmony_ci
2357c804472Sopenharmony_ciprotected:
2367c804472Sopenharmony_ci    void RunGet() override;
2377c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2387c804472Sopenharmony_ci};
2397c804472Sopenharmony_ci
2407c804472Sopenharmony_ciclass FontSelectCommand : public CommandLine {
2417c804472Sopenharmony_cipublic:
2427c804472Sopenharmony_ci    FontSelectCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2437c804472Sopenharmony_ci    ~FontSelectCommand() override {}
2447c804472Sopenharmony_ci    void RunSet() override;
2457c804472Sopenharmony_ci
2467c804472Sopenharmony_ciprotected:
2477c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2487c804472Sopenharmony_ci};
2497c804472Sopenharmony_ci
2507c804472Sopenharmony_ciclass MemoryRefreshCommand : public CommandLine {
2517c804472Sopenharmony_cipublic:
2527c804472Sopenharmony_ci    MemoryRefreshCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2537c804472Sopenharmony_ci    ~MemoryRefreshCommand() override {}
2547c804472Sopenharmony_ci    void RunSet() override;
2557c804472Sopenharmony_ci
2567c804472Sopenharmony_ciprotected:
2577c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2587c804472Sopenharmony_ci};
2597c804472Sopenharmony_ci
2607c804472Sopenharmony_ciclass LoadDocumentCommand : public CommandLine {
2617c804472Sopenharmony_cipublic:
2627c804472Sopenharmony_ci    LoadDocumentCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2637c804472Sopenharmony_ci    ~LoadDocumentCommand() override {}
2647c804472Sopenharmony_ci    void RunSet() override;
2657c804472Sopenharmony_ci
2667c804472Sopenharmony_ciprotected:
2677c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2687c804472Sopenharmony_ci    bool IsIntValValid(const Json2::Value& previewParam) const;
2697c804472Sopenharmony_ci    bool IsStrValVailid(const Json2::Value& previewParam) const;
2707c804472Sopenharmony_ci};
2717c804472Sopenharmony_ci
2727c804472Sopenharmony_ciclass ReloadRuntimePageCommand : public CommandLine {
2737c804472Sopenharmony_cipublic:
2747c804472Sopenharmony_ci    ReloadRuntimePageCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2757c804472Sopenharmony_ci    ~ReloadRuntimePageCommand() override {}
2767c804472Sopenharmony_ci    void RunSet() override;
2777c804472Sopenharmony_ci
2787c804472Sopenharmony_ciprotected:
2797c804472Sopenharmony_ci    bool IsSetArgValid() const override;
2807c804472Sopenharmony_ci};
2817c804472Sopenharmony_ci
2827c804472Sopenharmony_ciclass CurrentRouterCommand : public CommandLine {
2837c804472Sopenharmony_cipublic:
2847c804472Sopenharmony_ci    CurrentRouterCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2857c804472Sopenharmony_ci    ~CurrentRouterCommand() override {}
2867c804472Sopenharmony_ci
2877c804472Sopenharmony_ciprotected:
2887c804472Sopenharmony_ci    void RunGet() override;
2897c804472Sopenharmony_ci};
2907c804472Sopenharmony_ci
2917c804472Sopenharmony_ciclass LoadContentCommand : public CommandLine {
2927c804472Sopenharmony_cipublic:
2937c804472Sopenharmony_ci    LoadContentCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
2947c804472Sopenharmony_ci    ~LoadContentCommand() override {}
2957c804472Sopenharmony_ci
2967c804472Sopenharmony_ciprotected:
2977c804472Sopenharmony_ci    void RunGet() override;
2987c804472Sopenharmony_ci};
2997c804472Sopenharmony_ci
3007c804472Sopenharmony_ciclass SupportedLanguagesCommand : public CommandLine {
3017c804472Sopenharmony_cipublic:
3027c804472Sopenharmony_ci    SupportedLanguagesCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3037c804472Sopenharmony_ci    ~SupportedLanguagesCommand() override {}
3047c804472Sopenharmony_ci
3057c804472Sopenharmony_ciprotected:
3067c804472Sopenharmony_ci    void RunGet() override;
3077c804472Sopenharmony_ci};
3087c804472Sopenharmony_ci
3097c804472Sopenharmony_ciclass LocationCommand : public CommandLine {
3107c804472Sopenharmony_cipublic:
3117c804472Sopenharmony_ci    LocationCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3127c804472Sopenharmony_ci    ~LocationCommand() override {}
3137c804472Sopenharmony_ci    void RunSet() override;
3147c804472Sopenharmony_ci
3157c804472Sopenharmony_ciprotected:
3167c804472Sopenharmony_ci    void RunGet() override;
3177c804472Sopenharmony_ci    bool IsSetArgValid() const override;
3187c804472Sopenharmony_ci};
3197c804472Sopenharmony_ci
3207c804472Sopenharmony_ciclass DistributedCommunicationsCommand : public CommandLine {
3217c804472Sopenharmony_cipublic:
3227c804472Sopenharmony_ci    DistributedCommunicationsCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3237c804472Sopenharmony_ci    ~DistributedCommunicationsCommand() override {}
3247c804472Sopenharmony_ci
3257c804472Sopenharmony_ciprotected:
3267c804472Sopenharmony_ci    void RunAction() override;
3277c804472Sopenharmony_ci    bool IsActionArgValid() const override;
3287c804472Sopenharmony_ci    std::vector<char> StringToCharVector(std::string str) const;
3297c804472Sopenharmony_ci};
3307c804472Sopenharmony_ci
3317c804472Sopenharmony_ciclass KeepScreenOnStateCommand : public CommandLine {
3327c804472Sopenharmony_cipublic:
3337c804472Sopenharmony_ci    KeepScreenOnStateCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3347c804472Sopenharmony_ci    ~KeepScreenOnStateCommand() override {}
3357c804472Sopenharmony_ci    void RunSet() override;
3367c804472Sopenharmony_ci
3377c804472Sopenharmony_ciprotected:
3387c804472Sopenharmony_ci    void RunGet() override;
3397c804472Sopenharmony_ci    bool IsSetArgValid() const override;
3407c804472Sopenharmony_ci};
3417c804472Sopenharmony_ci
3427c804472Sopenharmony_ciclass WearingStateCommand : public CommandLine {
3437c804472Sopenharmony_cipublic:
3447c804472Sopenharmony_ci    WearingStateCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3457c804472Sopenharmony_ci    ~WearingStateCommand() override {}
3467c804472Sopenharmony_ci    void RunSet() override;
3477c804472Sopenharmony_ci
3487c804472Sopenharmony_ciprotected:
3497c804472Sopenharmony_ci    void RunGet() override;
3507c804472Sopenharmony_ci    bool IsSetArgValid() const override;
3517c804472Sopenharmony_ci};
3527c804472Sopenharmony_ci
3537c804472Sopenharmony_ciclass BrightnessModeCommand : public CommandLine {
3547c804472Sopenharmony_cipublic:
3557c804472Sopenharmony_ci    BrightnessModeCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3567c804472Sopenharmony_ci    ~BrightnessModeCommand() override {}
3577c804472Sopenharmony_ci    void RunSet() override;
3587c804472Sopenharmony_ci
3597c804472Sopenharmony_ciprotected:
3607c804472Sopenharmony_ci    void RunGet() override;
3617c804472Sopenharmony_ci    bool IsSetArgValid() const override;
3627c804472Sopenharmony_ci};
3637c804472Sopenharmony_ci
3647c804472Sopenharmony_ciclass ChargeModeCommand : public CommandLine {
3657c804472Sopenharmony_cipublic:
3667c804472Sopenharmony_ci    ChargeModeCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3677c804472Sopenharmony_ci    ~ChargeModeCommand() override {}
3687c804472Sopenharmony_ci    void RunSet() override;
3697c804472Sopenharmony_ci
3707c804472Sopenharmony_ciprotected:
3717c804472Sopenharmony_ci    void RunGet() override;
3727c804472Sopenharmony_ci    bool IsSetArgValid() const override;
3737c804472Sopenharmony_ci};
3747c804472Sopenharmony_ci
3757c804472Sopenharmony_ciclass BrightnessCommand : public CommandLine {
3767c804472Sopenharmony_cipublic:
3777c804472Sopenharmony_ci    BrightnessCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3787c804472Sopenharmony_ci    ~BrightnessCommand() override {}
3797c804472Sopenharmony_ci    void RunSet() override;
3807c804472Sopenharmony_ci
3817c804472Sopenharmony_ciprotected:
3827c804472Sopenharmony_ci    void RunGet() override;
3837c804472Sopenharmony_ci    bool IsSetArgValid() const override;
3847c804472Sopenharmony_ci};
3857c804472Sopenharmony_ci
3867c804472Sopenharmony_ciclass HeartRateCommand : public CommandLine {
3877c804472Sopenharmony_cipublic:
3887c804472Sopenharmony_ci    HeartRateCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
3897c804472Sopenharmony_ci    ~HeartRateCommand() override {}
3907c804472Sopenharmony_ci    void RunSet() override;
3917c804472Sopenharmony_ci
3927c804472Sopenharmony_ciprotected:
3937c804472Sopenharmony_ci    void RunGet() override;
3947c804472Sopenharmony_ci    bool IsSetArgValid() const override;
3957c804472Sopenharmony_ci};
3967c804472Sopenharmony_ci
3977c804472Sopenharmony_ciclass StepCountCommand : public CommandLine {
3987c804472Sopenharmony_cipublic:
3997c804472Sopenharmony_ci    StepCountCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4007c804472Sopenharmony_ci    ~StepCountCommand() override {}
4017c804472Sopenharmony_ci    void RunSet() override;
4027c804472Sopenharmony_ci
4037c804472Sopenharmony_ciprotected:
4047c804472Sopenharmony_ci    void RunGet() override;
4057c804472Sopenharmony_ci    bool IsSetArgValid() const override;
4067c804472Sopenharmony_ci};
4077c804472Sopenharmony_ci
4087c804472Sopenharmony_ciclass ExitCommand : public CommandLine {
4097c804472Sopenharmony_cipublic:
4107c804472Sopenharmony_ci    ExitCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4117c804472Sopenharmony_ci    ~ExitCommand() override {}
4127c804472Sopenharmony_ci
4137c804472Sopenharmony_ciprotected:
4147c804472Sopenharmony_ci    void RunAction() override;
4157c804472Sopenharmony_ci};
4167c804472Sopenharmony_ci
4177c804472Sopenharmony_ciclass InspectorJSONTree : public CommandLine {
4187c804472Sopenharmony_cipublic:
4197c804472Sopenharmony_ci    InspectorJSONTree(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4207c804472Sopenharmony_ci    ~InspectorJSONTree() override {}
4217c804472Sopenharmony_ci
4227c804472Sopenharmony_ciprotected:
4237c804472Sopenharmony_ci    void RunAction() override;
4247c804472Sopenharmony_ci};
4257c804472Sopenharmony_ci
4267c804472Sopenharmony_ciclass InspectorDefault : public CommandLine {
4277c804472Sopenharmony_cipublic:
4287c804472Sopenharmony_ci    InspectorDefault(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4297c804472Sopenharmony_ci    ~InspectorDefault() override {}
4307c804472Sopenharmony_ci
4317c804472Sopenharmony_ciprotected:
4327c804472Sopenharmony_ci    void RunAction() override;
4337c804472Sopenharmony_ci};
4347c804472Sopenharmony_ci
4357c804472Sopenharmony_ciclass DeviceTypeCommand : public CommandLine {
4367c804472Sopenharmony_cipublic:
4377c804472Sopenharmony_ci    DeviceTypeCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4387c804472Sopenharmony_ci    ~DeviceTypeCommand() override {}
4397c804472Sopenharmony_ci
4407c804472Sopenharmony_ciprotected:
4417c804472Sopenharmony_ci    void RunSet() override;
4427c804472Sopenharmony_ci};
4437c804472Sopenharmony_ci
4447c804472Sopenharmony_ciclass ResolutionCommand : public CommandLine {
4457c804472Sopenharmony_cipublic:
4467c804472Sopenharmony_ci    ResolutionCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4477c804472Sopenharmony_ci    ~ResolutionCommand() override {}
4487c804472Sopenharmony_ci
4497c804472Sopenharmony_ciprotected:
4507c804472Sopenharmony_ci    void RunSet() override;
4517c804472Sopenharmony_ci};
4527c804472Sopenharmony_ci
4537c804472Sopenharmony_ciclass FastPreviewMsgCommand : public CommandLine {
4547c804472Sopenharmony_cipublic:
4557c804472Sopenharmony_ci    FastPreviewMsgCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4567c804472Sopenharmony_ci    ~FastPreviewMsgCommand() override {}
4577c804472Sopenharmony_ci
4587c804472Sopenharmony_ciprotected:
4597c804472Sopenharmony_ci    void RunGet() override;
4607c804472Sopenharmony_ci};
4617c804472Sopenharmony_ci
4627c804472Sopenharmony_ciclass DropFrameCommand : public CommandLine {
4637c804472Sopenharmony_cipublic:
4647c804472Sopenharmony_ci    DropFrameCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4657c804472Sopenharmony_ci    ~DropFrameCommand() override {}
4667c804472Sopenharmony_ci    void RunSet() override;
4677c804472Sopenharmony_ci
4687c804472Sopenharmony_ciprotected:
4697c804472Sopenharmony_ci    bool IsSetArgValid() const override;
4707c804472Sopenharmony_ci};
4717c804472Sopenharmony_ci
4727c804472Sopenharmony_ciclass KeyPressCommand : public CommandLine {
4737c804472Sopenharmony_cipublic:
4747c804472Sopenharmony_ci    KeyPressCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4757c804472Sopenharmony_ci    ~KeyPressCommand() override {}
4767c804472Sopenharmony_ci
4777c804472Sopenharmony_ciprotected:
4787c804472Sopenharmony_ci    void RunAction() override;
4797c804472Sopenharmony_ci    bool IsActionArgValid() const override;
4807c804472Sopenharmony_ci    bool IsImeArgsValid() const;
4817c804472Sopenharmony_ci    bool IsKeyArgsValid() const;
4827c804472Sopenharmony_ci};
4837c804472Sopenharmony_ci
4847c804472Sopenharmony_ciclass PointEventCommand : public CommandLine, public TouchAndMouseCommand {
4857c804472Sopenharmony_cipublic:
4867c804472Sopenharmony_ci    PointEventCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4877c804472Sopenharmony_ci    ~PointEventCommand() override {}
4887c804472Sopenharmony_ci
4897c804472Sopenharmony_ciprotected:
4907c804472Sopenharmony_ci    void RunAction() override;
4917c804472Sopenharmony_ci    bool IsActionArgValid() const override;
4927c804472Sopenharmony_ci    bool IsArgsExist() const;
4937c804472Sopenharmony_ci    bool IsArgsValid() const;
4947c804472Sopenharmony_ci};
4957c804472Sopenharmony_ci
4967c804472Sopenharmony_ciclass FoldStatusCommand : public CommandLine {
4977c804472Sopenharmony_cipublic:
4987c804472Sopenharmony_ci    FoldStatusCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
4997c804472Sopenharmony_ci    ~FoldStatusCommand() override {}
5007c804472Sopenharmony_ci
5017c804472Sopenharmony_ciprotected:
5027c804472Sopenharmony_ci    void RunSet() override;
5037c804472Sopenharmony_ci    bool IsSetArgValid() const override;
5047c804472Sopenharmony_ci};
5057c804472Sopenharmony_ci
5067c804472Sopenharmony_ciclass AvoidAreaCommand : public CommandLine {
5077c804472Sopenharmony_cipublic:
5087c804472Sopenharmony_ci    AvoidAreaCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
5097c804472Sopenharmony_ci    ~AvoidAreaCommand() override {}
5107c804472Sopenharmony_ci
5117c804472Sopenharmony_ciprotected:
5127c804472Sopenharmony_ci    void RunSet() override;
5137c804472Sopenharmony_ci    bool IsSetArgValid() const override;
5147c804472Sopenharmony_ci    bool IsObjectValid(const Json2::Value& val) const;
5157c804472Sopenharmony_ci};
5167c804472Sopenharmony_ci
5177c804472Sopenharmony_ciclass AvoidAreaChangedCommand : public CommandLine {
5187c804472Sopenharmony_cipublic:
5197c804472Sopenharmony_ci    AvoidAreaChangedCommand(CommandType commandType, const Json2::Value& arg, const LocalSocket& socket);
5207c804472Sopenharmony_ci    ~AvoidAreaChangedCommand() override {}
5217c804472Sopenharmony_ci
5227c804472Sopenharmony_ciprotected:
5237c804472Sopenharmony_ci    void RunGet() override;
5247c804472Sopenharmony_ci};
5257c804472Sopenharmony_ci#endif // COMMANDLINE_H
526