• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 
16 #include "listen_ability.h"
17 
18 #include "hilog/log.h"
19 #include "iremote_object.h"
20 #include "if_system_ability_manager.h"
21 #include "iservice_registry.h"
22 
23 using namespace OHOS::HiviewDFX;
24 
25 namespace OHOS {
26 
27 static const int TEST_THREE = 3;
28 static const int TEST_FOUR = 4;
29 static const int TEST_SEVEN = 7;
30 static const int TEST_TEN = 10;
31 static const int TEST_NNN = 999;
32 
33 REGISTER_SYSTEM_ABILITY_BY_ID(ListenAbility, 1494, true);
34 
ListenAbility(int32_t saId,bool runOnCreate)35 ListenAbility::ListenAbility(int32_t saId, bool runOnCreate) : SystemAbility(saId, runOnCreate)
36 {
37     HiLog::Info(LABEL, "ListenAbility()");
38 }
39 
~ListenAbility()40 ListenAbility::~ListenAbility()
41 {
42     HiLog::Info(LABEL, "~ListenAbility()");
43 }
44 
AddVolume(int32_t volume)45 ErrCode ListenAbility::AddVolume(int32_t volume)
46 {
47     HiLog::Info(LABEL, "[idlTest] AddVolume service, volume: %{public}d", volume);
48     return volume + 1;
49 }
50 
TestSaCallSa(int32_t input,double & output)51 ErrCode ListenAbility::TestSaCallSa(int32_t input, double &output)
52 {
53     HiLog::Info(LABEL, "[idlTest] TestSaCallSa service, input: %{public}d, output: %{public}lf", input, output);
54     return ERR_OK;
55 }
56 
TestGetIpcSendRequestTimes(int32_t & times)57 ErrCode ListenAbility::TestGetIpcSendRequestTimes(int32_t &times)
58 {
59     times = 1;
60     HiLog::Info(LABEL, "[idlTest] TestGetIpcSendRequestTimes service");
61     return ERR_OK;
62 }
63 
overloadfun(int32_t & outParam)64 ErrCode ListenAbility::overloadfun(int32_t& outParam)
65 {
66     outParam = TEST_TEN;
67     HiLog::Info(LABEL, "[idlTest] overloadfunone service");
68     return ERR_OK;
69 }
70 
71 #ifdef DEVICE
overloadfun(std::unordered_map<int32_t,int32_t> & outParam)72 ErrCode ListenAbility::overloadfun(std::unordered_map<int32_t, int32_t>& outParam)
73 {
74     outParam[TEST_FOUR] = TEST_SEVEN;
75     HiLog::Info(LABEL, "[idlTest] overloadfuntwo service");
76     return ERR_OK;
77 }
78 #endif
79 
enum_test_func(FooEnum inParam,FooEnum & outParam,FooEnum & inoutParam,FooEnum & funcResult)80 ErrCode ListenAbility::enum_test_func(FooEnum inParam, FooEnum& outParam, FooEnum& inoutParam, FooEnum& funcResult)
81 {
82     outParam = FooEnum::ENUM_TWO;
83     HiLog::Info(IFOOCUSTOM_LABEL, "[idlTest] enum_test_func service said: %{public}d", static_cast<int>(inParam));
84     return ERR_OK;
85 }
86 
struct_test_func(const FooStruct & inParam,RequestInfo & outParam,FooStruct & inoutParam,FooStruct & funcResult)87 ErrCode ListenAbility::struct_test_func(
88     const FooStruct& inParam,
89     RequestInfo& outParam,
90     FooStruct& inoutParam,
91     FooStruct& funcResult)
92 {
93     outParam.initData.push_back(TEST_THREE);
94     HiLog::Info(IFOOCUSTOM_LABEL, "[idlTest] struct_test_func service, said: %{public}s", inParam.name.c_str());
95     return ERR_OK;
96 }
97 
union_test_func(const FooUnion & inParam,FooUnion & outParam,FooUnion & inoutParam,FooUnion & funcResult)98 ErrCode ListenAbility::union_test_func(
99     const FooUnion& inParam,
100     FooUnion& outParam,
101     FooUnion& inoutParam,
102     FooUnion& funcResult)
103 {
104     outParam.enumType = FooEnum::ENUM_TWO;
105     HiLog::Info(IFOOCUSTOM_LABEL, "[idlTest] union_test_func service, said: %{public}d",
106         static_cast<int>(inParam.enumType));
107     return ERR_OK;
108 }
109 
ApplyQuickFix(const std::vector<std::string> & quickFixFiles,bool isDebug)110 ErrCode ListenAbility::ApplyQuickFix(const std::vector<std::string>& quickFixFiles, bool isDebug)
111 {
112     std::string debugTrue;
113     if (isDebug) {
114         debugTrue = "true";
115     }
116     HiLog::Info(LABEL, "[idlTest] ApplyQuickFix service, said: %{public}s", debugTrue.c_str());
117     return ERR_OK;
118 }
119 
GetAllAppSuspendState(const std::unordered_map<int32_t,FooStruct> & inApp,std::unordered_map<int32_t,FooStruct> & outApp)120 ErrCode ListenAbility::GetAllAppSuspendState(
121     const std::unordered_map<int32_t, FooStruct>& inApp,
122     std::unordered_map<int32_t, FooStruct>& outApp)
123 {
124     outApp[1].id = TEST_NNN;
125     outApp[1].name = "MapTest";
126     HiLog::Info(LABEL, "[idlTest] GetAllAppSuspendState service,said: %{public}d, %{public}s",
127         inApp.at(0).id, inApp.at(0).name.c_str());
128     return ERR_OK;
129 }
130 
rawdata_test_func(const MyRawdata & inParam,MyRawdata & outParam,MyRawdata & inoutParam,MyRawdata & funcResult)131 ErrCode ListenAbility::rawdata_test_func(
132     const MyRawdata& inParam,
133     MyRawdata& outParam,
134     MyRawdata& inoutParam,
135     MyRawdata& funcResult)
136 {
137     const char sampleData[] = "Hello, world!";
138     const char sampleData2[] = "world!";
139     outParam.size = sizeof(sampleData);
140     outParam.RawDataCpy(sampleData);
141     HiLog::Info(LABEL, "[idlTest] inout rawdata service, said: %{public}u, %{public}s",
142         inoutParam.size, static_cast<const char*>(inoutParam.data));
143     inoutParam.size = sizeof(sampleData2);
144     inoutParam.RawDataCpy(sampleData2);
145     funcResult.size = sizeof(sampleData2);
146     funcResult.RawDataCpy(sampleData2);
147     HiLog::Info(LABEL, "[idlTest] in rawdata service, said: %{public}u, %{public}s",
148         inParam.size, static_cast<const char*>(inParam.data));
149     return ERR_OK;
150 }
151 
OnStart()152 void ListenAbility::OnStart()
153 {
154     HiLog::Info(LABEL, "[idlTest] OnStart() service");
155     bool res = Publish(this);
156     if (!res) {
157         HiLog::Info(LABEL, "[idlTest] OnStart service Publish failed");
158         return;
159     }
160     HiLog::Info(LABEL, "[idlTest] ListenAbility service begin");
161 }
162 
OnAddSystemAbility(int32_t systemAbilityId,const std::string & deviceId)163 void ListenAbility::OnAddSystemAbility(int32_t systemAbilityId, const std::string &deviceId)
164 {
165     HiLog::Info(LABEL, "[idlTest] OnAddSystemAbility service begin, said: %{public}d", systemAbilityId);
166 }
167 
OnRemoveSystemAbility(int32_t systemAbilityId,const std::string & deviceId)168 void ListenAbility::OnRemoveSystemAbility(int32_t systemAbilityId, const std::string &deviceId)
169 {
170     HiLog::Info(LABEL, "[idlTest] OnRemoveSystemAbility service begin, said: %{public}d", systemAbilityId);
171 }
172 
173 }