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_ATTACHMENT_H 17e5d0e473Sopenharmony_ci#define MMS_ATTACHMENT_H 18e5d0e473Sopenharmony_ci 19e5d0e473Sopenharmony_ci#include <cstring> 20e5d0e473Sopenharmony_ci#include <string> 21e5d0e473Sopenharmony_ci 22e5d0e473Sopenharmony_cinamespace OHOS { 23e5d0e473Sopenharmony_cinamespace Telephony { 24e5d0e473Sopenharmony_ciclass MmsAttachment { 25e5d0e473Sopenharmony_cipublic: 26e5d0e473Sopenharmony_ci MmsAttachment() = default; 27e5d0e473Sopenharmony_ci ~MmsAttachment(); 28e5d0e473Sopenharmony_ci MmsAttachment(const MmsAttachment &srcAttachment); 29e5d0e473Sopenharmony_ci 30e5d0e473Sopenharmony_ci /** 31e5d0e473Sopenharmony_ci * @brief Set the Attachment File Path Name 32e5d0e473Sopenharmony_ci * 33e5d0e473Sopenharmony_ci * @param strPath 34e5d0e473Sopenharmony_ci * @return true 35e5d0e473Sopenharmony_ci * @return false 36e5d0e473Sopenharmony_ci */ 37e5d0e473Sopenharmony_ci bool SetAttachmentFilePath(std::string strPath, bool isSmil = false); 38e5d0e473Sopenharmony_ci 39e5d0e473Sopenharmony_ci /** 40e5d0e473Sopenharmony_ci * @brief Get the Attachment File Path Name 41e5d0e473Sopenharmony_ci * 42e5d0e473Sopenharmony_ci * @return std::string 43e5d0e473Sopenharmony_ci */ 44e5d0e473Sopenharmony_ci std::string GetAttachmentFilePath(); 45e5d0e473Sopenharmony_ci 46e5d0e473Sopenharmony_ci /** 47e5d0e473Sopenharmony_ci * @brief Set the Attachment Content Id 48e5d0e473Sopenharmony_ci * 49e5d0e473Sopenharmony_ci * @param contentId 50e5d0e473Sopenharmony_ci * @return true 51e5d0e473Sopenharmony_ci * @return false 52e5d0e473Sopenharmony_ci */ 53e5d0e473Sopenharmony_ci bool SetContentId(std::string contentId); 54e5d0e473Sopenharmony_ci 55e5d0e473Sopenharmony_ci /** 56e5d0e473Sopenharmony_ci * @brief Get the Attachment Content Id 57e5d0e473Sopenharmony_ci * 58e5d0e473Sopenharmony_ci * @return std::string 59e5d0e473Sopenharmony_ci */ 60e5d0e473Sopenharmony_ci std::string GetContentId(); 61e5d0e473Sopenharmony_ci 62e5d0e473Sopenharmony_ci /** 63e5d0e473Sopenharmony_ci * @brief Set the Attachment Content Location 64e5d0e473Sopenharmony_ci * 65e5d0e473Sopenharmony_ci * @param contentLocation 66e5d0e473Sopenharmony_ci * @return true 67e5d0e473Sopenharmony_ci * @return false 68e5d0e473Sopenharmony_ci */ 69e5d0e473Sopenharmony_ci bool SetContentLocation(std::string contentLocation); 70e5d0e473Sopenharmony_ci 71e5d0e473Sopenharmony_ci /** 72e5d0e473Sopenharmony_ci * @brief Get the Attachment Content Location 73e5d0e473Sopenharmony_ci * 74e5d0e473Sopenharmony_ci * @return std::string 75e5d0e473Sopenharmony_ci */ 76e5d0e473Sopenharmony_ci std::string GetContentLocation(); 77e5d0e473Sopenharmony_ci 78e5d0e473Sopenharmony_ci /** 79e5d0e473Sopenharmony_ci * @brief Set the Attachment Content Disposition 80e5d0e473Sopenharmony_ci * 81e5d0e473Sopenharmony_ci * @param contentDisposition 82e5d0e473Sopenharmony_ci * @return true 83e5d0e473Sopenharmony_ci * @return false 84e5d0e473Sopenharmony_ci */ 85e5d0e473Sopenharmony_ci bool SetContentDisposition(std::string contentDisposition); 86e5d0e473Sopenharmony_ci 87e5d0e473Sopenharmony_ci /** 88e5d0e473Sopenharmony_ci * @brief Get Attachment the Content Disposition 89e5d0e473Sopenharmony_ci * 90e5d0e473Sopenharmony_ci * @return std::string 91e5d0e473Sopenharmony_ci */ 92e5d0e473Sopenharmony_ci std::string GetContentDisposition(); 93e5d0e473Sopenharmony_ci 94e5d0e473Sopenharmony_ci /** 95e5d0e473Sopenharmony_ci * @brief Set the Attachment Content Transfer Encoding 96e5d0e473Sopenharmony_ci * 97e5d0e473Sopenharmony_ci * @param contentTransferEncoding 98e5d0e473Sopenharmony_ci * @return true 99e5d0e473Sopenharmony_ci * @return false 100e5d0e473Sopenharmony_ci */ 101e5d0e473Sopenharmony_ci bool SetContentTransferEncoding(std::string contentTransferEncoding); 102e5d0e473Sopenharmony_ci 103e5d0e473Sopenharmony_ci /** 104e5d0e473Sopenharmony_ci * @brief Get the Attachment Content Transfer Encoding 105e5d0e473Sopenharmony_ci * 106e5d0e473Sopenharmony_ci * @return std::string 107e5d0e473Sopenharmony_ci */ 108e5d0e473Sopenharmony_ci std::string GetContentTransferEncoding(); 109e5d0e473Sopenharmony_ci 110e5d0e473Sopenharmony_ci /** 111e5d0e473Sopenharmony_ci * @brief Set the Attachment Content Type 112e5d0e473Sopenharmony_ci * 113e5d0e473Sopenharmony_ci * @param strContentType 114e5d0e473Sopenharmony_ci * @return true 115e5d0e473Sopenharmony_ci * @return false 116e5d0e473Sopenharmony_ci */ 117e5d0e473Sopenharmony_ci bool SetContentType(std::string strContentType); 118e5d0e473Sopenharmony_ci 119e5d0e473Sopenharmony_ci /** 120e5d0e473Sopenharmony_ci * @brief Get the Attachment Content Type 121e5d0e473Sopenharmony_ci * 122e5d0e473Sopenharmony_ci * @return std::string 123e5d0e473Sopenharmony_ci */ 124e5d0e473Sopenharmony_ci std::string GetContentType(); 125e5d0e473Sopenharmony_ci 126e5d0e473Sopenharmony_ci /** 127e5d0e473Sopenharmony_ci * @brief Set the File Name object 128e5d0e473Sopenharmony_ci * 129e5d0e473Sopenharmony_ci * @param strFileName 130e5d0e473Sopenharmony_ci * @return true 131e5d0e473Sopenharmony_ci * @return false 132e5d0e473Sopenharmony_ci */ 133e5d0e473Sopenharmony_ci bool SetFileName(std::string strFileName); 134e5d0e473Sopenharmony_ci 135e5d0e473Sopenharmony_ci /** 136e5d0e473Sopenharmony_ci * @brief Get the File Name object 137e5d0e473Sopenharmony_ci * 138e5d0e473Sopenharmony_ci * @return std::string 139e5d0e473Sopenharmony_ci */ 140e5d0e473Sopenharmony_ci std::string GetFileName(); 141e5d0e473Sopenharmony_ci 142e5d0e473Sopenharmony_ci /* @brief Get the Attachment ContentType CharSet 143e5d0e473Sopenharmony_ci * 144e5d0e473Sopenharmony_ci * @return uint32_t 145e5d0e473Sopenharmony_ci */ 146e5d0e473Sopenharmony_ci uint32_t GetCharSet(); 147e5d0e473Sopenharmony_ci /** 148e5d0e473Sopenharmony_ci * @brief Set the Attachment ContentType CharSet 149e5d0e473Sopenharmony_ci * 150e5d0e473Sopenharmony_ci * @return void 151e5d0e473Sopenharmony_ci */ 152e5d0e473Sopenharmony_ci void SetCharSet(uint32_t charset); 153e5d0e473Sopenharmony_ci 154e5d0e473Sopenharmony_ci /** 155e5d0e473Sopenharmony_ci * @brief Check the Attachment Is Smil File 156e5d0e473Sopenharmony_ci * 157e5d0e473Sopenharmony_ci * @return true 158e5d0e473Sopenharmony_ci * @return false 159e5d0e473Sopenharmony_ci */ 160e5d0e473Sopenharmony_ci bool IsSmilFile(); 161e5d0e473Sopenharmony_ci 162e5d0e473Sopenharmony_ci /** 163e5d0e473Sopenharmony_ci * @brief Set the Attachment Is Smil File 164e5d0e473Sopenharmony_ci * 165e5d0e473Sopenharmony_ci * @param isSmilFile 166e5d0e473Sopenharmony_ci */ 167e5d0e473Sopenharmony_ci void SetIsSmilFile(bool isSmilFile); 168e5d0e473Sopenharmony_ci 169e5d0e473Sopenharmony_ci /** 170e5d0e473Sopenharmony_ci * @brief Get the Data Buffer The Attachment 171e5d0e473Sopenharmony_ci * 172e5d0e473Sopenharmony_ci * @param len out put buffer len 173e5d0e473Sopenharmony_ci * @return std::unique_ptr<char[]> 174e5d0e473Sopenharmony_ci */ 175e5d0e473Sopenharmony_ci std::unique_ptr<char[]> GetDataBuffer(uint32_t &len); 176e5d0e473Sopenharmony_ci 177e5d0e473Sopenharmony_ci /** 178e5d0e473Sopenharmony_ci * @brief Set the Data Buffer To Attachment 179e5d0e473Sopenharmony_ci * 180e5d0e473Sopenharmony_ci * @param inBuff data input buffer pointer 181e5d0e473Sopenharmony_ci * @param len data input len 182e5d0e473Sopenharmony_ci * @return true 183e5d0e473Sopenharmony_ci * @return false 184e5d0e473Sopenharmony_ci */ 185e5d0e473Sopenharmony_ci bool SetDataBuffer(std::unique_ptr<char[]> inBuff, uint32_t len); 186e5d0e473Sopenharmony_ci 187e5d0e473Sopenharmony_ciprivate: 188e5d0e473Sopenharmony_ci bool isSmilFile_ = false; 189e5d0e473Sopenharmony_ci std::string strPathName_; 190e5d0e473Sopenharmony_ci std::string contentId_; 191e5d0e473Sopenharmony_ci std::string contentLocation_; 192e5d0e473Sopenharmony_ci std::string contentDispositon_; 193e5d0e473Sopenharmony_ci std::string contenTransferEncoding_; 194e5d0e473Sopenharmony_ci std::string contentType_; 195e5d0e473Sopenharmony_ci std::string strFileName_; 196e5d0e473Sopenharmony_ci uint32_t charset_ = 0; 197e5d0e473Sopenharmony_ci uint32_t dataLength_ = 0; 198e5d0e473Sopenharmony_ci std::unique_ptr<char[]> pAttachmentBuffer_ = nullptr; 199e5d0e473Sopenharmony_ci}; 200e5d0e473Sopenharmony_ci} // namespace Telephony 201e5d0e473Sopenharmony_ci} // namespace OHOS 202e5d0e473Sopenharmony_ci#endif 203