From 43160a3dba83f9492be9e4ba85eccc5265ca40dd Mon Sep 17 00:00:00 2001 From: chiliren Date: Wed, 25 May 2022 20:51:46 +0800 Subject: [PATCH 1/2] add reportData switch --- common/include/config_parse.h | 34 +++++++++++ common/src/config_parse.cpp | 56 ++++++++++++++++++ etc/init/switch_config.xml | 4 ++ .../innerkits/concurrent_task_client/BUILD.gn | 2 + .../src/.concurrent_task_client.cpp.swp | Bin 0 -> 16384 bytes .../src/concurrent_task_client.cpp | 11 +++- 6 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 common/include/config_parse.h create mode 100644 common/src/config_parse.cpp create mode 100644 etc/init/switch_config.xml create mode 100644 interfaces/innerkits/concurrent_task_client/src/.concurrent_task_client.cpp.swp diff --git a/common/include/config_parse.h b/common/include/config_parse.h new file mode 100644 index 0000000..4557b4f --- /dev/null +++ b/common/include/config_parse.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2022 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 CONCURRENT_TASK_COMMON_INCLUDE_CONCURRENT_CONFIG_PARSE_H +#ifndef CONCURRENT_TASK_COMMON_INCLUDE_CONCURRENT_CONFIG_PARSE_H + +#include + +#include "single_instance.h" + +namespace OHOS { +namespace ConcurrentTask { +class XmlParser { + DECLARE_SINGLE_INSTANCE(XmlParser); +public: + bool ReadParamFromXml(const char* path); + int mReportDataSwitch = 0; +}; +} // OHOS +} // ConcurrentTask + +#endif // CONCURRENT_TASK_COMMON_INCLUDE_CONCURRENT_CONFIG_PARSE_H diff --git a/common/src/config_parse.cpp b/common/src/config_parse.cpp new file mode 100644 index 0000000..09b7cca --- /dev/null +++ b/common/src/config_parse.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2022 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. + */ + +#include "config_parse.h" +#include "libxml/parser.h" +#include "concurrent_task_log.h" + +namespace OHOS { +namespace ConcurrentTask { +IMPLEMENT_SINGLE_INSTANCE(XmlParser); + +bool XmlParser::ReadParamFromXml(const char* path) +{ + + std::unique_ptr docPtr( + xmlReadFile(path, nullptr, XML_PARSE_NOBLANKS), xmlFreeDoc); + if (docPtr == nullptr) { + CONCUR_LOGE("xmlReadFile error!"); + return false; + } + + xmlNodePtr rootNodePtr = xmlDocGetRootElement(docPtr.get()); + if (rootNodePtr == nullptr) { + CONCUR_LOGE("XML doc has no content!"); + return false; + } + + for (xmlNodePtr currNode = rootNodePtr->xmlChildrenNode; currNode != nullptr; currNode = currNode->next) { + std::string name = std::string(reinterpret_cast(currNode->name)); + if (!name.compare("reportDataSwitch")) { + auto contentPtr = xmlNodeGetContent(currNode); + std::string value = std::string(reinterpret_cast(contentPtr)); + mReportDataSwitch = std::stoi(value); + CONCUR_LOGI("mReportDataSwitch:%d.", mReportDataSwitch); + return true; + } + } + + CONCUR_LOGE("ReadParamFromXml Failed!"); + return false; +} + +} // OHOS +} // ConcurrentTask diff --git a/etc/init/switch_config.xml b/etc/init/switch_config.xml new file mode 100644 index 0000000..f4e56bf --- /dev/null +++ b/etc/init/switch_config.xml @@ -0,0 +1,4 @@ + + + 1 + diff --git a/interfaces/innerkits/concurrent_task_client/BUILD.gn b/interfaces/innerkits/concurrent_task_client/BUILD.gn index a5786bf..272c6ab 100644 --- a/interfaces/innerkits/concurrent_task_client/BUILD.gn +++ b/interfaces/innerkits/concurrent_task_client/BUILD.gn @@ -40,12 +40,14 @@ ohos_shared_library("concurrent_task_client") { sources = [ "src/concurrent_task_client.cpp", "src/concurrent_task_service_proxy.cpp", + "${concurrent_common}/src/config_parse.cpp", ] deps = [ "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog", "//third_party/jsoncpp:jsoncpp", "//utils/native/base:utils", + "//third_party/libxml2:xml2", ] external_deps = [ diff --git a/interfaces/innerkits/concurrent_task_client/src/.concurrent_task_client.cpp.swp b/interfaces/innerkits/concurrent_task_client/src/.concurrent_task_client.cpp.swp new file mode 100644 index 0000000000000000000000000000000000000000..1ec5540df07881dcba9cd8cf86f6d151cf7dfffd GIT binary patch literal 16384 zcmeI2Ux*_~9mmV{-+AY(ry_zN)aG!^?9C)|v%}qy9mC}&+1VqKnBKRVwr=XtVlOQMv2fpg5-|Frp-I?s%sUQbi z4IeV8s;>I|zQ12rRcETdd8>JYK3;l+;Chgd&%ghR{qL>3bne41y^kDiZfUC#ln3npXBAi>m$s6J^P$28`rh~4yl0g#jvEDx z0!9I&fKk9GU=%P47zOS{1ypd3d=`$MOPwF3pKn_D{8xHS+lhtx^sD(W3K#{90!9I& zfKk9GU=%P47zK<1MggOMQQ!@z0CN(feym^k@&Etn`~R!&BIFm~3*Z{~Aou|I^Lax4 z1ilV#gB9@86+*rZz6m}9hTsWs0TA$qcM|eL@B{EI@Hx-|d!PVTzysiZ@RJ7!u>k{r zyB{`y?}D#^FM&JYF>oH-2Y&YsLVgQ=1D*%Zf@81`dY}bvfS2zh8zFxMKLXze&w_nW2d})9kiURmfp35>0|&et{PQh@`~&`gP&Vv^ar#M!S_JmMeyR&l? zJshLhjSogtDp$E`dZA*T&5LWL4i9{(>P)esm&tM5 zqwaOdg##O*qM>psmB{m@!zFht+`bbRg-Qxs-H$!%4PJ&DIyE>6C*&Y2o@ zxGe&GrleA7dr4^n($O88mx_~7WRZv~9I+FK{ke|+xnXz0&NXtg2W3{g* zBki_ZyEi-5Ui)gjSXkz1EU1T6%S4CjQ%p2H#YDr%#tEjdR7j0K?R3p?Ud!W*W{Htk z8$ByAuG47stX{2q-Rd?vx0<^R>q@P;*Qn2>x{whN>SzV${mngW+|9!lA1}-;d2{K2 z33uk-3ALHBN9pqt&j@|ySj=^Oo33&lA8moY=62~Ed5uwu7u86FsfbEWPI)5#8)cAz zQ;X7E75c=PWwTK2H1iSfCg;+sNXYpVqjQpIXXcXrhlc2zUq=+KKxC?XooCDQ%^qybmNj*U${a|ig!!6X8r#y!jS6~ zVkoe@O!AKAe3*tdjA!kfGpU!=yweb2S*zu1>7qVqmwM45I;f{IB0IB8=dhWHdNsu( zvTqF|CY@v{J%|)Ps#0BCjQ`fzc1#*l?)na2cqpev_T&V4t8=7?B`Gl?nRGJi>}+{W z7yn?k^5-p2%ResEMs*-$s6GLS^p}t$5uId`8TgVGS%l;i3f1$CM5&J$c@RWbT*%dM z&(Y-%KP=Q#f{)_tXr*#X??z}kZqomvkV&alFzc%xAW?YQp>}0{}x{u1173fo)rt|1FEtCrDh?^eptP6_%Py4DfR=v3s z#n-#VN~bZAZXOf8u#r^4UYdDy-tu_qPH1)MZ3{b8;;{oB2AG2vT4TCd!l&Kh$meHotJ#`TB!1|nVCt=SZm8$%4N z1#1qHDK*#2j*XqI!UjC7o?)LI@8b21^kNxMR~!f(1EdO#JZ!zG8gaUZ^U_|(OS(mu z^K2Q_Pp57Z2G~ap5ImQ8m}7>V4zbsg9yaR~2e%JI7{Gfu-zD~Ko5R&qv0FPNnF{C&MV7n8W(Efz70Atv!k5$iQV?8Px zN{%``6?t?lkpc0mh(AzcCONv%J?U$tR8T3G$K!E{A=^g0& mapPayload) { + if (XmlParser::GetInstance().ReadParamFromXml("/data/switch_config.xml")) { + CONCUR_LOGI("XML Parse Success!"); + if (XmlParser::GetInstance().mReportDataSwitch == 0) { + CONCUR_LOGI("ReportDataSwitch Close!"); + return; + } + } + CONCUR_LOGD("ConcurrentTaskClient::ReportData receive resType = %{public}u, value = %{public}" PRId64 ".", resType, value); if (TryConnect() != ERR_OK) { @@ -103,4 +112,4 @@ extern "C" void ReportData(uint32_t resType, int64_t value, ConcurrentTaskClient::GetInstance().ReportData(resType, value, mapPayload); } } // namespace ConcurrentTask -} // namespace OHOS \ No newline at end of file +} // namespace OHOS -- Gitee From 0b1ce82bb0a36e916c0da35ab4d06659c5c79bc3 Mon Sep 17 00:00:00 2001 From: chiliren Date: Wed, 25 May 2022 20:53:52 +0800 Subject: [PATCH 2/2] rm --- .../src/.concurrent_task_client.cpp.swp | Bin 16384 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 interfaces/innerkits/concurrent_task_client/src/.concurrent_task_client.cpp.swp diff --git a/interfaces/innerkits/concurrent_task_client/src/.concurrent_task_client.cpp.swp b/interfaces/innerkits/concurrent_task_client/src/.concurrent_task_client.cpp.swp deleted file mode 100644 index 1ec5540df07881dcba9cd8cf86f6d151cf7dfffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI2Ux*_~9mmV{-+AY(ry_zN)aG!^?9C)|v%}qy9mC}&+1VqKnBKRVwr=XtVlOQMv2fpg5-|Frp-I?s%sUQbi z4IeV8s;>I|zQ12rRcETdd8>JYK3;l+;Chgd&%ghR{qL>3bne41y^kDiZfUC#ln3npXBAi>m$s6J^P$28`rh~4yl0g#jvEDx z0!9I&fKk9GU=%P47zOS{1ypd3d=`$MOPwF3pKn_D{8xHS+lhtx^sD(W3K#{90!9I& zfKk9GU=%P47zK<1MggOMQQ!@z0CN(feym^k@&Etn`~R!&BIFm~3*Z{~Aou|I^Lax4 z1ilV#gB9@86+*rZz6m}9hTsWs0TA$qcM|eL@B{EI@Hx-|d!PVTzysiZ@RJ7!u>k{r zyB{`y?}D#^FM&JYF>oH-2Y&YsLVgQ=1D*%Zf@81`dY}bvfS2zh8zFxMKLXze&w_nW2d})9kiURmfp35>0|&et{PQh@`~&`gP&Vv^ar#M!S_JmMeyR&l? zJshLhjSogtDp$E`dZA*T&5LWL4i9{(>P)esm&tM5 zqwaOdg##O*qM>psmB{m@!zFht+`bbRg-Qxs-H$!%4PJ&DIyE>6C*&Y2o@ zxGe&GrleA7dr4^n($O88mx_~7WRZv~9I+FK{ke|+xnXz0&NXtg2W3{g* zBki_ZyEi-5Ui)gjSXkz1EU1T6%S4CjQ%p2H#YDr%#tEjdR7j0K?R3p?Ud!W*W{Htk z8$ByAuG47stX{2q-Rd?vx0<^R>q@P;*Qn2>x{whN>SzV${mngW+|9!lA1}-;d2{K2 z33uk-3ALHBN9pqt&j@|ySj=^Oo33&lA8moY=62~Ed5uwu7u86FsfbEWPI)5#8)cAz zQ;X7E75c=PWwTK2H1iSfCg;+sNXYpVqjQpIXXcXrhlc2zUq=+KKxC?XooCDQ%^qybmNj*U${a|ig!!6X8r#y!jS6~ zVkoe@O!AKAe3*tdjA!kfGpU!=yweb2S*zu1>7qVqmwM45I;f{IB0IB8=dhWHdNsu( zvTqF|CY@v{J%|)Ps#0BCjQ`fzc1#*l?)na2cqpev_T&V4t8=7?B`Gl?nRGJi>}+{W z7yn?k^5-p2%ResEMs*-$s6GLS^p}t$5uId`8TgVGS%l;i3f1$CM5&J$c@RWbT*%dM z&(Y-%KP=Q#f{)_tXr*#X??z}kZqomvkV&alFzc%xAW?YQp>}0{}x{u1173fo)rt|1FEtCrDh?^eptP6_%Py4DfR=v3s z#n-#VN~bZAZXOf8u#r^4UYdDy-tu_qPH1)MZ3{b8;;{oB2AG2vT4TCd!l&Kh$meHotJ#`TB!1|nVCt=SZm8$%4N z1#1qHDK*#2j*XqI!UjC7o?)LI@8b21^kNxMR~!f(1EdO#JZ!zG8gaUZ^U_|(OS(mu z^K2Q_Pp57Z2G~ap5ImQ8m}7>V4zbsg9yaR~2e%JI7{Gfu-zD~Ko5R&qv0FPNnF{C&MV7n8W(Efz70Atv!k5$iQV?8Px zN{%``6?t?lkpc0mh(AzcCONv%J?U$tR8T3G$K!E{A=^g0