137a09cd7Sopenharmony_ci/* 237a09cd7Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 337a09cd7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 437a09cd7Sopenharmony_ci * you may not use this file except in compliance with the License. 537a09cd7Sopenharmony_ci * You may obtain a copy of the License at 637a09cd7Sopenharmony_ci * 737a09cd7Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 837a09cd7Sopenharmony_ci * 937a09cd7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1037a09cd7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1137a09cd7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1237a09cd7Sopenharmony_ci * See the License for the specific language governing permissions and 1337a09cd7Sopenharmony_ci * limitations under the License. 1437a09cd7Sopenharmony_ci */ 1537a09cd7Sopenharmony_ci 1637a09cd7Sopenharmony_ci#include "parcel.h" 1737a09cd7Sopenharmony_ci#include "thermal_temp_callback_stub.h" 1837a09cd7Sopenharmony_ci 1937a09cd7Sopenharmony_cinamespace OHOS { 2037a09cd7Sopenharmony_ci 2137a09cd7Sopenharmony_cistatic const size_t DEFAULT_CPACITY = 204800; // 200K 2237a09cd7Sopenharmony_ci 2337a09cd7Sopenharmony_ciParcelable::Parcelable() : Parcelable(false) {} 2437a09cd7Sopenharmony_ci 2537a09cd7Sopenharmony_ciParcelable::Parcelable(bool asRemote) 2637a09cd7Sopenharmony_ci{ 2737a09cd7Sopenharmony_ci asRemote_ = asRemote; 2837a09cd7Sopenharmony_ci behavior_ = 0; 2937a09cd7Sopenharmony_ci} 3037a09cd7Sopenharmony_ci 3137a09cd7Sopenharmony_ciParcel::Parcel(Allocator* allocator) 3237a09cd7Sopenharmony_ci{ 3337a09cd7Sopenharmony_ci if (allocator != nullptr) { 3437a09cd7Sopenharmony_ci allocator_ = allocator; 3537a09cd7Sopenharmony_ci } else { 3637a09cd7Sopenharmony_ci allocator_ = new DefaultAllocator(); 3737a09cd7Sopenharmony_ci } 3837a09cd7Sopenharmony_ci 3937a09cd7Sopenharmony_ci writeCursor_ = 0; 4037a09cd7Sopenharmony_ci readCursor_ = 0; 4137a09cd7Sopenharmony_ci 4237a09cd7Sopenharmony_ci data_ = nullptr; 4337a09cd7Sopenharmony_ci dataSize_ = 0; 4437a09cd7Sopenharmony_ci dataCapacity_ = 0; 4537a09cd7Sopenharmony_ci 4637a09cd7Sopenharmony_ci maxDataCapacity_ = DEFAULT_CPACITY; 4737a09cd7Sopenharmony_ci objectOffsets_ = nullptr; 4837a09cd7Sopenharmony_ci objectCursor_ = 0; 4937a09cd7Sopenharmony_ci objectsCapacity_ = 0; 5037a09cd7Sopenharmony_ci} 5137a09cd7Sopenharmony_ci 5237a09cd7Sopenharmony_ciParcel::Parcel() : Parcel(new DefaultAllocator()) {} 5337a09cd7Sopenharmony_ci 5437a09cd7Sopenharmony_ciParcel::~Parcel() 5537a09cd7Sopenharmony_ci{ 5637a09cd7Sopenharmony_ci FlushBuffer(); 5737a09cd7Sopenharmony_ci delete allocator_; 5837a09cd7Sopenharmony_ci} 5937a09cd7Sopenharmony_ci 6037a09cd7Sopenharmony_cisize_t Parcel::GetWritableBytes() const 6137a09cd7Sopenharmony_ci{ 6237a09cd7Sopenharmony_ci return 0; 6337a09cd7Sopenharmony_ci} 6437a09cd7Sopenharmony_ci 6537a09cd7Sopenharmony_cisize_t Parcel::GetReadableBytes() const 6637a09cd7Sopenharmony_ci{ 6737a09cd7Sopenharmony_ci return 0; 6837a09cd7Sopenharmony_ci} 6937a09cd7Sopenharmony_ci 7037a09cd7Sopenharmony_cisize_t Parcel::CalcNewCapacity(size_t minNewCapacity) 7137a09cd7Sopenharmony_ci{ 7237a09cd7Sopenharmony_ci (void)minNewCapacity; 7337a09cd7Sopenharmony_ci return 0; 7437a09cd7Sopenharmony_ci} 7537a09cd7Sopenharmony_ci 7637a09cd7Sopenharmony_cibool Parcel::EnsureWritableCapacity(size_t desireCapacity) 7737a09cd7Sopenharmony_ci{ 7837a09cd7Sopenharmony_ci (void)desireCapacity; 7937a09cd7Sopenharmony_ci return false; 8037a09cd7Sopenharmony_ci} 8137a09cd7Sopenharmony_ci 8237a09cd7Sopenharmony_cisize_t Parcel::GetDataSize() const 8337a09cd7Sopenharmony_ci{ 8437a09cd7Sopenharmony_ci return dataSize_; 8537a09cd7Sopenharmony_ci} 8637a09cd7Sopenharmony_ci 8737a09cd7Sopenharmony_ciuintptr_t Parcel::GetData() const 8837a09cd7Sopenharmony_ci{ 8937a09cd7Sopenharmony_ci return reinterpret_cast<uintptr_t>(data_); 9037a09cd7Sopenharmony_ci} 9137a09cd7Sopenharmony_ci 9237a09cd7Sopenharmony_cibinder_size_t Parcel::GetObjectOffsets() const 9337a09cd7Sopenharmony_ci{ 9437a09cd7Sopenharmony_ci return reinterpret_cast<binder_size_t>(objectOffsets_); 9537a09cd7Sopenharmony_ci} 9637a09cd7Sopenharmony_ci 9737a09cd7Sopenharmony_cisize_t Parcel::GetOffsetsSize() const 9837a09cd7Sopenharmony_ci{ 9937a09cd7Sopenharmony_ci return objectCursor_; 10037a09cd7Sopenharmony_ci} 10137a09cd7Sopenharmony_ci 10237a09cd7Sopenharmony_cisize_t Parcel::GetDataCapacity() const 10337a09cd7Sopenharmony_ci{ 10437a09cd7Sopenharmony_ci return dataCapacity_; 10537a09cd7Sopenharmony_ci} 10637a09cd7Sopenharmony_ci 10737a09cd7Sopenharmony_cibool Parcel::SetMaxCapacity(size_t maxCapacity) 10837a09cd7Sopenharmony_ci{ 10937a09cd7Sopenharmony_ci (void)maxCapacity; 11037a09cd7Sopenharmony_ci return false; 11137a09cd7Sopenharmony_ci} 11237a09cd7Sopenharmony_ci 11337a09cd7Sopenharmony_cibool Parcel::SetAllocator(Allocator* allocator) 11437a09cd7Sopenharmony_ci{ 11537a09cd7Sopenharmony_ci (void)allocator; 11637a09cd7Sopenharmony_ci return false; 11737a09cd7Sopenharmony_ci} 11837a09cd7Sopenharmony_ci 11937a09cd7Sopenharmony_cibool Parcel::CheckOffsets() 12037a09cd7Sopenharmony_ci{ 12137a09cd7Sopenharmony_ci return false; 12237a09cd7Sopenharmony_ci} 12337a09cd7Sopenharmony_ci 12437a09cd7Sopenharmony_civoid Parcel::InjectOffsets(binder_size_t offsets, size_t offsetSize) 12537a09cd7Sopenharmony_ci{ 12637a09cd7Sopenharmony_ci (void)offsets; 12737a09cd7Sopenharmony_ci (void)offsetSize; 12837a09cd7Sopenharmony_ci} 12937a09cd7Sopenharmony_ci 13037a09cd7Sopenharmony_civoid Parcel::FlushBuffer() 13137a09cd7Sopenharmony_ci{ 13237a09cd7Sopenharmony_ci if (allocator_ == nullptr) { 13337a09cd7Sopenharmony_ci return; 13437a09cd7Sopenharmony_ci } 13537a09cd7Sopenharmony_ci 13637a09cd7Sopenharmony_ci if (data_ != nullptr) { 13737a09cd7Sopenharmony_ci allocator_->Dealloc(data_); 13837a09cd7Sopenharmony_ci dataSize_ = 0; 13937a09cd7Sopenharmony_ci writeCursor_ = 0; 14037a09cd7Sopenharmony_ci readCursor_ = 0; 14137a09cd7Sopenharmony_ci dataCapacity_ = 0; 14237a09cd7Sopenharmony_ci data_ = nullptr; 14337a09cd7Sopenharmony_ci } 14437a09cd7Sopenharmony_ci 14537a09cd7Sopenharmony_ci if (objectOffsets_) { 14637a09cd7Sopenharmony_ci objectHolder_.clear(); 14737a09cd7Sopenharmony_ci free(objectOffsets_); 14837a09cd7Sopenharmony_ci objectCursor_ = 0; 14937a09cd7Sopenharmony_ci objectOffsets_ = nullptr; 15037a09cd7Sopenharmony_ci objectsCapacity_ = 0; 15137a09cd7Sopenharmony_ci } 15237a09cd7Sopenharmony_ci} 15337a09cd7Sopenharmony_ci 15437a09cd7Sopenharmony_cibool Parcel::SetDataCapacity(size_t newCapacity) 15537a09cd7Sopenharmony_ci{ 15637a09cd7Sopenharmony_ci (void)newCapacity; 15737a09cd7Sopenharmony_ci return false; 15837a09cd7Sopenharmony_ci} 15937a09cd7Sopenharmony_ci 16037a09cd7Sopenharmony_cibool Parcel::SetDataSize(size_t dataSize) 16137a09cd7Sopenharmony_ci{ 16237a09cd7Sopenharmony_ci (void)dataSize; 16337a09cd7Sopenharmony_ci return false; 16437a09cd7Sopenharmony_ci} 16537a09cd7Sopenharmony_ci 16637a09cd7Sopenharmony_cibool Parcel::WriteDataBytes(const void* data, size_t size) 16737a09cd7Sopenharmony_ci{ 16837a09cd7Sopenharmony_ci (void)data; 16937a09cd7Sopenharmony_ci (void)size; 17037a09cd7Sopenharmony_ci return false; 17137a09cd7Sopenharmony_ci} 17237a09cd7Sopenharmony_ci 17337a09cd7Sopenharmony_civoid Parcel::WritePadBytes(size_t padSize) 17437a09cd7Sopenharmony_ci{ 17537a09cd7Sopenharmony_ci (void)padSize; 17637a09cd7Sopenharmony_ci} 17737a09cd7Sopenharmony_ci 17837a09cd7Sopenharmony_cibool Parcel::WriteBuffer(const void* data, size_t size) 17937a09cd7Sopenharmony_ci{ 18037a09cd7Sopenharmony_ci (void)data; 18137a09cd7Sopenharmony_ci (void)size; 18237a09cd7Sopenharmony_ci return false; 18337a09cd7Sopenharmony_ci} 18437a09cd7Sopenharmony_ci 18537a09cd7Sopenharmony_cibool Parcel::WriteBufferAddTerminator(const void* data, size_t size, size_t typeSize) 18637a09cd7Sopenharmony_ci{ 18737a09cd7Sopenharmony_ci (void)data; 18837a09cd7Sopenharmony_ci (void)size; 18937a09cd7Sopenharmony_ci (void)typeSize; 19037a09cd7Sopenharmony_ci return false; 19137a09cd7Sopenharmony_ci} 19237a09cd7Sopenharmony_ci 19337a09cd7Sopenharmony_cibool Parcel::WriteUnpadBuffer(const void* data, size_t size) 19437a09cd7Sopenharmony_ci{ 19537a09cd7Sopenharmony_ci return WriteBuffer(data, size); 19637a09cd7Sopenharmony_ci} 19737a09cd7Sopenharmony_ci 19837a09cd7Sopenharmony_citemplate <typename T> 19937a09cd7Sopenharmony_cibool Parcel::Write(T value) 20037a09cd7Sopenharmony_ci{ 20137a09cd7Sopenharmony_ci (void)value; 20237a09cd7Sopenharmony_ci#ifdef MOCK_WRITE_RETURN_TRUE 20337a09cd7Sopenharmony_ci return true; 20437a09cd7Sopenharmony_ci#else 20537a09cd7Sopenharmony_ci return false; 20637a09cd7Sopenharmony_ci#endif 20737a09cd7Sopenharmony_ci} 20837a09cd7Sopenharmony_ci 20937a09cd7Sopenharmony_cibool Parcel::WriteBool(bool value) 21037a09cd7Sopenharmony_ci{ 21137a09cd7Sopenharmony_ci return Write<int32_t>(static_cast<int32_t>(value)); 21237a09cd7Sopenharmony_ci} 21337a09cd7Sopenharmony_ci 21437a09cd7Sopenharmony_cibool Parcel::WriteBoolUnaligned(bool value) 21537a09cd7Sopenharmony_ci{ 21637a09cd7Sopenharmony_ci return Write<bool>(value); 21737a09cd7Sopenharmony_ci} 21837a09cd7Sopenharmony_ci 21937a09cd7Sopenharmony_cibool Parcel::WriteInt8(int8_t value) 22037a09cd7Sopenharmony_ci{ 22137a09cd7Sopenharmony_ci return Write<int32_t>(static_cast<int32_t>(value)); 22237a09cd7Sopenharmony_ci} 22337a09cd7Sopenharmony_ci 22437a09cd7Sopenharmony_cibool Parcel::WriteInt8Unaligned(int8_t value) 22537a09cd7Sopenharmony_ci{ 22637a09cd7Sopenharmony_ci return Write<int8_t>(value); 22737a09cd7Sopenharmony_ci} 22837a09cd7Sopenharmony_ci 22937a09cd7Sopenharmony_cibool Parcel::WriteInt16(int16_t value) 23037a09cd7Sopenharmony_ci{ 23137a09cd7Sopenharmony_ci return Write<int32_t>(static_cast<int32_t>(value)); 23237a09cd7Sopenharmony_ci} 23337a09cd7Sopenharmony_ci 23437a09cd7Sopenharmony_cibool Parcel::WriteInt16Unaligned(int16_t value) 23537a09cd7Sopenharmony_ci{ 23637a09cd7Sopenharmony_ci return Write<int16_t>(value); 23737a09cd7Sopenharmony_ci} 23837a09cd7Sopenharmony_ci 23937a09cd7Sopenharmony_cibool Parcel::WriteInt32(int32_t value) 24037a09cd7Sopenharmony_ci{ 24137a09cd7Sopenharmony_ci return Write<int32_t>(value); 24237a09cd7Sopenharmony_ci} 24337a09cd7Sopenharmony_ci 24437a09cd7Sopenharmony_cibool Parcel::WriteInt64(int64_t value) 24537a09cd7Sopenharmony_ci{ 24637a09cd7Sopenharmony_ci return Write<int64_t>(value); 24737a09cd7Sopenharmony_ci} 24837a09cd7Sopenharmony_ci 24937a09cd7Sopenharmony_cibool Parcel::WriteUint8(uint8_t value) 25037a09cd7Sopenharmony_ci{ 25137a09cd7Sopenharmony_ci return Write<uint32_t>(static_cast<uint32_t>(value)); 25237a09cd7Sopenharmony_ci} 25337a09cd7Sopenharmony_ci 25437a09cd7Sopenharmony_cibool Parcel::WriteUint8Unaligned(uint8_t value) 25537a09cd7Sopenharmony_ci{ 25637a09cd7Sopenharmony_ci return Write<uint8_t>(value); 25737a09cd7Sopenharmony_ci} 25837a09cd7Sopenharmony_ci 25937a09cd7Sopenharmony_cibool Parcel::WriteUint16(uint16_t value) 26037a09cd7Sopenharmony_ci{ 26137a09cd7Sopenharmony_ci return Write<uint32_t>(static_cast<uint32_t>(value)); 26237a09cd7Sopenharmony_ci} 26337a09cd7Sopenharmony_ci 26437a09cd7Sopenharmony_cibool Parcel::WriteUint16Unaligned(uint16_t value) 26537a09cd7Sopenharmony_ci{ 26637a09cd7Sopenharmony_ci return Write<uint16_t>(value); 26737a09cd7Sopenharmony_ci} 26837a09cd7Sopenharmony_ci 26937a09cd7Sopenharmony_cibool Parcel::WriteUint32(uint32_t value) 27037a09cd7Sopenharmony_ci{ 27137a09cd7Sopenharmony_ci return Write<uint32_t>(value); 27237a09cd7Sopenharmony_ci} 27337a09cd7Sopenharmony_ci 27437a09cd7Sopenharmony_cibool Parcel::WriteUint64(uint64_t value) 27537a09cd7Sopenharmony_ci{ 27637a09cd7Sopenharmony_ci return Write<uint64_t>(value); 27737a09cd7Sopenharmony_ci} 27837a09cd7Sopenharmony_ci 27937a09cd7Sopenharmony_cibool Parcel::WriteFloat(float value) 28037a09cd7Sopenharmony_ci{ 28137a09cd7Sopenharmony_ci return Write<float>(value); 28237a09cd7Sopenharmony_ci} 28337a09cd7Sopenharmony_ci 28437a09cd7Sopenharmony_cibool Parcel::WriteDouble(double value) 28537a09cd7Sopenharmony_ci{ 28637a09cd7Sopenharmony_ci return Write<double>(value); 28737a09cd7Sopenharmony_ci} 28837a09cd7Sopenharmony_ci 28937a09cd7Sopenharmony_cibool Parcel::WritePointer(uintptr_t value) 29037a09cd7Sopenharmony_ci{ 29137a09cd7Sopenharmony_ci return Write<binder_uintptr_t>(value); 29237a09cd7Sopenharmony_ci} 29337a09cd7Sopenharmony_ci 29437a09cd7Sopenharmony_cibool Parcel::WriteCString(const char* value) 29537a09cd7Sopenharmony_ci{ 29637a09cd7Sopenharmony_ci (void)value; 29737a09cd7Sopenharmony_ci return false; 29837a09cd7Sopenharmony_ci} 29937a09cd7Sopenharmony_ci 30037a09cd7Sopenharmony_cibool Parcel::WriteString(const std::string& value) 30137a09cd7Sopenharmony_ci{ 30237a09cd7Sopenharmony_ci (void)value; 30337a09cd7Sopenharmony_ci return false; 30437a09cd7Sopenharmony_ci} 30537a09cd7Sopenharmony_ci 30637a09cd7Sopenharmony_cibool Parcel::WriteString16(const std::u16string& value) 30737a09cd7Sopenharmony_ci{ 30837a09cd7Sopenharmony_ci (void)value; 30937a09cd7Sopenharmony_ci return false; 31037a09cd7Sopenharmony_ci} 31137a09cd7Sopenharmony_ci 31237a09cd7Sopenharmony_cibool Parcel::WriteString16WithLength(const char16_t* value, size_t len) 31337a09cd7Sopenharmony_ci{ 31437a09cd7Sopenharmony_ci (void)value; 31537a09cd7Sopenharmony_ci (void)len; 31637a09cd7Sopenharmony_ci return false; 31737a09cd7Sopenharmony_ci} 31837a09cd7Sopenharmony_ci 31937a09cd7Sopenharmony_cibool Parcel::WriteString8WithLength(const char* value, size_t len) 32037a09cd7Sopenharmony_ci{ 32137a09cd7Sopenharmony_ci (void)value; 32237a09cd7Sopenharmony_ci (void)len; 32337a09cd7Sopenharmony_ci return false; 32437a09cd7Sopenharmony_ci} 32537a09cd7Sopenharmony_ci 32637a09cd7Sopenharmony_cibool Parcel::EnsureObjectsCapacity() 32737a09cd7Sopenharmony_ci{ 32837a09cd7Sopenharmony_ci return false; 32937a09cd7Sopenharmony_ci} 33037a09cd7Sopenharmony_ci 33137a09cd7Sopenharmony_cibool Parcel::WriteObjectOffset(binder_size_t offset) 33237a09cd7Sopenharmony_ci{ 33337a09cd7Sopenharmony_ci (void)offset; 33437a09cd7Sopenharmony_ci return false; 33537a09cd7Sopenharmony_ci} 33637a09cd7Sopenharmony_ci 33737a09cd7Sopenharmony_cibool Parcel::WriteRemoteObject(const Parcelable* object) 33837a09cd7Sopenharmony_ci{ 33937a09cd7Sopenharmony_ci (void)object; 34037a09cd7Sopenharmony_ci#ifdef MOCK_WRITE_REMOTE_OBJECT_RETURN_TRUE 34137a09cd7Sopenharmony_ci return true; 34237a09cd7Sopenharmony_ci#else 34337a09cd7Sopenharmony_ci return false; 34437a09cd7Sopenharmony_ci#endif 34537a09cd7Sopenharmony_ci} 34637a09cd7Sopenharmony_ci 34737a09cd7Sopenharmony_cibool Parcel::WriteParcelable(const Parcelable* object) 34837a09cd7Sopenharmony_ci{ 34937a09cd7Sopenharmony_ci (void)object; 35037a09cd7Sopenharmony_ci return false; 35137a09cd7Sopenharmony_ci} 35237a09cd7Sopenharmony_ci 35337a09cd7Sopenharmony_cibool Parcel::WriteStrongParcelable(const sptr<Parcelable>& object) 35437a09cd7Sopenharmony_ci{ 35537a09cd7Sopenharmony_ci (void)object; 35637a09cd7Sopenharmony_ci return false; 35737a09cd7Sopenharmony_ci} 35837a09cd7Sopenharmony_ci 35937a09cd7Sopenharmony_citemplate <typename T> 36037a09cd7Sopenharmony_cibool Parcel::Read(T& value) 36137a09cd7Sopenharmony_ci{ 36237a09cd7Sopenharmony_ci (void)value; 36337a09cd7Sopenharmony_ci return false; 36437a09cd7Sopenharmony_ci} 36537a09cd7Sopenharmony_ci 36637a09cd7Sopenharmony_citemplate <typename T> 36737a09cd7Sopenharmony_ciT Parcel::Read() 36837a09cd7Sopenharmony_ci{ 36937a09cd7Sopenharmony_ci#ifdef MOCK_READ_RETURN_ZERO 37037a09cd7Sopenharmony_ci return 0; 37137a09cd7Sopenharmony_ci#else 37237a09cd7Sopenharmony_ci return 1; 37337a09cd7Sopenharmony_ci#endif 37437a09cd7Sopenharmony_ci} 37537a09cd7Sopenharmony_ci 37637a09cd7Sopenharmony_cibool Parcel::ParseFrom(uintptr_t data, size_t size) 37737a09cd7Sopenharmony_ci{ 37837a09cd7Sopenharmony_ci (void)data; 37937a09cd7Sopenharmony_ci (void)size; 38037a09cd7Sopenharmony_ci return false; 38137a09cd7Sopenharmony_ci} 38237a09cd7Sopenharmony_ci 38337a09cd7Sopenharmony_ciconst uint8_t* Parcel::ReadBuffer(size_t length) 38437a09cd7Sopenharmony_ci{ 38537a09cd7Sopenharmony_ci (void)length; 38637a09cd7Sopenharmony_ci return nullptr; 38737a09cd7Sopenharmony_ci} 38837a09cd7Sopenharmony_ci 38937a09cd7Sopenharmony_ciconst uint8_t* Parcel::ReadUnpadBuffer(size_t length) 39037a09cd7Sopenharmony_ci{ 39137a09cd7Sopenharmony_ci (void)length; 39237a09cd7Sopenharmony_ci return nullptr; 39337a09cd7Sopenharmony_ci} 39437a09cd7Sopenharmony_ci 39537a09cd7Sopenharmony_civoid Parcel::SkipBytes(size_t bytes) 39637a09cd7Sopenharmony_ci{ 39737a09cd7Sopenharmony_ci (void)bytes; 39837a09cd7Sopenharmony_ci} 39937a09cd7Sopenharmony_ci 40037a09cd7Sopenharmony_cisize_t Parcel::GetReadPosition() 40137a09cd7Sopenharmony_ci{ 40237a09cd7Sopenharmony_ci return readCursor_; 40337a09cd7Sopenharmony_ci} 40437a09cd7Sopenharmony_ci 40537a09cd7Sopenharmony_cibool Parcel::RewindRead(size_t newPosition) 40637a09cd7Sopenharmony_ci{ 40737a09cd7Sopenharmony_ci (void)newPosition; 40837a09cd7Sopenharmony_ci return false; 40937a09cd7Sopenharmony_ci} 41037a09cd7Sopenharmony_ci 41137a09cd7Sopenharmony_cisize_t Parcel::GetWritePosition() 41237a09cd7Sopenharmony_ci{ 41337a09cd7Sopenharmony_ci return writeCursor_; 41437a09cd7Sopenharmony_ci} 41537a09cd7Sopenharmony_ci 41637a09cd7Sopenharmony_cibool Parcel::RewindWrite(size_t newPosition) 41737a09cd7Sopenharmony_ci{ 41837a09cd7Sopenharmony_ci (void)newPosition; 41937a09cd7Sopenharmony_ci return false; 42037a09cd7Sopenharmony_ci} 42137a09cd7Sopenharmony_ci 42237a09cd7Sopenharmony_cibool Parcel::ReadBool() 42337a09cd7Sopenharmony_ci{ 42437a09cd7Sopenharmony_ci int32_t temp = Read<int32_t>(); 42537a09cd7Sopenharmony_ci return (temp != 0); 42637a09cd7Sopenharmony_ci} 42737a09cd7Sopenharmony_ci 42837a09cd7Sopenharmony_cibool Parcel::ReadBoolUnaligned() 42937a09cd7Sopenharmony_ci{ 43037a09cd7Sopenharmony_ci return Read<bool>(); 43137a09cd7Sopenharmony_ci} 43237a09cd7Sopenharmony_ci 43337a09cd7Sopenharmony_ciint8_t Parcel::ReadInt8() 43437a09cd7Sopenharmony_ci{ 43537a09cd7Sopenharmony_ci int32_t temp = Read<int32_t>(); 43637a09cd7Sopenharmony_ci return static_cast<int8_t>(temp); 43737a09cd7Sopenharmony_ci} 43837a09cd7Sopenharmony_ci 43937a09cd7Sopenharmony_ciint16_t Parcel::ReadInt16() 44037a09cd7Sopenharmony_ci{ 44137a09cd7Sopenharmony_ci int32_t temp = Read<int32_t>(); 44237a09cd7Sopenharmony_ci return static_cast<int16_t>(temp); 44337a09cd7Sopenharmony_ci} 44437a09cd7Sopenharmony_ci 44537a09cd7Sopenharmony_ciint32_t Parcel::ReadInt32() 44637a09cd7Sopenharmony_ci{ 44737a09cd7Sopenharmony_ci return Read<int32_t>(); 44837a09cd7Sopenharmony_ci} 44937a09cd7Sopenharmony_ci 45037a09cd7Sopenharmony_ciint64_t Parcel::ReadInt64() 45137a09cd7Sopenharmony_ci{ 45237a09cd7Sopenharmony_ci return Read<int64_t>(); 45337a09cd7Sopenharmony_ci} 45437a09cd7Sopenharmony_ci 45537a09cd7Sopenharmony_ciuint8_t Parcel::ReadUint8() 45637a09cd7Sopenharmony_ci{ 45737a09cd7Sopenharmony_ci uint32_t temp = Read<uint32_t>(); 45837a09cd7Sopenharmony_ci return static_cast<uint8_t>(temp); 45937a09cd7Sopenharmony_ci} 46037a09cd7Sopenharmony_ci 46137a09cd7Sopenharmony_ciuint16_t Parcel::ReadUint16() 46237a09cd7Sopenharmony_ci{ 46337a09cd7Sopenharmony_ci uint32_t temp = Read<uint32_t>(); 46437a09cd7Sopenharmony_ci return static_cast<uint16_t>(temp); 46537a09cd7Sopenharmony_ci} 46637a09cd7Sopenharmony_ci 46737a09cd7Sopenharmony_ciuint32_t Parcel::ReadUint32() 46837a09cd7Sopenharmony_ci{ 46937a09cd7Sopenharmony_ci return Read<uint32_t>(); 47037a09cd7Sopenharmony_ci} 47137a09cd7Sopenharmony_ci 47237a09cd7Sopenharmony_ciuint64_t Parcel::ReadUint64() 47337a09cd7Sopenharmony_ci{ 47437a09cd7Sopenharmony_ci return Read<uint64_t>(); 47537a09cd7Sopenharmony_ci} 47637a09cd7Sopenharmony_ci 47737a09cd7Sopenharmony_cifloat Parcel::ReadFloat() 47837a09cd7Sopenharmony_ci{ 47937a09cd7Sopenharmony_ci return Read<float>(); 48037a09cd7Sopenharmony_ci} 48137a09cd7Sopenharmony_ci 48237a09cd7Sopenharmony_cidouble Parcel::ReadDouble() 48337a09cd7Sopenharmony_ci{ 48437a09cd7Sopenharmony_ci return Read<double>(); 48537a09cd7Sopenharmony_ci} 48637a09cd7Sopenharmony_ci 48737a09cd7Sopenharmony_citemplate <typename T> 48837a09cd7Sopenharmony_cibool Parcel::ReadPadded(T& value) 48937a09cd7Sopenharmony_ci{ 49037a09cd7Sopenharmony_ci (void)value; 49137a09cd7Sopenharmony_ci return false; 49237a09cd7Sopenharmony_ci} 49337a09cd7Sopenharmony_ci 49437a09cd7Sopenharmony_cibool Parcel::ReadBool(bool& value) 49537a09cd7Sopenharmony_ci{ 49637a09cd7Sopenharmony_ci return ReadPadded<bool>(value); 49737a09cd7Sopenharmony_ci} 49837a09cd7Sopenharmony_ci 49937a09cd7Sopenharmony_cibool Parcel::ReadInt8(int8_t& value) 50037a09cd7Sopenharmony_ci{ 50137a09cd7Sopenharmony_ci return ReadPadded<int8_t>(value); 50237a09cd7Sopenharmony_ci} 50337a09cd7Sopenharmony_ci 50437a09cd7Sopenharmony_cibool Parcel::ReadInt8Unaligned(int8_t& value) 50537a09cd7Sopenharmony_ci{ 50637a09cd7Sopenharmony_ci return Read<int8_t>(value); 50737a09cd7Sopenharmony_ci} 50837a09cd7Sopenharmony_ci 50937a09cd7Sopenharmony_cibool Parcel::ReadInt16(int16_t& value) 51037a09cd7Sopenharmony_ci{ 51137a09cd7Sopenharmony_ci return ReadPadded<int16_t>(value); 51237a09cd7Sopenharmony_ci} 51337a09cd7Sopenharmony_ci 51437a09cd7Sopenharmony_cibool Parcel::ReadInt16Unaligned(int16_t& value) 51537a09cd7Sopenharmony_ci{ 51637a09cd7Sopenharmony_ci return Read<int16_t>(value); 51737a09cd7Sopenharmony_ci} 51837a09cd7Sopenharmony_ci 51937a09cd7Sopenharmony_cibool Parcel::ReadInt32(int32_t& value) 52037a09cd7Sopenharmony_ci{ 52137a09cd7Sopenharmony_ci return Read<int32_t>(value); 52237a09cd7Sopenharmony_ci} 52337a09cd7Sopenharmony_ci 52437a09cd7Sopenharmony_cibool Parcel::ReadInt64(int64_t& value) 52537a09cd7Sopenharmony_ci{ 52637a09cd7Sopenharmony_ci return Read<int64_t>(value); 52737a09cd7Sopenharmony_ci} 52837a09cd7Sopenharmony_ci 52937a09cd7Sopenharmony_cibool Parcel::ReadUint8(uint8_t& value) 53037a09cd7Sopenharmony_ci{ 53137a09cd7Sopenharmony_ci return ReadPadded<uint8_t>(value); 53237a09cd7Sopenharmony_ci} 53337a09cd7Sopenharmony_ci 53437a09cd7Sopenharmony_cibool Parcel::ReadUint8Unaligned(uint8_t& value) 53537a09cd7Sopenharmony_ci{ 53637a09cd7Sopenharmony_ci return Read<uint8_t>(value); 53737a09cd7Sopenharmony_ci} 53837a09cd7Sopenharmony_ci 53937a09cd7Sopenharmony_cibool Parcel::ReadUint16(uint16_t& value) 54037a09cd7Sopenharmony_ci{ 54137a09cd7Sopenharmony_ci return ReadPadded<uint16_t>(value); 54237a09cd7Sopenharmony_ci} 54337a09cd7Sopenharmony_ci 54437a09cd7Sopenharmony_cibool Parcel::ReadUint16Unaligned(uint16_t& value) 54537a09cd7Sopenharmony_ci{ 54637a09cd7Sopenharmony_ci return Read<uint16_t>(value); 54737a09cd7Sopenharmony_ci} 54837a09cd7Sopenharmony_ci 54937a09cd7Sopenharmony_cibool Parcel::ReadUint32(uint32_t& value) 55037a09cd7Sopenharmony_ci{ 55137a09cd7Sopenharmony_ci return Read<uint32_t>(value); 55237a09cd7Sopenharmony_ci} 55337a09cd7Sopenharmony_ci 55437a09cd7Sopenharmony_cibool Parcel::ReadUint64(uint64_t& value) 55537a09cd7Sopenharmony_ci{ 55637a09cd7Sopenharmony_ci return Read<uint64_t>(value); 55737a09cd7Sopenharmony_ci} 55837a09cd7Sopenharmony_ci 55937a09cd7Sopenharmony_cibool Parcel::ReadFloat(float& value) 56037a09cd7Sopenharmony_ci{ 56137a09cd7Sopenharmony_ci return Read<float>(value); 56237a09cd7Sopenharmony_ci} 56337a09cd7Sopenharmony_ci 56437a09cd7Sopenharmony_cibool Parcel::ReadDouble(double& value) 56537a09cd7Sopenharmony_ci{ 56637a09cd7Sopenharmony_ci return Read<double>(value); 56737a09cd7Sopenharmony_ci} 56837a09cd7Sopenharmony_ci 56937a09cd7Sopenharmony_ciuintptr_t Parcel::ReadPointer() 57037a09cd7Sopenharmony_ci{ 57137a09cd7Sopenharmony_ci return Read<binder_uintptr_t>(); 57237a09cd7Sopenharmony_ci} 57337a09cd7Sopenharmony_ci 57437a09cd7Sopenharmony_ciconst char* Parcel::ReadCString() 57537a09cd7Sopenharmony_ci{ 57637a09cd7Sopenharmony_ci return nullptr; 57737a09cd7Sopenharmony_ci} 57837a09cd7Sopenharmony_ci 57937a09cd7Sopenharmony_ciconst std::string Parcel::ReadString() 58037a09cd7Sopenharmony_ci{ 58137a09cd7Sopenharmony_ci return ""; 58237a09cd7Sopenharmony_ci} 58337a09cd7Sopenharmony_ci 58437a09cd7Sopenharmony_cibool Parcel::ReadString(std::string& value) 58537a09cd7Sopenharmony_ci{ 58637a09cd7Sopenharmony_ci (void)value; 58737a09cd7Sopenharmony_ci#ifdef MOCK_READSTRING_RETURN_TRUE 58837a09cd7Sopenharmony_ci return true; 58937a09cd7Sopenharmony_ci#else 59037a09cd7Sopenharmony_ci return false; 59137a09cd7Sopenharmony_ci#endif 59237a09cd7Sopenharmony_ci} 59337a09cd7Sopenharmony_ci 59437a09cd7Sopenharmony_ciconst std::u16string Parcel::ReadString16() 59537a09cd7Sopenharmony_ci{ 59637a09cd7Sopenharmony_ci#ifdef MOCK_READSTRING16_RETURN_NULL 59737a09cd7Sopenharmony_ci return std::u16string(); 59837a09cd7Sopenharmony_ci#else 59937a09cd7Sopenharmony_ci return PowerMgr::ThermalTempCallbackStub::GetDescriptor(); 60037a09cd7Sopenharmony_ci#endif 60137a09cd7Sopenharmony_ci} 60237a09cd7Sopenharmony_ci 60337a09cd7Sopenharmony_cibool Parcel::ReadString16(std::u16string& value) 60437a09cd7Sopenharmony_ci{ 60537a09cd7Sopenharmony_ci (void)value; 60637a09cd7Sopenharmony_ci return false; 60737a09cd7Sopenharmony_ci} 60837a09cd7Sopenharmony_ci 60937a09cd7Sopenharmony_ciconst std::u16string Parcel::ReadString16WithLength(int32_t& readLength) 61037a09cd7Sopenharmony_ci{ 61137a09cd7Sopenharmony_ci (void)readLength; 61237a09cd7Sopenharmony_ci return std::u16string(); 61337a09cd7Sopenharmony_ci} 61437a09cd7Sopenharmony_ci 61537a09cd7Sopenharmony_ciconst std::string Parcel::ReadString8WithLength(int32_t& readLength) 61637a09cd7Sopenharmony_ci{ 61737a09cd7Sopenharmony_ci (void)readLength; 61837a09cd7Sopenharmony_ci return std::string(); 61937a09cd7Sopenharmony_ci} 62037a09cd7Sopenharmony_ci 62137a09cd7Sopenharmony_citemplate <typename T1, typename T2> 62237a09cd7Sopenharmony_cibool Parcel::WriteVector(const std::vector<T1>& val, bool (Parcel::*Write)(T2)) 62337a09cd7Sopenharmony_ci{ 62437a09cd7Sopenharmony_ci (void)val; 62537a09cd7Sopenharmony_ci#ifdef MOCK_WRITEVECTOR_RETURN_FALSE 62637a09cd7Sopenharmony_ci return false; 62737a09cd7Sopenharmony_ci#else 62837a09cd7Sopenharmony_ci return true; 62937a09cd7Sopenharmony_ci#endif 63037a09cd7Sopenharmony_ci} 63137a09cd7Sopenharmony_ci 63237a09cd7Sopenharmony_cibool Parcel::WriteBoolVector(const std::vector<bool>& val) 63337a09cd7Sopenharmony_ci{ 63437a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteBool); 63537a09cd7Sopenharmony_ci} 63637a09cd7Sopenharmony_ci 63737a09cd7Sopenharmony_cibool Parcel::WriteInt8Vector(const std::vector<int8_t>& val) 63837a09cd7Sopenharmony_ci{ 63937a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteInt8Unaligned); 64037a09cd7Sopenharmony_ci} 64137a09cd7Sopenharmony_ci 64237a09cd7Sopenharmony_cibool Parcel::WriteInt16Vector(const std::vector<int16_t>& val) 64337a09cd7Sopenharmony_ci{ 64437a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteInt16); 64537a09cd7Sopenharmony_ci} 64637a09cd7Sopenharmony_ci 64737a09cd7Sopenharmony_cibool Parcel::WriteInt32Vector(const std::vector<int32_t>& val) 64837a09cd7Sopenharmony_ci{ 64937a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteInt32); 65037a09cd7Sopenharmony_ci} 65137a09cd7Sopenharmony_ci 65237a09cd7Sopenharmony_cibool Parcel::WriteInt64Vector(const std::vector<int64_t>& val) 65337a09cd7Sopenharmony_ci{ 65437a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteInt64); 65537a09cd7Sopenharmony_ci} 65637a09cd7Sopenharmony_ci 65737a09cd7Sopenharmony_cibool Parcel::WriteUInt8Vector(const std::vector<uint8_t>& val) 65837a09cd7Sopenharmony_ci{ 65937a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteUint8Unaligned); 66037a09cd7Sopenharmony_ci} 66137a09cd7Sopenharmony_ci 66237a09cd7Sopenharmony_cibool Parcel::WriteUInt16Vector(const std::vector<uint16_t>& val) 66337a09cd7Sopenharmony_ci{ 66437a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteUint16Unaligned); 66537a09cd7Sopenharmony_ci} 66637a09cd7Sopenharmony_ci 66737a09cd7Sopenharmony_cibool Parcel::WriteUInt32Vector(const std::vector<uint32_t>& val) 66837a09cd7Sopenharmony_ci{ 66937a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteUint32); 67037a09cd7Sopenharmony_ci} 67137a09cd7Sopenharmony_ci 67237a09cd7Sopenharmony_cibool Parcel::WriteUInt64Vector(const std::vector<uint64_t>& val) 67337a09cd7Sopenharmony_ci{ 67437a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteUint64); 67537a09cd7Sopenharmony_ci} 67637a09cd7Sopenharmony_ci 67737a09cd7Sopenharmony_cibool Parcel::WriteFloatVector(const std::vector<float>& val) 67837a09cd7Sopenharmony_ci{ 67937a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteFloat); 68037a09cd7Sopenharmony_ci} 68137a09cd7Sopenharmony_ci 68237a09cd7Sopenharmony_cibool Parcel::WriteDoubleVector(const std::vector<double>& val) 68337a09cd7Sopenharmony_ci{ 68437a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteDouble); 68537a09cd7Sopenharmony_ci} 68637a09cd7Sopenharmony_ci 68737a09cd7Sopenharmony_cibool Parcel::WriteStringVector(const std::vector<std::string>& val) 68837a09cd7Sopenharmony_ci{ 68937a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteString); 69037a09cd7Sopenharmony_ci} 69137a09cd7Sopenharmony_ci 69237a09cd7Sopenharmony_cibool Parcel::WriteString16Vector(const std::vector<std::u16string>& val) 69337a09cd7Sopenharmony_ci{ 69437a09cd7Sopenharmony_ci return WriteVector(val, &Parcel::WriteString16); 69537a09cd7Sopenharmony_ci} 69637a09cd7Sopenharmony_ci 69737a09cd7Sopenharmony_citemplate <typename T> 69837a09cd7Sopenharmony_cibool Parcel::ReadVector(std::vector<T>* val, bool (Parcel::*Read)(T&)) 69937a09cd7Sopenharmony_ci{ 70037a09cd7Sopenharmony_ci (void)val; 70137a09cd7Sopenharmony_ci return false; 70237a09cd7Sopenharmony_ci} 70337a09cd7Sopenharmony_ci 70437a09cd7Sopenharmony_cibool Parcel::ReadBoolVector(std::vector<bool>* val) 70537a09cd7Sopenharmony_ci{ 70637a09cd7Sopenharmony_ci (void)val; 70737a09cd7Sopenharmony_ci return false; 70837a09cd7Sopenharmony_ci} 70937a09cd7Sopenharmony_ci 71037a09cd7Sopenharmony_cibool Parcel::ReadInt8Vector(std::vector<int8_t>* val) 71137a09cd7Sopenharmony_ci{ 71237a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadInt8Unaligned); 71337a09cd7Sopenharmony_ci} 71437a09cd7Sopenharmony_ci 71537a09cd7Sopenharmony_cibool Parcel::ReadInt16Vector(std::vector<int16_t>* val) 71637a09cd7Sopenharmony_ci{ 71737a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadInt16); 71837a09cd7Sopenharmony_ci} 71937a09cd7Sopenharmony_ci 72037a09cd7Sopenharmony_cibool Parcel::ReadInt32Vector(std::vector<int32_t>* val) 72137a09cd7Sopenharmony_ci{ 72237a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadInt32); 72337a09cd7Sopenharmony_ci} 72437a09cd7Sopenharmony_ci 72537a09cd7Sopenharmony_cibool Parcel::ReadInt64Vector(std::vector<int64_t>* val) 72637a09cd7Sopenharmony_ci{ 72737a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadInt64); 72837a09cd7Sopenharmony_ci} 72937a09cd7Sopenharmony_ci 73037a09cd7Sopenharmony_cibool Parcel::ReadUInt8Vector(std::vector<uint8_t>* val) 73137a09cd7Sopenharmony_ci{ 73237a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadUint8Unaligned); 73337a09cd7Sopenharmony_ci} 73437a09cd7Sopenharmony_ci 73537a09cd7Sopenharmony_cibool Parcel::ReadUInt16Vector(std::vector<uint16_t>* val) 73637a09cd7Sopenharmony_ci{ 73737a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadUint16Unaligned); 73837a09cd7Sopenharmony_ci} 73937a09cd7Sopenharmony_ci 74037a09cd7Sopenharmony_cibool Parcel::ReadUInt32Vector(std::vector<uint32_t>* val) 74137a09cd7Sopenharmony_ci{ 74237a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadUint32); 74337a09cd7Sopenharmony_ci} 74437a09cd7Sopenharmony_ci 74537a09cd7Sopenharmony_cibool Parcel::ReadUInt64Vector(std::vector<uint64_t>* val) 74637a09cd7Sopenharmony_ci{ 74737a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadUint64); 74837a09cd7Sopenharmony_ci} 74937a09cd7Sopenharmony_ci 75037a09cd7Sopenharmony_cibool Parcel::ReadFloatVector(std::vector<float>* val) 75137a09cd7Sopenharmony_ci{ 75237a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadFloat); 75337a09cd7Sopenharmony_ci} 75437a09cd7Sopenharmony_ci 75537a09cd7Sopenharmony_cibool Parcel::ReadDoubleVector(std::vector<double>* val) 75637a09cd7Sopenharmony_ci{ 75737a09cd7Sopenharmony_ci return ReadVector(val, &Parcel::ReadDouble); 75837a09cd7Sopenharmony_ci} 75937a09cd7Sopenharmony_ci 76037a09cd7Sopenharmony_cibool Parcel::ReadStringVector(std::vector<std::string>* val) 76137a09cd7Sopenharmony_ci{ 76237a09cd7Sopenharmony_ci (void)val; 76337a09cd7Sopenharmony_ci return false; 76437a09cd7Sopenharmony_ci} 76537a09cd7Sopenharmony_ci 76637a09cd7Sopenharmony_cibool Parcel::ReadString16Vector(std::vector<std::u16string>* val) 76737a09cd7Sopenharmony_ci{ 76837a09cd7Sopenharmony_ci (void)val; 76937a09cd7Sopenharmony_ci return false; 77037a09cd7Sopenharmony_ci} 77137a09cd7Sopenharmony_ci} // namespace OHOS 772