1 /*
2 * Copyright (c) 2023-2023 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 #include "connection_subscriber.h"
16
17 #include "res_sched_log.h"
18 #include "res_sched_mgr.h"
19 #include "ressched_utils.h"
20 #include "res_type.h"
21
22 namespace OHOS {
23 namespace ResourceSchedule {
MarshallingConnectionData(const AbilityRuntime::ConnectionData & data,nlohmann::json & payload)24 void ConnectionSubscriber::MarshallingConnectionData(
25 const AbilityRuntime::ConnectionData& data, nlohmann::json &payload)
26 {
27 payload["extensionPid"] = data.extensionPid;
28 payload["extensionUid"] = data.extensionUid;
29 payload["extensionBundleName"] = data.extensionBundleName;
30 payload["extensionModuleName"] = data.extensionModuleName;
31 payload["extensionName"] = data.extensionName;
32 payload["extensionType"] = static_cast<uint32_t>(data.extensionType);
33 payload["callerUid"] = data.callerUid;
34 payload["callerPid"] = data.callerPid;
35 payload["callerName"] = data.callerName;
36 }
37
OnExtensionConnected(const AbilityRuntime::ConnectionData & data)38 void ConnectionSubscriber::OnExtensionConnected(const AbilityRuntime::ConnectionData& data)
39 {
40 RESSCHED_LOGD("Ressched ConnectionSubscriber OnExtensionConnected");
41 nlohmann::json payload;
42 MarshallingConnectionData(data, payload);
43 ResSchedUtils::GetInstance().ReportDataInProcess(
44 ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::EXTENSION_CONNECTED, payload);
45 }
46
OnExtensionDisconnected(const AbilityRuntime::ConnectionData & data)47 void ConnectionSubscriber::OnExtensionDisconnected(const AbilityRuntime::ConnectionData& data)
48 {
49 RESSCHED_LOGD("Ressched ConnectionSubscriber OnExtensionDisconnected");
50 nlohmann::json payload;
51 MarshallingConnectionData(data, payload);
52 ResSchedUtils::GetInstance().ReportDataInProcess(
53 ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::EXTENSION_DISCONNECTED, payload);
54 }
55
MarshallingDlpStateData(const AbilityRuntime::DlpStateData & data,nlohmann::json & payload)56 void ConnectionSubscriber::MarshallingDlpStateData(const AbilityRuntime::DlpStateData& data, nlohmann::json &payload)
57 {
58 payload["targetPid"] = data.targetPid;
59 payload["targetUid"] = data.targetUid;
60 payload["targetBundleName"] = data.targetBundleName;
61 payload["targetModuleName"] = data.targetModuleName;
62 payload["targetAbilityName"] = data.targetAbilityName;
63 payload["callerUid"] = data.callerUid;
64 payload["callerPid"] = data.callerPid;
65 payload["callerName"] = data.callerName;
66 }
67
OnDlpAbilityOpened(const AbilityRuntime::DlpStateData & data)68 void ConnectionSubscriber::OnDlpAbilityOpened(const AbilityRuntime::DlpStateData& data)
69 {
70 RESSCHED_LOGD("Ressched ConnectionSubscriber OnDlpAbilityOpened");
71 nlohmann::json payload;
72 MarshallingDlpStateData(data, payload);
73 ResSchedUtils::GetInstance().ReportDataInProcess(
74 ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::DLP_ABILITY_OPENED, payload);
75 }
76
OnDlpAbilityClosed(const AbilityRuntime::DlpStateData & data)77 void ConnectionSubscriber::OnDlpAbilityClosed(const AbilityRuntime::DlpStateData& data)
78 {
79 RESSCHED_LOGD("Ressched ConnectionSubscriber OnDlpAbilityClosed");
80 nlohmann::json payload;
81 MarshallingDlpStateData(data, payload);
82 ResSchedUtils::GetInstance().ReportDataInProcess(
83 ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::DLP_ABILITY_CLOSED, payload);
84 }
85
OnServiceDied()86 void ConnectionSubscriber::OnServiceDied()
87 {}
88 } // namespace ResourceSchedule
89 } // namespace OHOS
90