125c1cde8Sopenharmony_ci/*
225c1cde8Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
325c1cde8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
425c1cde8Sopenharmony_ci * you may not use this file except in compliance with the License.
525c1cde8Sopenharmony_ci * You may obtain a copy of the License at
625c1cde8Sopenharmony_ci *
725c1cde8Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
825c1cde8Sopenharmony_ci *
925c1cde8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1025c1cde8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1125c1cde8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1225c1cde8Sopenharmony_ci * See the License for the specific language governing permissions and
1325c1cde8Sopenharmony_ci * limitations under the License.
1425c1cde8Sopenharmony_ci */
1525c1cde8Sopenharmony_ci
1625c1cde8Sopenharmony_ci#ifndef DATA_STORAGE_PDP_PROFILE_DATA_H
1725c1cde8Sopenharmony_ci#define DATA_STORAGE_PDP_PROFILE_DATA_H
1825c1cde8Sopenharmony_ci
1925c1cde8Sopenharmony_cinamespace OHOS {
2025c1cde8Sopenharmony_cinamespace Telephony {
2125c1cde8Sopenharmony_ciclass PdpProfileData {
2225c1cde8Sopenharmony_cipublic:
2325c1cde8Sopenharmony_ci    /**
2425c1cde8Sopenharmony_ci     * @brief Operator id
2525c1cde8Sopenharmony_ci     */
2625c1cde8Sopenharmony_ci    static constexpr const char *PROFILE_ID = "profile_id";
2725c1cde8Sopenharmony_ci    /**
2825c1cde8Sopenharmony_ci     * @brief Operator name
2925c1cde8Sopenharmony_ci     */
3025c1cde8Sopenharmony_ci    static constexpr const char *PROFILE_NAME = "profile_name";
3125c1cde8Sopenharmony_ci    /**
3225c1cde8Sopenharmony_ci     * @brief Operator key
3325c1cde8Sopenharmony_ci     */
3425c1cde8Sopenharmony_ci    static constexpr const char *OPKEY = "opkey";
3525c1cde8Sopenharmony_ci    /**
3625c1cde8Sopenharmony_ci     * @brief Mobile country code
3725c1cde8Sopenharmony_ci     */
3825c1cde8Sopenharmony_ci    static constexpr const char *MCC = "mcc";
3925c1cde8Sopenharmony_ci    /**
4025c1cde8Sopenharmony_ci     * @brief Mobile network code
4125c1cde8Sopenharmony_ci     */
4225c1cde8Sopenharmony_ci    static constexpr const char *MNC = "mnc";
4325c1cde8Sopenharmony_ci    /**
4425c1cde8Sopenharmony_ci     * @brief Mobile country code and mobile network code
4525c1cde8Sopenharmony_ci     */
4625c1cde8Sopenharmony_ci    static constexpr const char *MCCMNC = "mccmnc";
4725c1cde8Sopenharmony_ci    /**
4825c1cde8Sopenharmony_ci     * @brief APN name
4925c1cde8Sopenharmony_ci     */
5025c1cde8Sopenharmony_ci    static constexpr const char *APN = "apn";
5125c1cde8Sopenharmony_ci    /**
5225c1cde8Sopenharmony_ci     * @brief Authentication type
5325c1cde8Sopenharmony_ci     */
5425c1cde8Sopenharmony_ci    static constexpr const char *AUTH_TYPE = "auth_type";
5525c1cde8Sopenharmony_ci    /**
5625c1cde8Sopenharmony_ci     * @brief Authentication user
5725c1cde8Sopenharmony_ci     */
5825c1cde8Sopenharmony_ci    static constexpr const char *AUTH_USER = "auth_user";
5925c1cde8Sopenharmony_ci    /**
6025c1cde8Sopenharmony_ci     * @brief Authentication password
6125c1cde8Sopenharmony_ci     */
6225c1cde8Sopenharmony_ci    static constexpr const char *AUTH_PWD = "auth_pwd";
6325c1cde8Sopenharmony_ci    /**
6425c1cde8Sopenharmony_ci     * @brief APN type
6525c1cde8Sopenharmony_ci     */
6625c1cde8Sopenharmony_ci    static constexpr const char *APN_TYPES = "apn_types";
6725c1cde8Sopenharmony_ci    /**
6825c1cde8Sopenharmony_ci     * @brief Roaming or not
6925c1cde8Sopenharmony_ci     */
7025c1cde8Sopenharmony_ci    static constexpr const char *IS_ROAMING_APN = "is_roaming_apn";
7125c1cde8Sopenharmony_ci    /**
7225c1cde8Sopenharmony_ci     * @brief Operator enable or not
7325c1cde8Sopenharmony_ci     */
7425c1cde8Sopenharmony_ci    static constexpr const char *PROFILE_ENABLE = "profile_enable";
7525c1cde8Sopenharmony_ci    /**
7625c1cde8Sopenharmony_ci     * @brief Mms center url
7725c1cde8Sopenharmony_ci     */
7825c1cde8Sopenharmony_ci    static constexpr const char *HOME_URL = "home_url";
7925c1cde8Sopenharmony_ci    /**
8025c1cde8Sopenharmony_ci     * @brief Mms proxy ip address and port
8125c1cde8Sopenharmony_ci     */
8225c1cde8Sopenharmony_ci    static constexpr const char *PROXY_IP_ADDRESS = "proxy_ip_address";
8325c1cde8Sopenharmony_ci    /**
8425c1cde8Sopenharmony_ci     * @brief Mms ip address and port
8525c1cde8Sopenharmony_ci     */
8625c1cde8Sopenharmony_ci    static constexpr const char *MMS_IP_ADDRESS = "mms_ip_address";
8725c1cde8Sopenharmony_ci    /**
8825c1cde8Sopenharmony_ci     * @brief Protocol to connect to the APN
8925c1cde8Sopenharmony_ci     */
9025c1cde8Sopenharmony_ci    static constexpr const char *APN_PROTOCOL = "apn_protocol";
9125c1cde8Sopenharmony_ci    /**
9225c1cde8Sopenharmony_ci     * @brief Protocol to connect to the APN when roaming
9325c1cde8Sopenharmony_ci     */
9425c1cde8Sopenharmony_ci    static constexpr const char *APN_ROAM_PROTOCOL = "apn_roam_protocol";
9525c1cde8Sopenharmony_ci    /**
9625c1cde8Sopenharmony_ci     * @brief Radio access family bitmask
9725c1cde8Sopenharmony_ci     */
9825c1cde8Sopenharmony_ci    static constexpr const char *BEARING_SYSTEM_TYPE = "bearing_system_type";
9925c1cde8Sopenharmony_ci    /**
10025c1cde8Sopenharmony_ci     * @brief MVNO match type
10125c1cde8Sopenharmony_ci     */
10225c1cde8Sopenharmony_ci    static constexpr const char *MVNO_TYPE = "mvno_type";
10325c1cde8Sopenharmony_ci    /**
10425c1cde8Sopenharmony_ci     * @brief MVNO match data
10525c1cde8Sopenharmony_ci     */
10625c1cde8Sopenharmony_ci    static constexpr const char *MVNO_MATCH_DATA = "mvno_match_data";
10725c1cde8Sopenharmony_ci    /**
10825c1cde8Sopenharmony_ci     * @brief APN edit status
10925c1cde8Sopenharmony_ci     */
11025c1cde8Sopenharmony_ci    static constexpr const char *EDITED_STATUS = "edited";
11125c1cde8Sopenharmony_ci    /**
11225c1cde8Sopenharmony_ci     * @brief Server address
11325c1cde8Sopenharmony_ci     */
11425c1cde8Sopenharmony_ci    static constexpr const char *SERVER = "server";
11525c1cde8Sopenharmony_ci    /**
11625c1cde8Sopenharmony_ci     * @brief SIM Id of the SIM card
11725c1cde8Sopenharmony_ci     */
11825c1cde8Sopenharmony_ci    static constexpr const char *SIM_ID = "sim_id";
11925c1cde8Sopenharmony_ci};
12025c1cde8Sopenharmony_ci
12125c1cde8Sopenharmony_cistruct PdpProfile {
12225c1cde8Sopenharmony_ci    int profileId = 0;
12325c1cde8Sopenharmony_ci    std::string profileName = "";
12425c1cde8Sopenharmony_ci    std::string mcc = "";
12525c1cde8Sopenharmony_ci    std::string mnc = "";
12625c1cde8Sopenharmony_ci    std::string apn = "";
12725c1cde8Sopenharmony_ci    int authType = 0;
12825c1cde8Sopenharmony_ci    std::string authUser = "";
12925c1cde8Sopenharmony_ci    std::string authPwd = "";
13025c1cde8Sopenharmony_ci    std::string apnTypes = ""; // see ApnType
13125c1cde8Sopenharmony_ci    int isRoamingApn = 1;
13225c1cde8Sopenharmony_ci    std::string homeUrl = "";
13325c1cde8Sopenharmony_ci    std::string proxyIpAddress = "";
13425c1cde8Sopenharmony_ci    std::string mmsIpAddress = "";
13525c1cde8Sopenharmony_ci    std::string pdpProtocol = ""; // see PdpProtocol
13625c1cde8Sopenharmony_ci    std::string roamPdpProtocol = "";
13725c1cde8Sopenharmony_ci    int bearingSystemType = 0; // see BearingSystemType
13825c1cde8Sopenharmony_ci    std::string mvnoType = "";
13925c1cde8Sopenharmony_ci    std::string mvnoMatchData = "";
14025c1cde8Sopenharmony_ci    int edited = 0;
14125c1cde8Sopenharmony_ci    std::string server = "";
14225c1cde8Sopenharmony_ci};
14325c1cde8Sopenharmony_ci
14425c1cde8Sopenharmony_ciclass MvnoType {
14525c1cde8Sopenharmony_cipublic:
14625c1cde8Sopenharmony_ci    inline static const std::string SPN = "spn";
14725c1cde8Sopenharmony_ci    inline static const std::string IMSI = "imsi";
14825c1cde8Sopenharmony_ci    inline static const std::string GID1 = "gid1";
14925c1cde8Sopenharmony_ci    inline static const std::string ICCID = "iccid";
15025c1cde8Sopenharmony_ci};
15125c1cde8Sopenharmony_ci
15225c1cde8Sopenharmony_cienum class ApnType {
15325c1cde8Sopenharmony_ci    DEFAULT, IMS, MMS, ALL
15425c1cde8Sopenharmony_ci};
15525c1cde8Sopenharmony_ci
15625c1cde8Sopenharmony_cienum class ApnAuthType {
15725c1cde8Sopenharmony_ci    None = 0, PAP, CHAP, PAP_OR_CHAP
15825c1cde8Sopenharmony_ci};
15925c1cde8Sopenharmony_ci
16025c1cde8Sopenharmony_cienum class PdpProtocol {
16125c1cde8Sopenharmony_ci    IPV4 = 0, IPV6, IPV4V6
16225c1cde8Sopenharmony_ci};
16325c1cde8Sopenharmony_ci
16425c1cde8Sopenharmony_cienum class BearingSystemType {
16525c1cde8Sopenharmony_ci    UNKNOWN = 0,
16625c1cde8Sopenharmony_ci    LTE,
16725c1cde8Sopenharmony_ci    HSPAP,
16825c1cde8Sopenharmony_ci    HSPA,
16925c1cde8Sopenharmony_ci    HSUPA,
17025c1cde8Sopenharmony_ci    HSDPA,
17125c1cde8Sopenharmony_ci    UMTS,
17225c1cde8Sopenharmony_ci    EDGE,
17325c1cde8Sopenharmony_ci    GPRS,
17425c1cde8Sopenharmony_ci    eHRPD,
17525c1cde8Sopenharmony_ci    EVDO_B,
17625c1cde8Sopenharmony_ci    EVDO_A,
17725c1cde8Sopenharmony_ci    EVDO_0,
17825c1cde8Sopenharmony_ci    xRTT,
17925c1cde8Sopenharmony_ci    IS95B,
18025c1cde8Sopenharmony_ci    IS95AS
18125c1cde8Sopenharmony_ci};
18225c1cde8Sopenharmony_ci
18325c1cde8Sopenharmony_ciinline static const std::string PREFER_APN_ID = "preferapn_id";
18425c1cde8Sopenharmony_ciinline static const std::string APN_CONF_CHECKSUM = "apn_conf_checksum";
18525c1cde8Sopenharmony_ciconstexpr const int32_t DEFAULT_SIM_ID = 0;
18625c1cde8Sopenharmony_ciconstexpr const int32_t INVALID_PROFILE_ID = -1;
18725c1cde8Sopenharmony_ciconstexpr const char *INVALID_OPKEY = "-1";
18825c1cde8Sopenharmony_ciconstexpr const char *TABLE_PDP_PROFILE = "pdp_profile";
18925c1cde8Sopenharmony_ciconstexpr const char *TEMP_TABLE_PDP_PROFILE = "temp_pdp_profile";
19025c1cde8Sopenharmony_ciconstexpr const char *PDP_PROFILE_URI = "datashare:///com.ohos.pdpprofileability";
19125c1cde8Sopenharmony_ci} // namespace Telephony
19225c1cde8Sopenharmony_ci} // namespace OHOS
19325c1cde8Sopenharmony_ci#endif // DATA_STORAGE_PDP_PROFILE_DATA_H
194