1 /*
2  * Copyright (C) 2021-2022 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 #ifndef IMPL_CORE_MANAGER_INNER_H
17 #define IMPL_CORE_MANAGER_INNER_H
18 
19 #include <thread>
20 #include <unistd.h>
21 
22 #include "i_network_search.h"
23 #include "i_sim_manager.h"
24 #include "i_tel_ril_manager.h"
25 #include "sim_account_callback.h"
26 #include "telephony_errors.h"
27 #include "telephony_types.h"
28 
29 namespace OHOS {
30 namespace Telephony {
31 class CoreManagerInner final {
32 public:
33     ~CoreManagerInner() = default;
34     DISALLOW_COPY_AND_MOVE(CoreManagerInner);
35     static CoreManagerInner &GetInstance();
36     void OnInit(std::shared_ptr<INetworkSearch> networkSearchManager,
37         std::shared_ptr<Telephony::ISimManager> simManager, std::shared_ptr<ITelRilManager> telRilManager);
38     void SetTelRilMangerObj(std::shared_ptr<ITelRilManager> telRilManager);
39     int32_t RegisterCoreNotify(
40         int32_t slotId, const std::shared_ptr<AppExecFwk::EventHandler> &handler, int what, int32_t *obj);
41     int32_t UnRegisterCoreNotify(
42         int32_t slotId, const std::shared_ptr<AppExecFwk::EventHandler> &observerCallBack, int what);
43     void RegisterCellularDataObject(const sptr<NetworkSearchCallBackBase> &callback);
44     void UnRegisterCellularDataObject(const sptr<NetworkSearchCallBackBase> &callback);
45     void RegisterCellularCallObject(const sptr<NetworkSearchCallBackBase> &callback);
46     void UnRegisterCellularCallObject(const sptr<NetworkSearchCallBackBase> &callback);
47     bool IsInitFinished(void);
48     bool IsInitFinishedForTelRil(void);
49     int32_t InitExtraModule(int32_t slotId);
50     int32_t GetDefaultSlotId(void);
51     int32_t GetMaxSimCount(void);
52     int32_t RegisterSimAccountCallback(const int32_t tokenId, const sptr<SimAccountCallback> &callback);
53     int32_t UnregisterSimAccountCallback(const int32_t tokenId);
54 
55     /******************** telRilManager start *******************/
56     int32_t SetRadioState(
57         int32_t slotId, int32_t eventId, int fun, int rst, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
58     int32_t GetRadioState(
59         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
60     int32_t ShutDown(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
61     int32_t Dial(int32_t slotId, int32_t eventId, std::string address, int clirMode,
62         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
63     int32_t Reject(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
64     int32_t Hangup(
65         int32_t slotId, int32_t eventId, int32_t gsmIndex, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
66     int32_t Answer(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
67     int32_t GetCallList(
68         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
69     int32_t HoldCall(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
70     int32_t UnHoldCall(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
71     int32_t SwitchCall(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
72     int32_t CombineConference(
73         int32_t slotId, int32_t eventId, int32_t callType, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
74     int32_t SeparateConference(int32_t slotId, int32_t eventId, int32_t callIndex, int32_t callType,
75         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
76     int32_t CallSupplement(
77         int32_t slotId, int32_t eventId, int32_t type, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
78     int32_t GetClip(int32_t slotId, const AppExecFwk::InnerEvent::Pointer &response) const;
79     int32_t SetClip(int32_t slotId, int32_t action, const AppExecFwk::InnerEvent::Pointer &response);
80     int32_t GetClir(int32_t slotId, const AppExecFwk::InnerEvent::Pointer &response) const;
81     int32_t SetClir(int32_t slotId, int32_t action, const AppExecFwk::InnerEvent::Pointer &response);
82     int32_t SetCallWaiting(int32_t slotId, int32_t activate, const AppExecFwk::InnerEvent::Pointer &response);
83     int32_t SetCallTransferInfo(
84         int32_t slotId, const CallTransferParam &callTransfer, const AppExecFwk::InnerEvent::Pointer &response);
85     int32_t GetCallTransferInfo(
86         int32_t slotId, const int32_t reason, const AppExecFwk::InnerEvent::Pointer &response) const;
87     int32_t GetCallWaiting(int32_t slotId, const AppExecFwk::InnerEvent::Pointer &response) const;
88     int32_t GetCallRestriction(int32_t slotId, std::string fac, const AppExecFwk::InnerEvent::Pointer &response) const;
89     int32_t SetCallRestriction(
90         int32_t slotId, const CallRestrictionParam &callRestriction, const AppExecFwk::InnerEvent::Pointer &response);
91     int32_t SetBarringPassword(int32_t slotId, const char *oldPassword,
92         const char *newPassword, const std::string &restrictionType, const AppExecFwk::InnerEvent::Pointer &response);
93     int32_t SetVoNRSwitch(
94         int32_t slotId, int32_t state, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
95     /* PDP start */
96     int32_t SetDataPermitted(int32_t slotId, int32_t eventId, int32_t dataPermitted,
97         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
98     int32_t SetInitApnInfo(int32_t slotId, int32_t eventId, const DataProfile &dataProfile,
99         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
100     int32_t ActivatePdpContext(int32_t slotId, int32_t eventId, const ActivateDataParam &activateData,
101         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
102     int32_t DeactivatePdpContext(int32_t slotId, int32_t eventId, const DeactivateDataParam &deactivateData,
103         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
104     int32_t GetPdpContextList(
105         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
106     int32_t GetLinkBandwidthInfo(
107         int32_t slotId, int32_t eventId, const int32_t cid, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
108     int32_t GetLinkCapability(
109         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
110     int32_t SetLinkBandwidthReportingRule(int32_t slotId, int32_t eventId, LinkBandwidthRule linkBandwidth,
111         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
112     int32_t CleanAllConnections(
113         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
114     /* PDP end */
115     int32_t StopDTMF(
116         int32_t slotId, int32_t eventId, int32_t index, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
117     int32_t StartDTMF(int32_t slotId, int32_t eventId, char cDTMFCode, int32_t index,
118         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
119     int32_t SendDTMF(int32_t slotId, int32_t eventId, char cDTMFCode, int32_t index,
120         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
121     int32_t SendDTMF(int32_t slotId, int32_t eventId, const DtmfParam &dtmfParam,
122         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
123 
124     int32_t GetSignalStrength(
125         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
126     int32_t GetCsRegStatus(
127         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
128     int32_t GetPsRegStatus(
129         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
130     int32_t SetCallPreferenceMode(
131         int32_t slotId, int32_t eventId, int32_t mode, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
132     int32_t GetCallPreferenceMode(
133         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
134     int32_t SetUssd(int32_t slotId, int32_t eventId, const std::string str,
135         const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
136     int32_t GetUssd(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
137     int32_t CloseUnFinishedUssd(
138         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
139     int32_t GetMute(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
140     int32_t SetMute(
141         int32_t slotId, int32_t eventId, int32_t mute, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
142     int32_t GetEmergencyCallList(
143         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
144     int32_t SetEmergencyCallList(int32_t slotId, int32_t eventId, std::vector<EmergencyCall> &eccVec,
145         const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
146     int32_t GetCallFailReason(
147         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
148     int32_t GetOperatorInfo(
149         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
150     int32_t GetCellInfoList(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
151     int32_t GetCurrentCellInfo(
152         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
153 
154     int32_t SendGsmSms(int32_t slotId, int32_t eventId, GsmSimMessageParam &gsmMessage,
155         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
156     int32_t SendCdmaSms(int32_t slotId, int32_t eventId, std::string pdu, int64_t refId,
157         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
158     int32_t AddSimMessage(int32_t slotId, int32_t eventId, const SimMessageParam &simMessage,
159         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
160     int32_t GetSmscAddr(
161         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
162     int32_t GetCdmaCBConfig(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
163     int32_t SetSmscAddr(int32_t slotId, int32_t eventId, int32_t tosca, std::string address,
164         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
165     int32_t DelSimMessage(
166         int32_t slotId, int32_t eventId, int32_t gsmIndex, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
167     int32_t SendSmsMoreMode(int32_t slotId, int32_t eventId, GsmSimMessageParam &gsmMessage,
168         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
169     int32_t SendSmsAck(int32_t slotId, int32_t eventId, bool success, int32_t cause,
170         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
171     int32_t GetCBConfig(int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
172     int32_t SetCBConfig(int32_t slotId, int32_t eventId, const CBConfigParam &cbConfig,
173         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
174     int32_t SetCdmaCBConfig(int32_t slotId, int32_t eventId, CdmaCBConfigInfoList &cdmaCBConfigInfoList,
175         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
176     int32_t GetNetworkSearchInformation(
177         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
178     int32_t GetNetworkSelectionMode(
179         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler) const;
180     int32_t SetNetworkSelectionMode(int32_t slotId, int32_t eventId, int32_t automaticFlag, std::string oper,
181         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
182     int32_t AddCdmaSimMessage(int32_t slotId, int32_t eventId, int32_t status, std::string pdu,
183         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
184     int32_t DelCdmaSimMessage(
185         int32_t slotId, int32_t eventId, int32_t cdmaIndex, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
186     int32_t UpdateCdmaSimMessage(int32_t slotId, int32_t eventId, const CdmaSimMessageParam &cdmaSimMsg,
187         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
188     int32_t SetPreferredNetworkPara(int32_t slotId, int32_t eventId, int32_t preferredNetworkType,
189         const std::shared_ptr<AppExecFwk::EventHandler> &handler);
190     int32_t GetPreferredNetworkPara(
191         int32_t slotId, int32_t eventId, const std::shared_ptr<AppExecFwk::EventHandler> &handler);
192 
193     /******************** telRilManager end *******************/
194     /******************** networkSearchManager start *******************/
195     int32_t GetPsRadioTech(int32_t slotId, int32_t &psRadioTech);
196     int32_t GetCsRadioTech(int32_t slotId, int32_t &csRadioTech);
197     int32_t GetPsRegState(int32_t slotId);
198     int32_t GetCsRegState(int32_t slotId);
199     int32_t GetPsRoamingState(int32_t slotId);
200     bool SetNetworkSelectionMode(int32_t slotId, int32_t selectMode, const sptr<NetworkInformation> &networkInformation,
201         bool resumeSelection, const sptr<INetworkSearchCallback> &callback);
202     int32_t GetSignalInfoList(int32_t slotId, std::vector<sptr<SignalInformation>> &signals);
203     std::u16string GetOperatorNumeric(int32_t slotId);
204     int32_t GetOperatorName(int32_t slotId, std::u16string &operatorName);
205     int32_t GetNetworkStatus(int32_t slotId, sptr<NetworkState> &networkState);
206     int32_t SetRadioState(int32_t slotId, bool isOn, int32_t rst, const sptr<INetworkSearchCallback> &callback);
207     int32_t GetRadioState(int32_t slotId);
208     int32_t GetRadioState(int32_t slotId, const sptr<INetworkSearchCallback> &callback);
209     int32_t GetIsoCountryCodeForNetwork(int32_t slotId, std::u16string &countryCode);
210     int32_t GetImei(int32_t slotId, std::u16string &imei);
211     int32_t GetImeiSv(int32_t slotId, std::u16string &imeiSv);
212     int32_t GetMeid(int32_t slotId, std::u16string &meid);
213     int32_t GetUniqueDeviceId(int32_t slotId, std::u16string &deviceId);
214     PhoneType GetPhoneType(int32_t slotId);
215     sptr<CellLocation> GetCellLocation(int32_t slotId);
216     int32_t GetNetworkSearchInformation(int32_t slotId, const sptr<INetworkSearchCallback> &callback);
217     int32_t GetNetworkSelectionMode(int32_t slotId, const sptr<INetworkSearchCallback> &callback);
218     int32_t GetImsRegStatus(int32_t slotId, ImsServiceType imsSrvType, ImsRegInfo &info) const;
219     int32_t GetCellInfoList(int32_t slotId, std::vector<sptr<CellInformation>> &cellInfo);
220     int32_t SendUpdateCellLocationRequest(int32_t slotId);
221     int32_t GetPreferredNetwork(int32_t slotId, const sptr<INetworkSearchCallback> &callback);
222     int32_t SetPreferredNetwork(int32_t slotId, int32_t networkMode, const sptr<INetworkSearchCallback> &callback);
223     int32_t GetAirplaneMode(bool &airplaneMode);
224     int32_t UpdateRadioOn(int32_t slotId);
225 
226     bool IsNrSupported(int32_t slotId);
227     bool IsSatelliteEnabled();
228     int32_t GetNrOptionMode(int32_t slotId, NrMode &mode);
229     FrequencyType GetFrequencyType(int32_t slotId) const;
230     NrState GetNrState(int32_t slotId) const;
231     void DcPhysicalLinkActiveUpdate(int32_t slotId, bool isActive);
232     int32_t NotifyCallStatusToNetworkSearch(int32_t slotId, int32_t callStatus);
233     int32_t IsGsm(int32_t slotId, bool &isGsm);
234     int32_t IsCdma(int32_t slotId, bool &isCdma);
235     int32_t StartRadioOnState(int32_t slotId);
236     int32_t StartGetRilSignalIntensity(int32_t slotId);
237     int32_t ProcessSignalIntensity(int32_t slotId, const Rssi &signalIntensity);
238     /******************** networkSearchManager end *******************/
239     /******************** simManager start ***************************/
240     int32_t ObtainSpnCondition(int32_t slotId, bool roaming, std::string operatorNum);
241     int32_t GetSimSpn(int32_t slotId, std::u16string &spn);
242     int32_t SetVoiceMailInfo(int32_t slotId, const std::u16string &mailName, const std::u16string &mailNumber);
243     int32_t HasOperatorPrivileges(const int32_t slotId, bool &hasOperatorPrivileges);
244     int32_t SendEnvelopeCmd(int32_t slotId, const std::string &cmd);
245     int32_t SendTerminalResponseCmd(int32_t slotId, const std::string &cmd);
246     int32_t SendCallSetupRequestResult(int32_t slotId, bool accept);
247     int32_t UnlockSimLock(int32_t slotId, const PersoLockInfo &lockInfo, LockStatusResponse &response);
248     int32_t HasSimCard(int32_t slotId, bool &hasSimCard);
249     int32_t GetSimState(int32_t slotId, SimState &simState);
250     int32_t GetCardType(int32_t slotId, CardType &cardType);
251     int32_t SetModemInit(int32_t slotId, bool state);
252     int32_t UnlockPin(int32_t slotId, const std::string &pin, LockStatusResponse &response);
253     int32_t UnlockPuk(int32_t slotId, const std::string &newPin, const std::string &puk, LockStatusResponse &response);
254     int32_t AlterPin(
255         int32_t slotId, const std::string &newPin, const std::string &oldPin, LockStatusResponse &response);
256     int32_t SetLockState(int32_t slotId, const LockInfo &options, LockStatusResponse &response);
257     int32_t GetLockState(int32_t slotId, LockType lockType, LockState &lockState);
258     int32_t RefreshSimState(int32_t slotId);
259     int32_t UnlockPin2(int32_t slotId, const std::string &pin2, LockStatusResponse &response);
260     int32_t UnlockPuk2(
261         int32_t slotId, const std::string &newPin2, const std::string &puk2, LockStatusResponse &response);
262     int32_t AlterPin2(
263         int32_t slotId, const std::string &newPin2, const std::string &oldPin2, LockStatusResponse &response);
264     int32_t GetShowNumber(int32_t slotId, std::u16string &showNumber);
265     int32_t GetShowName(int32_t slotId, std::u16string &showName);
266     int32_t GetActiveSimAccountInfoList(std::vector<IccAccountInfo> &iccAccountInfoList);
267     int32_t GetOperatorConfigs(int32_t slotId, OperatorConfig &poc);
268     int32_t UpdateOperatorConfigs();
269     int32_t GetSimOperatorNumeric(int32_t slotId, std::u16string &operatorNumeric);
270     int32_t GetISOCountryCodeForSim(int32_t slotId, std::u16string &countryCode);
271     int32_t GetSimIccId(int32_t slotId, std::u16string &iccId);
272     int32_t GetIMSI(int32_t slotId, std::u16string &imsi);
273     std::u16string GetLocaleFromDefaultSim(int32_t slotId);
274     int32_t GetSlotId(int32_t simId);
275     int32_t GetSimId(int32_t slotId);
276     int32_t GetSimGid1(int32_t slotId, std::u16string &gid1);
277     std::u16string GetSimGid2(int32_t slotId);
278     int32_t GetOpName(int32_t slotId, std::u16string &opname);
279     int32_t GetOpKeyExt(int32_t slotId, std::u16string &opkeyExt);
280     int32_t GetOpKey(std::u16string &opkey);
281     int32_t GetOpKey(int32_t slotId, std::u16string &opkey);
282     int32_t GetSimTelephoneNumber(int32_t slotId, std::u16string &telephoneNumber);
283     std::u16string GetSimTeleNumberIdentifier(const int32_t slotId);
284     int32_t GetVoiceMailIdentifier(int32_t slotId, std::u16string &voiceMailIdentifier);
285     int32_t GetVoiceMailNumber(int32_t slotId, std::u16string &voiceMailNumber);
286     int32_t GetVoiceMailCount(int32_t slotId, int32_t &voiceMailCount);
287     int32_t SetVoiceMailCount(int32_t slotId, int32_t voiceMailCount);
288     int32_t SetVoiceCallForwarding(int32_t slotId, bool enable, const std::string &number);
289     std::u16string GetSimIst(int32_t slotId);
290     int32_t QueryIccDiallingNumbers(int slotId, int type, std::vector<std::shared_ptr<DiallingNumbersInfo>> &result);
291     int32_t AddIccDiallingNumbers(int slotId, int type, const std::shared_ptr<DiallingNumbersInfo> &diallingNumber);
292     int32_t DelIccDiallingNumbers(int slotId, int type, const std::shared_ptr<DiallingNumbersInfo> &diallingNumber);
293     int32_t UpdateIccDiallingNumbers(int slotId, int type, const std::shared_ptr<DiallingNumbersInfo> &diallingNumber);
294     int32_t AddSmsToIcc(int slotId, int status, std::string &pdu, std::string &smsc);
295     int32_t UpdateSmsIcc(int slotId, int index, int status, std::string &pduData, std::string &smsc);
296     int32_t DelSmsIcc(int slotId, int index);
297     std::vector<std::string> ObtainAllSmsOfIcc(int slotId);
298     bool IsSimActive(int32_t slotId);
299     int32_t SetActiveSim(int32_t slotId, int32_t enable);
300     int32_t GetSimAccountInfo(int32_t slotId, IccAccountInfo &info);
301     int32_t SetDefaultVoiceSlotId(int32_t slotId);
302     int32_t SetDefaultSmsSlotId(int32_t slotId);
303     int32_t SetDefaultCellularDataSlotId(int32_t slotId);
304     int32_t SetPrimarySlotId(int32_t slotId);
305     int32_t SetShowNumber(int32_t slotId, const std::u16string &number);
306     int32_t SetShowName(int32_t slotId, const std::u16string &name);
307     int32_t GetDefaultVoiceSlotId();
308     int32_t GetDefaultVoiceSimId(int32_t &simId);
309     int32_t GetDefaultSmsSlotId();
310     int32_t GetDefaultSmsSimId(int32_t &simId);
311     int32_t GetDefaultCellularDataSlotId();
312     int32_t GetDefaultCellularDataSimId(int32_t &simId);
313     int32_t GetPrimarySlotId(int32_t &slotId);
314     int32_t SaveImsSwitch(int32_t slotId, int32_t imsSwitchValue);
315     int32_t QueryImsSwitch(int32_t slotId, int32_t &imsSwitchValue);
316     int32_t GetDsdsMode(int32_t &dsdsMode);
317     int32_t SetDsdsMode(int32_t dsdsMode);
318     int32_t SendSimMatchedOperatorInfo(
319         int32_t slotId, int32_t state, const std::string &operName, const std::string &operKey);
320     int32_t IsCTSimCard(int32_t slotId, bool &isCTSimCard);
321     bool IsSetActiveSimInProgress(int32_t slotId);
322     bool IsSetPrimarySlotIdInProgress();
323     /******************** simManager end *****************************/
324 private:
325     CoreManagerInner();
326 
327 private:
328     bool isInitAllObj_ = false;
329     bool isInitExtraObj_ = false;
330     std::shared_ptr<INetworkSearch> networkSearchManager_ = nullptr;
331     std::shared_ptr<ISimManager> simManager_ = nullptr;
332     std::shared_ptr<ITelRilManager> telRilManager_ = nullptr;
333 };
334 } // namespace Telephony
335 } // namespace OHOS
336 #endif
337