195489c19Sopenharmony_ci/* 295489c19Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 395489c19Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 495489c19Sopenharmony_ci * you may not use this file except in compliance with the License. 595489c19Sopenharmony_ci * You may obtain a copy of the License at 695489c19Sopenharmony_ci * 795489c19Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 895489c19Sopenharmony_ci * 995489c19Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1095489c19Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1195489c19Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1295489c19Sopenharmony_ci * See the License for the specific language governing permissions and 1395489c19Sopenharmony_ci * limitations under the License. 1495489c19Sopenharmony_ci */ 1595489c19Sopenharmony_ci 1695489c19Sopenharmony_ci/** 1795489c19Sopenharmony_ci * @addtogroup Bluetooth 1895489c19Sopenharmony_ci * @{ 1995489c19Sopenharmony_ci * 2095489c19Sopenharmony_ci * @brief Defines a bluetooth system that provides basic blurtooth connection and profile functions, 2195489c19Sopenharmony_ci * including A2DP, AVRCP, BLE, GATT, HFP, MAP, PBAP, and SPP, etc. 2295489c19Sopenharmony_ci * 2395489c19Sopenharmony_ci * @since 6 2495489c19Sopenharmony_ci */ 2595489c19Sopenharmony_ci 2695489c19Sopenharmony_ci/** 2795489c19Sopenharmony_ci * @file bluetooth_socket_outputstream.h 2895489c19Sopenharmony_ci * 2995489c19Sopenharmony_ci * @brief Declares spp inputstream framework functions, including basic functions. 3095489c19Sopenharmony_ci * 3195489c19Sopenharmony_ci * @since 6 3295489c19Sopenharmony_ci */ 3395489c19Sopenharmony_ci 3495489c19Sopenharmony_ci#ifndef BLUETOOTH_OUTPUTSTREAM_H 3595489c19Sopenharmony_ci#define BLUETOOTH_OUTPUTSTREAM_H 3695489c19Sopenharmony_ci 3795489c19Sopenharmony_ci#include "bluetooth_def.h" 3895489c19Sopenharmony_ci#include "bluetooth_types.h" 3995489c19Sopenharmony_ci 4095489c19Sopenharmony_cinamespace OHOS { 4195489c19Sopenharmony_cinamespace Bluetooth { 4295489c19Sopenharmony_ci/** 4395489c19Sopenharmony_ci * @brief Class for spp output stream functions. 4495489c19Sopenharmony_ci * 4595489c19Sopenharmony_ci * @since 6 4695489c19Sopenharmony_ci */ 4795489c19Sopenharmony_ciclass BLUETOOTH_API OutputStream { 4895489c19Sopenharmony_cipublic: 4995489c19Sopenharmony_ci /** 5095489c19Sopenharmony_ci * @brief A constructor used to create an OutputStream instance. 5195489c19Sopenharmony_ci * 5295489c19Sopenharmony_ci * @param socketFd Socket fd. 5395489c19Sopenharmony_ci * @since 6 5495489c19Sopenharmony_ci */ 5595489c19Sopenharmony_ci explicit OutputStream(int socketFd); 5695489c19Sopenharmony_ci 5795489c19Sopenharmony_ci /** 5895489c19Sopenharmony_ci * @brief Destroy the OutputStream object. 5995489c19Sopenharmony_ci * 6095489c19Sopenharmony_ci * @since 6 6195489c19Sopenharmony_ci */ 6295489c19Sopenharmony_ci virtual ~OutputStream(); 6395489c19Sopenharmony_ci 6495489c19Sopenharmony_ci /** 6595489c19Sopenharmony_ci * @brief Socket write. 6695489c19Sopenharmony_ci * 6795489c19Sopenharmony_ci * @param buf Data to be written. 6895489c19Sopenharmony_ci * @param length The length of data to be written. 6995489c19Sopenharmony_ci * @return Returns <b> >0 </b> operation succeeded.The return value is length of the written data. 7095489c19Sopenharmony_ci * Returns <b> 0 </b> operation succeeded,but the data length is 0. 7195489c19Sopenharmony_ci * Returns <b> -1 </b> operation failed. 7295489c19Sopenharmony_ci * @since 6 7395489c19Sopenharmony_ci */ 7495489c19Sopenharmony_ci int Write(const uint8_t *buf, size_t length); 7595489c19Sopenharmony_ci 7695489c19Sopenharmony_ciprivate: 7795489c19Sopenharmony_ci int socketFd_; 7895489c19Sopenharmony_ci OutputStream() = delete; 7995489c19Sopenharmony_ci}; 8095489c19Sopenharmony_ci} // namespace Bluetooth 8195489c19Sopenharmony_ci} // namespace OHOS 8295489c19Sopenharmony_ci#endif // BLUETOOTH_OUTPUTSTREAM_H