• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2024 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 TELEPHONY_EXT_WRAPPER_H
17 #define TELEPHONY_EXT_WRAPPER_H
18 
19 #include "nocopyable.h"
20 #include "singleton.h"
21 #include "network_state.h"
22 #include "network_search_types.h"
23 #include "network_search_result.h"
24 #include "signal_information.h"
25 #include "network_state.h"
26 #include "cell_information.h"
27 #include "want.h"
28 #include "i_icc_file.h"
29 #include "sim_state_type.h"
30 #include "tel_ril_types.h"
31 #include "operator_name_params.h"
32 
33 namespace OHOS {
34 namespace Telephony {
35 
36 enum class SimSlotType {
37     INVALID_SLOT_ID = -1,
38     VSIM_SLOT_ID = 2,
39 };
40 
41 class TelephonyExtWrapper final {
42 DECLARE_DELAYED_REF_SINGLETON(TelephonyExtWrapper);
43 
44 public:
45     DISALLOW_COPY_AND_MOVE(TelephonyExtWrapper);
46     void InitTelephonyExtWrapper();
47     void DeInitTelephonyExtWrapper();
48 
49     typedef bool (*CHECK_OPC_VERSION_IS_UPDATE)(void);
50     typedef void (*UPDATE_OPC_VERSION)(void);
51     typedef void (*GET_VOICE_MAIL_ICCID_PARAMETER)(int32_t slotId, const char* iccid, std::string &number);
52     typedef void (*SET_VOICE_MAIL_ICCID_PARAMETER)(int32_t, const char*, const char*);
53     typedef void (*INIT_VOICE_MAIL_MANAGER_EXT)(int32_t);
54     typedef void (*DEINIT_VOICE_MAIL_MANAGER_EXT)(int32_t);
55     typedef void (*RESET_VOICE_MAIL_LOADED_FLAG_EXT)(int32_t);
56     typedef void (*SET_VOICE_MAIL_ON_SIM_EXT)(int32_t, const char*, const char*);
57     typedef bool (*GET_VOICE_MAIL_FIXED_EXT)(int32_t, const char*);
58     typedef void (*GET_VOICE_MAIL_NUMBER_EXT)(int32_t slotId, const char* carrier, std::string &number);
59     typedef void (*GET_VOICE_MAIL_TAG_EXT)(int32_t slotId, const char* carrier, std::string &tag);
60     typedef void (*RESET_VOICE_MAIL_MANAGER_EXT)(int32_t);
61     typedef void (*GET_NETWORK_STATUS_EXT)(int32_t slotId, sptr<OHOS::Telephony::NetworkState> &networkState);
62 
63     typedef int32_t (*GET_CELL_INFO_LIST)(int32_t slotId, std::vector<sptr<OHOS::Telephony::CellInformation>> &cells);
64     typedef void (*GET_RADIO_TECH_EXT)(int32_t slotId, int32_t &domainRadioTech);
65     typedef void (*GET_NR_OPTION_MODE_EXT)(int32_t slotId, int32_t &mode);
66     typedef void (*GET_NR_OPTION_MODE_EXTEND)(int32_t slotId, OHOS::Telephony::NrMode &mode);
67     typedef void (*GET_PREFERRED_NETWORK_EXT)(int32_t &preferredNetworkType);
68     typedef bool (*IS_CHIPSET_NETWORK_EXT_SUPPORTED)();
69     typedef bool (*IS_NR_SUPPORTED_NATIVE)(int32_t modemRaf);
70     typedef void (*GET_SIGNAL_INFO_LIST_EXT)(int32_t slotId,
71 	    std::vector<sptr<OHOS::Telephony::SignalInformation>> &signals);
72     typedef void (*GET_NETWORK_CAPABILITY_EXT)(int32_t slotId, int32_t networkCapabilityType,
73 	    int32_t &networkCapabilityState);
74     typedef void (*ON_GET_NETWORK_SEARCH_INFORMATION_EXT)(int32_t &availableSize,
75         std::vector<OHOS::Telephony::NetworkInformation> &networkInformations);
76     typedef void (*CREATE_ICC_FILE_EXT)(int32_t slotId, std::shared_ptr<OHOS::Telephony::IIccFileExt> iccFileExt);
77 
78     typedef void (*UPDATE_COUNTRY_CODE_EXT)(int32_t, const char *);
79     typedef void (*UPDATE_TIME_ZONE_OFFSET_EXT)(int32_t, int32_t);
80     typedef void (*UPDATE_NETWORK_STATE_EXT)(int32_t slotId, std::unique_ptr<NetworkState> &networkState);
81     typedef void (*UPDATE_OPERATOR_NAME_PARAMS)(
82         int32_t slotId, sptr<OHOS::Telephony::NetworkState> &networkState, OperatorNameParams &params);
83     typedef int32_t (*UPDATE_NSA_STATE_EXT)(
84         int32_t slotId, int32_t cellId, bool endcAvailable, bool dcNrRestricted, int32_t nsaState);
85     typedef void (*PUBLISH_SPN_INFO_CHANGED_EXT)(OHOS::AAFwk::Want &want);
86     typedef void (*GET_ROAMINGBROKER_NUMERIC)(int32_t slotId, std::string &numeric);
87     typedef void (*GET_ROAMINGBROKER_IMSI)(int32_t slotId, std::string &imsi);
88     typedef bool (*SET_NR_OPTION_MODE_EXT)(int32_t slotId, int32_t masterSlotId, int32_t mode, int32_t &errCode);
89     /* add for vsim begin */
90     typedef void (*IS_VSIM_IN_STATUS)(int32_t slotId, int32_t type, bool &status);
91     typedef void (*GET_VSIM_SLOT_ID)(int32_t &slotId);
92     typedef void (*ON_ALL_FILES_FETCHED_EXT)(int32_t slotId);
93     typedef void (*PUT_VSIM_EXTRA_INFO)(OHOS::AAFwk::Want &want, int32_t slotId, int32_t value);
94     typedef void (*CHANGE_SPN_AND_RULE_EXT)(std::string &spn, int32_t &rule, bool &showSpn);
95     typedef void (*GET_VSIM_CARD_STATE)(int32_t &cardType);
96     typedef bool (*GET_SIM_ID_EXT)(int32_t slotId, int32_t &simId);
97     typedef bool (*GET_SLOT_ID_EXT)(int32_t simId, int32_t &slotId);
98     typedef bool (*IS_HANDLE_VSIM)(void);
99     typedef bool (*IS_VSIM_ENABLED)(void);
100     typedef void (*UPDATE_SUB_STATE)(int32_t slotId, int32_t subState);
101     typedef bool (*IS_IN_ENABLE_DISABLE_VSIM)(void);
102     /* add for vsim end */
103     typedef bool (*SEND_EVENT)(std::shared_ptr<std::string> cmdData, int32_t slotId);
104     typedef bool (*INIT_BIP)(int32_t slotId);
105     typedef bool (*IS_ALLOWED_INSERT_APN)(std::string &value);
106     typedef void (*GET_TARGET_OPKEY)(int32_t slotId, std::u16string &opkey);
107     typedef void (*SORT_SIGNAL_INFO_LIST_EXT)(
108         int32_t slotId, std::vector<sptr<OHOS::Telephony::SignalInformation>> &signals);
109     typedef void (*GET_OPKEY_VERSION)(std::string &versionInfo);
110     typedef void (*GetOpnameVersion)(std::string &versionInfo);
111 
112     typedef bool (*PROCESS_SIGNAL_INFOS)(int32_t slotId, Rssi &signalIntensity);
113     typedef bool (*PROCESS_STATE_CHANGE_EXT)(int32_t slotId, sptr<NetworkState> &ns);
114     typedef bool (*PROCESS_OPERATOR_NAME)(int32_t slotId, std::string &plmnName, const std::string &numeric);
115     typedef void (*DynamicLoadInit)(void);
116     typedef void (*DynamicLoadDeInit)(void);
117     typedef void (*UpdateHotplugCardState)(int32_t slotId, OHOS::Telephony::SimState state);
118 
119     CHECK_OPC_VERSION_IS_UPDATE checkOpcVersionIsUpdate_ = nullptr;
120     UPDATE_OPC_VERSION updateOpcVersion_ = nullptr;
121     GET_VOICE_MAIL_ICCID_PARAMETER getVoiceMailIccidParameter_ = nullptr;
122     SET_VOICE_MAIL_ICCID_PARAMETER setVoiceMailIccidParameter_ = nullptr;
123     INIT_VOICE_MAIL_MANAGER_EXT initVoiceMailManagerExt_ = nullptr;
124     DEINIT_VOICE_MAIL_MANAGER_EXT deinitVoiceMailManagerExt_ = nullptr;
125     RESET_VOICE_MAIL_LOADED_FLAG_EXT resetVoiceMailLoadedFlagExt_ = nullptr;
126     SET_VOICE_MAIL_ON_SIM_EXT setVoiceMailOnSimExt_ = nullptr;
127     GET_VOICE_MAIL_FIXED_EXT getVoiceMailFixedExt_ = nullptr;
128     GET_VOICE_MAIL_NUMBER_EXT getVoiceMailNumberExt_ = nullptr;
129     GET_VOICE_MAIL_TAG_EXT getVoiceMailTagExt_ = nullptr;
130     RESET_VOICE_MAIL_MANAGER_EXT resetVoiceMailManagerExt_ = nullptr;
131     GET_NETWORK_STATUS_EXT getNetworkStatusExt_ = nullptr;
132 
133     GET_CELL_INFO_LIST getCellInfoList_ = nullptr;
134     GET_RADIO_TECH_EXT getRadioTechExt_ = nullptr;
135     GET_NR_OPTION_MODE_EXT getNrOptionModeExt_ = nullptr;
136     GET_NR_OPTION_MODE_EXTEND getNrOptionModeExtend_ = nullptr;
137     GET_PREFERRED_NETWORK_EXT getPreferredNetworkExt_ = nullptr;
138     IS_CHIPSET_NETWORK_EXT_SUPPORTED isChipsetNetworkExtSupported_ = nullptr;
139     IS_NR_SUPPORTED_NATIVE isNrSupportedNative_ = nullptr;
140     GET_SIGNAL_INFO_LIST_EXT getSignalInfoListExt_ = nullptr;
141     GET_NETWORK_CAPABILITY_EXT getNetworkCapabilityExt_ = nullptr;
142     ON_GET_NETWORK_SEARCH_INFORMATION_EXT onGetNetworkSearchInformationExt_ = nullptr;
143     CREATE_ICC_FILE_EXT createIccFileExt_ = nullptr;
144     UPDATE_NETWORK_STATE_EXT updateNetworkStateExt_ = nullptr;
145     UPDATE_OPERATOR_NAME_PARAMS updateOperatorNameParamsExt_ = nullptr;
146     UPDATE_NSA_STATE_EXT updateNsaStateExt_ = nullptr;
147     PUBLISH_SPN_INFO_CHANGED_EXT publishSpnInfoChangedExt_ = nullptr;
148 
149     UPDATE_COUNTRY_CODE_EXT updateCountryCodeExt_ = nullptr;
150     UPDATE_TIME_ZONE_OFFSET_EXT updateTimeZoneOffsetExt_ = nullptr;
151     SET_NR_OPTION_MODE_EXT setNrOptionModeExt_ = nullptr;
152 
153     /* add for vsim begin */
154     IS_VSIM_IN_STATUS isVSimInStatus_ = nullptr;
155     GET_VSIM_SLOT_ID getVSimSlotId_ = nullptr;
156     ON_ALL_FILES_FETCHED_EXT onAllFilesFetchedExt_ = nullptr;
157     PUT_VSIM_EXTRA_INFO putVSimExtraInfo_ = nullptr;
158     CHANGE_SPN_AND_RULE_EXT changeSpnAndRuleExt_ = nullptr;
159     GET_VSIM_CARD_STATE getVSimCardState_ = nullptr;
160     GET_SIM_ID_EXT getSimIdExt_ = nullptr;
161     GET_SLOT_ID_EXT getSlotIdExt_ = nullptr;
162     IS_HANDLE_VSIM isHandleVSim_ = nullptr;
163     IS_VSIM_ENABLED isVSimEnabled_ = nullptr;
164     UPDATE_SUB_STATE updateSubState_ = nullptr;
165     IS_IN_ENABLE_DISABLE_VSIM isInEnaDisableVSim_ = nullptr;
166     /* add for vsim end */
167     SEND_EVENT sendEvent_ = nullptr;
168     INIT_BIP initBip_ = nullptr;
169     IS_ALLOWED_INSERT_APN isAllowedInsertApn_ = nullptr;
170     GET_TARGET_OPKEY getTargetOpkey_ = nullptr;
171     SORT_SIGNAL_INFO_LIST_EXT sortSignalInfoListExt_ = nullptr;
172     GET_OPKEY_VERSION getOpkeyVersion_ = nullptr;
173     GetOpnameVersion getOpnameVersion_ = nullptr;
174     GET_ROAMINGBROKER_NUMERIC getRoamingBrokerNumeric_ = nullptr;
175     GET_ROAMINGBROKER_IMSI getRoamingBrokerImsi_ = nullptr;
176     PROCESS_SIGNAL_INFOS processSignalInfos_ = nullptr;
177     PROCESS_STATE_CHANGE_EXT processStateChangeExt_ = nullptr;
178     PROCESS_OPERATOR_NAME processOperatorName_ = nullptr;
179     DynamicLoadInit dynamicLoadInit_ = nullptr;
180     DynamicLoadDeInit dynamicLoadDeInit_ = nullptr;
181     UpdateHotplugCardState updateHotPlugCardState_ = nullptr;
182 
183 private:
184     void* telephonyExtWrapperHandle_ = nullptr;
185     void* telephonyVSimWrapperHandle_ = nullptr;
186     void* telephonyDynamicLoadWrapperHandle_ = nullptr;
187     void InitTelephonyExtWrapperForNetWork();
188     void InitTelephonyExtWrapperForNetWork1();
189     void InitTelephonyExtWrapperForVoiceMail();
190     void InitTelephonyExtWrapperForCust();
191     void InitTelephonyExtWrapperForVSim();
192     void InitTelephonyExtWrapperForApnCust();
193     void InitTelephonyExtWrapperForSim();
194     void InitTelephonyExtWrapperForOpkeyVersion();
195     void InitTelephonyExtWrapperForOpnameVersion();
196     void InitTelephonyExtWrapperForDynamicLoad();
197 };
198 
199 #define TELEPHONY_EXT_WRAPPER ::OHOS::DelayedRefSingleton<TelephonyExtWrapper>::GetInstance()
200 } // namespace Telephony
201 } // namespace OHOS
202 #endif // TELEPHONY_EXT_WRAPPER_H
203