1e5d0e473Sopenharmony_ci/* 2e5d0e473Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 3e5d0e473Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e5d0e473Sopenharmony_ci * you may not use this file except in compliance with the License. 5e5d0e473Sopenharmony_ci * You may obtain a copy of the License at 6e5d0e473Sopenharmony_ci * 7e5d0e473Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e5d0e473Sopenharmony_ci * 9e5d0e473Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e5d0e473Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e5d0e473Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e5d0e473Sopenharmony_ci * See the License for the specific language governing permissions and 13e5d0e473Sopenharmony_ci * limitations under the License. 14e5d0e473Sopenharmony_ci */ 15e5d0e473Sopenharmony_ci 16e5d0e473Sopenharmony_ci#ifndef MMS_ADDRESS_H 17e5d0e473Sopenharmony_ci#define MMS_ADDRESS_H 18e5d0e473Sopenharmony_ci 19e5d0e473Sopenharmony_ci#include <string> 20e5d0e473Sopenharmony_ci 21e5d0e473Sopenharmony_ci#include "mms_decode_buffer.h" 22e5d0e473Sopenharmony_ci#include "mms_encode_buffer.h" 23e5d0e473Sopenharmony_ci#include "mms_codec_type.h" 24e5d0e473Sopenharmony_ci 25e5d0e473Sopenharmony_cinamespace OHOS { 26e5d0e473Sopenharmony_cinamespace Telephony { 27e5d0e473Sopenharmony_ciclass MmsAddress { 28e5d0e473Sopenharmony_cipublic: 29e5d0e473Sopenharmony_ci /** 30e5d0e473Sopenharmony_ci * @brief Defines the type of mms address. 31e5d0e473Sopenharmony_ci */ 32e5d0e473Sopenharmony_ci using MmsAddressType = enum { 33e5d0e473Sopenharmony_ci /** 34e5d0e473Sopenharmony_ci * Indicates the type of mms address is unknown. 35e5d0e473Sopenharmony_ci */ 36e5d0e473Sopenharmony_ci ADDRESS_TYPE_UNKNOWN = 0, 37e5d0e473Sopenharmony_ci /** 38e5d0e473Sopenharmony_ci * Indicates the type of mms address is PLMN. 39e5d0e473Sopenharmony_ci */ 40e5d0e473Sopenharmony_ci ADDRESS_TYPE_PLMN = 1, 41e5d0e473Sopenharmony_ci /** 42e5d0e473Sopenharmony_ci * Indicates the type of mms address is IPV4. 43e5d0e473Sopenharmony_ci */ 44e5d0e473Sopenharmony_ci ADDRESS_TYPE_IPV4 = 2, 45e5d0e473Sopenharmony_ci /** 46e5d0e473Sopenharmony_ci * Indicates the type of mms address is IPV6. 47e5d0e473Sopenharmony_ci */ 48e5d0e473Sopenharmony_ci ADDRESS_TYPE_IPV6 = 3, 49e5d0e473Sopenharmony_ci /** 50e5d0e473Sopenharmony_ci * Indicates the type of mms address is EMAIL. 51e5d0e473Sopenharmony_ci */ 52e5d0e473Sopenharmony_ci ADDRESS_TYPE_EMAIL = 4, 53e5d0e473Sopenharmony_ci }; 54e5d0e473Sopenharmony_ci 55e5d0e473Sopenharmony_ci /** 56e5d0e473Sopenharmony_ci * @brief Get the Address String 57e5d0e473Sopenharmony_ci * for example: +8610086/TYPE=PLMN 58e5d0e473Sopenharmony_ci * 59e5d0e473Sopenharmony_ci * @return returns the Mms Address String 60e5d0e473Sopenharmony_ci */ 61e5d0e473Sopenharmony_ci std::string GetAddressString(); 62e5d0e473Sopenharmony_ci 63e5d0e473Sopenharmony_ci /** 64e5d0e473Sopenharmony_ci * @brief Get the Address Charset 65e5d0e473Sopenharmony_ci * for example: MmsCharSets::UTF_8 66e5d0e473Sopenharmony_ci * 67e5d0e473Sopenharmony_ci * @return returns the Address Character {@link MmsCharSets}. 68e5d0e473Sopenharmony_ci */ 69e5d0e473Sopenharmony_ci MmsCharSets GetAddressCharset(); 70e5d0e473Sopenharmony_ci 71e5d0e473Sopenharmony_ci /** 72e5d0e473Sopenharmony_ci * @brief Get the Address Type 73e5d0e473Sopenharmony_ci * for example: MmsAddressType::ADDRESS_TYPE_PLMN 74e5d0e473Sopenharmony_ci * 75e5d0e473Sopenharmony_ci * @return returns the type of mms address {@link MmsAddressType}. 76e5d0e473Sopenharmony_ci */ 77e5d0e473Sopenharmony_ci MmsAddressType GetAddressType(); 78e5d0e473Sopenharmony_ci 79e5d0e473Sopenharmony_ci /** 80e5d0e473Sopenharmony_ci * @brief Set the Mms Address String 81e5d0e473Sopenharmony_ci * for example: +8610086/TYPE=PLMN 82e5d0e473Sopenharmony_ci * 83e5d0e473Sopenharmony_ci * @param addressString the Mms Address String, for example: +8610086/TYPE=PLMN 84e5d0e473Sopenharmony_ci * @param charset the Address Character {@link MmsCharSets}. 85e5d0e473Sopenharmony_ci */ 86e5d0e473Sopenharmony_ci void SetMmsAddressString(const std::string addressString, MmsCharSets charset = MmsCharSets::UTF_8); 87e5d0e473Sopenharmony_ci 88e5d0e473Sopenharmony_ci /** 89e5d0e473Sopenharmony_ci * @brief Construct a new Mms Address 90e5d0e473Sopenharmony_ci * 91e5d0e473Sopenharmony_ci * @param addressString the Mms Address String, for example: +8610086/TYPE=PLMN 92e5d0e473Sopenharmony_ci * @param charset the Address Character {@link MmsCharSets}. 93e5d0e473Sopenharmony_ci */ 94e5d0e473Sopenharmony_ci MmsAddress(const std::string addressString, MmsCharSets charset = MmsCharSets::UTF_8); 95e5d0e473Sopenharmony_ci 96e5d0e473Sopenharmony_ci /** 97e5d0e473Sopenharmony_ci * @brief Construct a new Mms Address 98e5d0e473Sopenharmony_ci */ 99e5d0e473Sopenharmony_ci MmsAddress(); 100e5d0e473Sopenharmony_ci 101e5d0e473Sopenharmony_ci /** 102e5d0e473Sopenharmony_ci * @brief Destroy the Mms Address 103e5d0e473Sopenharmony_ci */ 104e5d0e473Sopenharmony_ci ~MmsAddress(); 105e5d0e473Sopenharmony_ciprivate: 106e5d0e473Sopenharmony_ci void CheckAddressType(); 107e5d0e473Sopenharmony_ci 108e5d0e473Sopenharmony_ci std::string addressString_; 109e5d0e473Sopenharmony_ci MmsCharSets charset_ = MmsCharSets::UTF_8; 110e5d0e473Sopenharmony_ci MmsAddressType addressType_ = ADDRESS_TYPE_UNKNOWN; 111e5d0e473Sopenharmony_ci}; 112e5d0e473Sopenharmony_ci} // namespace Telephony 113e5d0e473Sopenharmony_ci} // namespace OHOS 114e5d0e473Sopenharmony_ci#endif 115