1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef NETMANAGER_BASE_RAIIXCOLLIETIMER_H 16 #define NETMANAGER_BASE_RAIIXCOLLIETIMER_H 17 18 #include "net_mgr_log_wrapper.h" 19 #include "xcollie/xcollie.h" 20 21 namespace OHOS::NetManagerStandard { 22 class RaiiXCollieTimer { 23 DISALLOW_COPY_AND_MOVE(RaiiXCollieTimer); 24 25 public: RaiiXCollieTimer(const std::string &name, unsigned int timeout)26 RaiiXCollieTimer(const std::string &name, unsigned int timeout) 27 { 28 timerId = OHOS::HiviewDFX::XCollie::GetInstance().SetTimer(name, timeout, nullptr, nullptr, 29 OHOS::HiviewDFX::XCOLLIE_FLAG_LOG); 30 } ~RaiiXCollieTimer()31 ~RaiiXCollieTimer() 32 { 33 HiviewDFX::XCollie::GetInstance().CancelTimer(timerId); 34 } 35 36 private: 37 int timerId = -1; 38 }; 39 } // namespace OHOS::NetManagerStandard 40 41 #endif //NETMANAGER_BASE_RAIIXCOLLIETIMER_H