1/* 2 * Copyright (c) 2023 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#include "net_packet.h" 17 18#include "sensor_errors.h" 19 20namespace OHOS { 21namespace Sensors { 22NetPacket::NetPacket(MessageId msgId) : msgId_(msgId) 23{} 24 25NetPacket::NetPacket(const NetPacket &pkt) : NetPacket(pkt.GetMsgId()) 26{ 27 Clone(pkt); 28} 29 30void NetPacket::MakeData(StreamBuffer &buf) const 31{ 32#ifdef OHOS_BUILD_ENABLE_RUST 33 PACKHEAD head = {msgId_, StreamBufferGetWpos(streamBufferPtr_.get())}; 34 buf << head; 35 if (StreamBufferGetWpos(streamBufferPtr_.get()) > 0) { 36 if (!buf.Write(StreamBufferGetSzBuff(streamBufferPtr_.get()), StreamBufferGetWpos(streamBufferPtr_.get()))) { 37 SEN_HILOGE("Write data to stream failed"); 38 return; 39 } 40 } 41#else 42 PACKHEAD head = {msgId_, wPos_}; 43 buf << head; 44 if (wPos_ > 0) { 45 if (!buf.Write(&szBuff_[0], wPos_)) { 46 SEN_HILOGE("Write data to stream failed"); 47 return; 48 } 49 } 50#endif // OHOS_BUILD_ENABLE_RUST 51} 52 53size_t NetPacket::GetSize() const 54{ 55#ifdef OHOS_BUILD_ENABLE_RUST 56 return StreamBufferSize(streamBufferPtr_.get()); 57#else 58 return Size(); 59#endif // OHOS_BUILD_ENABLE_RUST 60} 61 62size_t NetPacket::GetPacketLength() const 63{ 64#ifdef OHOS_BUILD_ENABLE_RUST 65 return (static_cast<int32_t>(sizeof(PackHead)) + StreamBufferGetWpos(streamBufferPtr_.get())); 66#else 67 return sizeof(PackHead) + wPos_; 68#endif // OHOS_BUILD_ENABLE_RUST 69} 70 71const char *NetPacket::GetData() const 72{ 73#ifdef OHOS_BUILD_ENABLE_RUST 74 return StreamBufferData(streamBufferPtr_.get()); 75#else 76 return Data(); 77#endif // OHOS_BUILD_ENABLE_RUST 78} 79 80MessageId NetPacket::GetMsgId() const 81{ 82 return msgId_; 83} 84} // namespace Sensors 85} // namespace OHOS 86