/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef SHAREDDATAMANAGER_H #define SHAREDDATAMANAGER_H #include #include enum class BrightnessMode { MANUAL = 0, AUTO, BRIGHTNESSMODE_MAX }; enum class ChargeState { NOCHARGE = 0, CHARGING, CHARGESTATE_MAX }; enum class SharedDataType { BRIGHTNESS_VALUE, BRIGHTNESS_MODE, KEEP_SCREEN_ON, BATTERY_STATUS, BATTERY_LEVEL, HEARTBEAT_VALUE, SUMSTEP_VALUE, VOLUME_VALUE, PRESSURE_VALUE, WEARING_STATE, LANGUAGE, LONGITUDE, LATITUDE, LAN, REGION }; class SharedDataManager { public: using Checker = void (*)(); const static int POSITIONPRECISION = 11; // add a data change check function of the template class to automatically,remove duplicates static void AddChecker(const Checker checker); // to perform the check, it needs to be polled for 100ms static void CheckTick(); private: static std::set checkers; static std::mutex mutex; }; #endif // SHAREDDATAMANAGER_H