• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "res_type.h"
20 
21 namespace OHOS {
22 namespace ResourceSchedule {
MarshallingConnectionData(const AbilityRuntime::ConnectionData & data,nlohmann::json & payload)23 void ConnectionSubscriber::MarshallingConnectionData(
24     const AbilityRuntime::ConnectionData& data, nlohmann::json &payload)
25 {
26     payload["extensionPid"] = data.extensionPid;
27     payload["extensionUid"] = data.extensionUid;
28     payload["extensionBundleName"] = data.extensionBundleName;
29     payload["extensionModuleName"] = data.extensionModuleName;
30     payload["extensionName"] = data.extensionName;
31     payload["extensionType"] = static_cast<uint32_t>(data.extensionType);
32     payload["callerUid"] = data.callerUid;
33     payload["callerPid"] = data.callerPid;
34     payload["callerName"] = data.callerName;
35     payload["isSuspended"] = data.isSuspended;
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     ResSchedMgr::GetInstance().ReportData(
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     ResSchedMgr::GetInstance().ReportData(
53         ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::EXTENSION_DISCONNECTED, payload);
54 }
55 
OnExtensionSuspended(const AbilityRuntime::ConnectionData & data)56 void ConnectionSubscriber::OnExtensionSuspended(const AbilityRuntime::ConnectionData& data)
57 {
58     RESSCHED_LOGD("Ressched ConnectionSubscriber OnExtensionSuspended");
59     nlohmann::json payload;
60     MarshallingConnectionData(data, payload);
61     ResSchedMgr::GetInstance().ReportData(
62         ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::EXTENSION_SUSPENDED, payload);
63 }
64 
OnExtensionResumed(const AbilityRuntime::ConnectionData & data)65 void ConnectionSubscriber::OnExtensionResumed(const AbilityRuntime::ConnectionData& data)
66 {
67     RESSCHED_LOGD("Ressched ConnectionSubscriber OnExtensionResumed");
68     nlohmann::json payload;
69     MarshallingConnectionData(data, payload);
70     ResSchedMgr::GetInstance().ReportData(
71         ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::EXTENSION_RESUMED, payload);
72 }
73 
MarshallingDlpStateData(const AbilityRuntime::DlpStateData & data,nlohmann::json & payload)74 void ConnectionSubscriber::MarshallingDlpStateData(const AbilityRuntime::DlpStateData& data, nlohmann::json &payload)
75 {
76     payload["targetPid"] = data.targetPid;
77     payload["targetUid"] = data.targetUid;
78     payload["targetBundleName"] = data.targetBundleName;
79     payload["targetModuleName"] = data.targetModuleName;
80     payload["targetAbilityName"] = data.targetAbilityName;
81     payload["callerUid"] = data.callerUid;
82     payload["callerPid"] = data.callerPid;
83     payload["callerName"] = data.callerName;
84 }
85 
OnDlpAbilityOpened(const AbilityRuntime::DlpStateData & data)86 void ConnectionSubscriber::OnDlpAbilityOpened(const AbilityRuntime::DlpStateData& data)
87 {
88     RESSCHED_LOGD("Ressched ConnectionSubscriber OnDlpAbilityOpened");
89     nlohmann::json payload;
90     MarshallingDlpStateData(data, payload);
91     ResSchedMgr::GetInstance().ReportData(
92         ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::DLP_ABILITY_OPENED, payload);
93 }
94 
OnDlpAbilityClosed(const AbilityRuntime::DlpStateData & data)95 void ConnectionSubscriber::OnDlpAbilityClosed(const AbilityRuntime::DlpStateData& data)
96 {
97     RESSCHED_LOGD("Ressched ConnectionSubscriber OnDlpAbilityClosed");
98     nlohmann::json payload;
99     MarshallingDlpStateData(data, payload);
100     ResSchedMgr::GetInstance().ReportData(
101         ResType::RES_TYPE_CONNECTION_OBSERVER, ResType::ConnectionObserverStatus::DLP_ABILITY_CLOSED, payload);
102 }
103 
OnServiceDied()104 void ConnectionSubscriber::OnServiceDied()
105 {}
106 } // namespace ResourceSchedule
107 } // namespace OHOS
108