• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 "parcel.h"
17 #include <climits>
18 #include "securec.h"
19 
20 namespace OHOS {
21 
Parcelable()22 Parcelable::Parcelable() : Parcelable(false)
23 {}
24 
Parcelable(bool asRemote)25 Parcelable::Parcelable(bool asRemote)
26 {
27     (void)asRemote;
28 }
29 
~Parcel()30 Parcel::~Parcel()
31 {
32 }
33 
GetWritableBytes() const34 size_t Parcel::GetWritableBytes() const
35 {
36     return {};
37 }
38 
GetReadableBytes() const39 size_t Parcel::GetReadableBytes() const
40 {
41     return {};
42 }
43 
CalcNewCapacity(size_t minNewCapacity)44 size_t Parcel::CalcNewCapacity(size_t minNewCapacity)
45 {
46     (void)minNewCapacity;
47     return {};
48 }
49 
EnsureWritableCapacity(size_t desireCapacity)50 bool Parcel::EnsureWritableCapacity(size_t desireCapacity)
51 {
52     (void)desireCapacity;
53     return {};
54 }
55 
GetDataSize() const56 size_t Parcel::GetDataSize() const
57 {
58     return {};
59 }
60 
GetData() const61 uintptr_t Parcel::GetData() const
62 {
63     return {};
64 }
65 
GetObjectOffsets() const66 binder_size_t Parcel::GetObjectOffsets() const
67 {
68     return {};
69 }
70 
GetOffsetsSize() const71 size_t Parcel::GetOffsetsSize() const
72 {
73     return {};
74 }
75 
GetDataCapacity() const76 size_t Parcel::GetDataCapacity() const
77 {
78     return {};
79 }
80 
GetMaxCapacity() const81 size_t Parcel::GetMaxCapacity() const
82 {
83     return {};
84 }
85 
SetMaxCapacity(size_t maxCapacity)86 bool Parcel::SetMaxCapacity(size_t maxCapacity)
87 {
88     (void)maxCapacity;
89     return {};
90 }
91 
SetAllocator(Allocator * allocator)92 bool Parcel::SetAllocator(Allocator *allocator)
93 {
94     (void)allocator;
95     return {};
96 }
97 
CheckOffsets()98 bool Parcel::CheckOffsets()
99 {
100     return {};
101 }
102 
InjectOffsets(binder_size_t offsets,size_t offsetSize)103 void Parcel::InjectOffsets(binder_size_t offsets, size_t offsetSize)
104 {
105     (void)offsets;
106     (void)offsetSize;
107 }
108 
FlushBuffer()109 void Parcel::FlushBuffer()
110 {
111 }
112 
SetDataCapacity(size_t newCapacity)113 bool Parcel::SetDataCapacity(size_t newCapacity)
114 {
115     (void)newCapacity;
116     return {};
117 }
118 
SetDataSize(size_t dataSize)119 bool Parcel::SetDataSize(size_t dataSize)
120 {
121     (void)dataSize;
122     return {};
123 }
124 
WriteDataBytes(const void * data,size_t size)125 bool Parcel::WriteDataBytes(const void *data, size_t size)
126 {
127     (void)data;
128     (void)size;
129     return {};
130 }
131 
WritePadBytes(size_t padSize)132 void Parcel::WritePadBytes(size_t padSize)
133 {
134     (void)padSize;
135 }
136 
WriteBuffer(const void * data,size_t size)137 bool Parcel::WriteBuffer(const void *data, size_t size)
138 {
139     (void)data;
140     (void)size;
141     return {};
142 }
143 
WriteBufferAddTerminator(const void * data,size_t size,size_t typeSize)144 bool Parcel::WriteBufferAddTerminator(const void *data, size_t size, size_t typeSize)
145 {
146     (void)data;
147     (void)size;
148     (void)typeSize;
149     return {};
150 }
151 
WriteUnpadBuffer(const void * data,size_t size)152 bool Parcel::WriteUnpadBuffer(const void *data, size_t size)
153 {
154     (void)data;
155     (void)size;
156     return {};
157 }
158 
159 template <typename T>
Write(T value)160 bool Parcel::Write(T value)
161 {
162     (void)value;
163     return {};
164 }
165 
WriteBool(bool value)166 bool Parcel::WriteBool(bool value)
167 {
168     return Write<int32_t>(static_cast<int32_t>(value));
169 }
170 
WriteBoolUnaligned(bool value)171 bool Parcel::WriteBoolUnaligned(bool value)
172 {
173     return Write<bool>(value);
174 }
175 
WriteInt8(int8_t value)176 bool Parcel::WriteInt8(int8_t value)
177 {
178     return Write<int32_t>(static_cast<int32_t>(value));
179 }
180 
WriteInt8Unaligned(int8_t value)181 bool Parcel::WriteInt8Unaligned(int8_t value)
182 {
183     return Write<int8_t>(value);
184 }
185 
WriteInt16(int16_t value)186 bool Parcel::WriteInt16(int16_t value)
187 {
188     return Write<int32_t>(static_cast<int32_t>(value));
189 }
190 
WriteInt16Unaligned(int16_t value)191 bool Parcel::WriteInt16Unaligned(int16_t value)
192 {
193     return Write<int16_t>(value);
194 }
195 
WriteInt32(int32_t value)196 bool Parcel::WriteInt32(int32_t value)
197 {
198     return Write<int32_t>(value);
199 }
200 
WriteInt64(int64_t value)201 bool Parcel::WriteInt64(int64_t value)
202 {
203     return Write<int64_t>(value);
204 }
205 
WriteUint8(uint8_t value)206 bool Parcel::WriteUint8(uint8_t value)
207 {
208     return Write<uint32_t>(static_cast<uint32_t>(value));
209 }
210 
WriteUint8Unaligned(uint8_t value)211 bool Parcel::WriteUint8Unaligned(uint8_t value)
212 {
213     return Write<uint8_t>(value);
214 }
215 
WriteUint16(uint16_t value)216 bool Parcel::WriteUint16(uint16_t value)
217 {
218     return Write<uint32_t>(static_cast<uint32_t>(value));
219 }
220 
WriteUint16Unaligned(uint16_t value)221 bool Parcel::WriteUint16Unaligned(uint16_t value)
222 {
223     return Write<uint16_t>(value);
224 }
225 
WriteUint32(uint32_t value)226 bool Parcel::WriteUint32(uint32_t value)
227 {
228     return Write<uint32_t>(value);
229 }
230 
WriteUint64(uint64_t value)231 bool Parcel::WriteUint64(uint64_t value)
232 {
233     return Write<uint64_t>(value);
234 }
235 
WriteFloat(float value)236 bool Parcel::WriteFloat(float value)
237 {
238     return Write<float>(value);
239 }
240 
WriteDouble(double value)241 bool Parcel::WriteDouble(double value)
242 {
243     return Write<double>(value);
244 }
245 
WritePointer(uintptr_t value)246 bool Parcel::WritePointer(uintptr_t value)
247 {
248     return Write<binder_uintptr_t>(value);
249 }
250 
WriteCString(const char * value)251 bool Parcel::WriteCString(const char *value)
252 {
253     (void)value;
254     return {};
255 }
256 
WriteString(const std::string & value)257 bool Parcel::WriteString(const std::string &value)
258 {
259     (void)value;
260     return {};
261 }
262 
WriteString16(const std::u16string & value)263 bool Parcel::WriteString16(const std::u16string &value)
264 {
265     (void)value;
266     return {};
267 }
268 
WriteString16WithLength(const char16_t * value,size_t len)269 bool Parcel::WriteString16WithLength(const char16_t *value, size_t len)
270 {
271     (void)value;
272     (void)len;
273     return {};
274 }
275 
WriteString8WithLength(const char * value,size_t len)276 bool Parcel::WriteString8WithLength(const char *value, size_t len)
277 {
278     (void)value;
279     (void)len;
280     return {};
281 }
282 
EnsureObjectsCapacity()283 bool Parcel::EnsureObjectsCapacity()
284 {
285     return {};
286 }
287 
WriteObjectOffset(binder_size_t offset)288 bool Parcel::WriteObjectOffset(binder_size_t offset)
289 {
290     (void)offset;
291     return {};
292 }
293 
WriteRemoteObject(const Parcelable * object)294 bool Parcel::WriteRemoteObject(const Parcelable *object)
295 {
296     (void)object;
297     return {};
298 }
299 
WriteParcelable(const Parcelable * object)300 bool Parcel::WriteParcelable(const Parcelable *object)
301 {
302     (void)object;
303     return {};
304 }
305 
WriteStrongParcelable(const sptr<Parcelable> & object)306 bool Parcel::WriteStrongParcelable(const sptr<Parcelable> &object)
307 {
308     (void)object;
309     return {};
310 }
311 
312 template <typename T>
Read(T & value)313 bool Parcel::Read(T &value)
314 {
315     (void)value;
316     return {};
317 }
318 
319 template <typename T>
Read()320 T Parcel::Read()
321 {
322     return {};
323 }
324 
ParseFrom(uintptr_t data,size_t size)325 bool Parcel::ParseFrom(uintptr_t data, size_t size)
326 {
327     (void)data;
328     (void)size;
329     return {};
330 }
331 
ReadBuffer(size_t length)332 const uint8_t *Parcel::ReadBuffer(size_t length)
333 {
334     (void)length;
335     return {};
336 }
337 
ReadUnpadBuffer(size_t length)338 const uint8_t *Parcel::ReadUnpadBuffer(size_t length)
339 {
340     (void)length;
341     return {};
342 }
343 
SkipBytes(size_t bytes)344 void Parcel::SkipBytes(size_t bytes)
345 {
346     (void)bytes;
347 }
348 
GetReadPosition()349 size_t Parcel::GetReadPosition()
350 {
351     return {};
352 }
353 
RewindRead(size_t newPosition)354 bool Parcel::RewindRead(size_t newPosition)
355 {
356     (void)newPosition;
357     return {};
358 }
359 
GetWritePosition()360 size_t Parcel::GetWritePosition()
361 {
362     return {};
363 }
364 
RewindWrite(size_t newPosition)365 bool Parcel::RewindWrite(size_t newPosition)
366 {
367     (void)newPosition;
368     return {};
369 }
370 
ReadBool()371 bool Parcel::ReadBool()
372 {
373     int32_t temp = Read<int32_t>();
374     return (temp != 0);
375 }
376 
ReadBoolUnaligned()377 bool Parcel::ReadBoolUnaligned()
378 {
379     return Read<bool>();
380 }
381 
ReadInt8()382 int8_t Parcel::ReadInt8()
383 {
384     int32_t temp = Read<int32_t>();
385     return static_cast<int8_t>(temp);
386 }
387 
ReadInt16()388 int16_t Parcel::ReadInt16()
389 {
390     int32_t temp = Read<int32_t>();
391     return static_cast<int16_t>(temp);
392 }
393 
ReadInt32()394 int32_t Parcel::ReadInt32()
395 {
396     return Read<int32_t>();
397 }
398 
ReadInt64()399 int64_t Parcel::ReadInt64()
400 {
401     return Read<int64_t>();
402 }
403 
ReadUint16()404 uint16_t Parcel::ReadUint16()
405 {
406     uint32_t temp = Read<uint32_t>();
407     return static_cast<uint16_t>(temp);
408 }
409 
ReadUint32()410 uint32_t Parcel::ReadUint32()
411 {
412     return Read<uint32_t>();
413 }
414 
ReadUint64()415 uint64_t Parcel::ReadUint64()
416 {
417     return Read<uint64_t>();
418 }
419 
ReadFloat()420 float Parcel::ReadFloat()
421 {
422     return Read<float>();
423 }
424 
ReadDouble()425 double Parcel::ReadDouble()
426 {
427     return Read<double>();
428 }
429 
430 template <typename T>
ReadPadded(T & value)431 bool Parcel::ReadPadded(T &value)
432 {
433     (void)value;
434     return {};
435 }
436 
ReadBool(bool & value)437 bool Parcel::ReadBool(bool &value)
438 {
439     return ReadPadded<bool>(value);
440 }
441 
ReadInt8(int8_t & value)442 bool Parcel::ReadInt8(int8_t &value)
443 {
444     return ReadPadded<int8_t>(value);
445 }
446 
ReadInt8Unaligned(int8_t & value)447 bool Parcel::ReadInt8Unaligned(int8_t &value)
448 {
449     return Read<int8_t>(value);
450 }
451 
ReadInt16(int16_t & value)452 bool Parcel::ReadInt16(int16_t &value)
453 {
454     return ReadPadded<int16_t>(value);
455 }
456 
ReadInt16Unaligned(int16_t & value)457 bool Parcel::ReadInt16Unaligned(int16_t &value)
458 {
459     return Read<int16_t>(value);
460 }
461 
ReadInt32(int32_t & value)462 bool Parcel::ReadInt32(int32_t &value)
463 {
464     return Read<int32_t>(value);
465 }
466 
ReadInt64(int64_t & value)467 bool Parcel::ReadInt64(int64_t &value)
468 {
469     return Read<int64_t>(value);
470 }
471 
ReadUint8(uint8_t & value)472 bool Parcel::ReadUint8(uint8_t &value)
473 {
474     return ReadPadded<uint8_t>(value);
475 }
476 
ReadUint8Unaligned(uint8_t & value)477 bool Parcel::ReadUint8Unaligned(uint8_t &value)
478 {
479     return Read<uint8_t>(value);
480 }
481 
ReadUint16(uint16_t & value)482 bool Parcel::ReadUint16(uint16_t &value)
483 {
484     return ReadPadded<uint16_t>(value);
485 }
486 
ReadUint16Unaligned(uint16_t & value)487 bool Parcel::ReadUint16Unaligned(uint16_t &value)
488 {
489     return Read<uint16_t>(value);
490 }
491 
ReadUint32(uint32_t & value)492 bool Parcel::ReadUint32(uint32_t &value)
493 {
494     return Read<uint32_t>(value);
495 }
496 
ReadUint64(uint64_t & value)497 bool Parcel::ReadUint64(uint64_t &value)
498 {
499     return Read<uint64_t>(value);
500 }
501 
ReadFloat(float & value)502 bool Parcel::ReadFloat(float &value)
503 {
504     return Read<float>(value);
505 }
506 
ReadDouble(double & value)507 bool Parcel::ReadDouble(double &value)
508 {
509     return Read<double>(value);
510 }
511 
ReadPointer()512 uintptr_t Parcel::ReadPointer()
513 {
514     return Read<binder_uintptr_t>();
515 }
516 
ReadCString()517 const char *Parcel::ReadCString()
518 {
519     return {};
520 }
521 
ReadString()522 const std::string Parcel::ReadString()
523 {
524     return {};
525 }
526 
ReadString(std::string & value)527 bool Parcel::ReadString(std::string &value)
528 {
529     (void)value;
530     return {};
531 }
532 
ReadString16()533 const std::u16string Parcel::ReadString16()
534 {
535     return {};
536 }
537 
ReadString16(std::u16string & value)538 bool Parcel::ReadString16(std::u16string &value)
539 {
540     (void)value;
541     return {};
542 }
543 
ReadString16WithLength(int32_t & readLength)544 const std::u16string Parcel::ReadString16WithLength(int32_t &readLength)
545 {
546     (void)readLength;
547     return {};
548 }
549 
ReadString8WithLength(int32_t & readLength)550 const std::string Parcel::ReadString8WithLength(int32_t &readLength)
551 {
552     (void)readLength;
553     return {};
554 }
555 
Alloc(size_t size)556 void *DefaultAllocator::Alloc(size_t size)
557 {
558     (void)size;
559     return nullptr;
560 }
561 
Dealloc(void * data)562 void DefaultAllocator::Dealloc(void *data)
563 {
564     if (data != nullptr) {
565         free(data);
566     }
567 }
568 
Realloc(void * data,size_t newSize)569 void *DefaultAllocator::Realloc(void *data, size_t newSize)
570 {
571     (void)data;
572     (void)newSize;
573     return nullptr;
574 }
575 
576 template <typename T1, typename T2>
WriteVector(const std::vector<T1> & val,bool (Parcel::* write)(T2))577 bool Parcel::WriteVector(const std::vector<T1> &val, bool (Parcel::*write)(T2))
578 {
579     (void)val;
580     (void)write;
581     return {};
582 }
583 
WriteBoolVector(const std::vector<bool> & val)584 bool Parcel::WriteBoolVector(const std::vector<bool> &val)
585 {
586     return WriteVector(val, &Parcel::WriteBool);
587 }
588 
WriteInt8Vector(const std::vector<int8_t> & val)589 bool Parcel::WriteInt8Vector(const std::vector<int8_t> &val)
590 {
591     return WriteVector(val, &Parcel::WriteInt8Unaligned);
592 }
593 
WriteInt16Vector(const std::vector<int16_t> & val)594 bool Parcel::WriteInt16Vector(const std::vector<int16_t> &val)
595 {
596     return WriteVector(val, &Parcel::WriteInt16);
597 }
598 
WriteInt32Vector(const std::vector<int32_t> & val)599 bool Parcel::WriteInt32Vector(const std::vector<int32_t> &val)
600 {
601     return WriteVector(val, &Parcel::WriteInt32);
602 }
603 
WriteInt64Vector(const std::vector<int64_t> & val)604 bool Parcel::WriteInt64Vector(const std::vector<int64_t> &val)
605 {
606     return WriteVector(val, &Parcel::WriteInt64);
607 }
608 
WriteUInt8Vector(const std::vector<uint8_t> & val)609 bool Parcel::WriteUInt8Vector(const std::vector<uint8_t> &val)
610 {
611     return WriteVector(val, &Parcel::WriteUint8Unaligned);
612 }
613 
WriteUInt16Vector(const std::vector<uint16_t> & val)614 bool Parcel::WriteUInt16Vector(const std::vector<uint16_t> &val)
615 {
616     return WriteVector(val, &Parcel::WriteUint16Unaligned);
617 }
618 
WriteUInt32Vector(const std::vector<uint32_t> & val)619 bool Parcel::WriteUInt32Vector(const std::vector<uint32_t> &val)
620 {
621     return WriteVector(val, &Parcel::WriteUint32);
622 }
623 
WriteUInt64Vector(const std::vector<uint64_t> & val)624 bool Parcel::WriteUInt64Vector(const std::vector<uint64_t> &val)
625 {
626     return WriteVector(val, &Parcel::WriteUint64);
627 }
628 
WriteFloatVector(const std::vector<float> & val)629 bool Parcel::WriteFloatVector(const std::vector<float> &val)
630 {
631     return WriteVector(val, &Parcel::WriteFloat);
632 }
633 
WriteDoubleVector(const std::vector<double> & val)634 bool Parcel::WriteDoubleVector(const std::vector<double> &val)
635 {
636     return WriteVector(val, &Parcel::WriteDouble);
637 }
638 
WriteStringVector(const std::vector<std::string> & val)639 bool Parcel::WriteStringVector(const std::vector<std::string> &val)
640 {
641     return WriteVector(val, &Parcel::WriteString);
642 }
643 
WriteString16Vector(const std::vector<std::u16string> & val)644 bool Parcel::WriteString16Vector(const std::vector<std::u16string> &val)
645 {
646     return WriteVector(val, &Parcel::WriteString16);
647 }
648 
649 template <typename T>
ReadVector(std::vector<T> * val,bool (Parcel::* read)(T &))650 bool Parcel::ReadVector(std::vector<T> *val, bool (Parcel::*read)(T &))
651 {
652     (void)val;
653     (void)read;
654     return {};
655 }
656 
ReadBoolVector(std::vector<bool> * val)657 bool Parcel::ReadBoolVector(std::vector<bool> *val)
658 {
659     (void)val;
660     return {};
661 }
662 
ReadInt8Vector(std::vector<int8_t> * val)663 bool Parcel::ReadInt8Vector(std::vector<int8_t> *val)
664 {
665     return ReadVector(val, &Parcel::ReadInt8Unaligned);
666 }
667 
ReadInt16Vector(std::vector<int16_t> * val)668 bool Parcel::ReadInt16Vector(std::vector<int16_t> *val)
669 {
670     return ReadVector(val, &Parcel::ReadInt16);
671 }
672 
ReadInt32Vector(std::vector<int32_t> * val)673 bool Parcel::ReadInt32Vector(std::vector<int32_t> *val)
674 {
675     return ReadVector(val, &Parcel::ReadInt32);
676 }
677 
ReadInt64Vector(std::vector<int64_t> * val)678 bool Parcel::ReadInt64Vector(std::vector<int64_t> *val)
679 {
680     return ReadVector(val, &Parcel::ReadInt64);
681 }
682 
ReadUInt8Vector(std::vector<uint8_t> * val)683 bool Parcel::ReadUInt8Vector(std::vector<uint8_t> *val)
684 {
685     return ReadVector(val, &Parcel::ReadUint8Unaligned);
686 }
687 
ReadUInt16Vector(std::vector<uint16_t> * val)688 bool Parcel::ReadUInt16Vector(std::vector<uint16_t> *val)
689 {
690     return ReadVector(val, &Parcel::ReadUint16Unaligned);
691 }
692 
ReadUInt32Vector(std::vector<uint32_t> * val)693 bool Parcel::ReadUInt32Vector(std::vector<uint32_t> *val)
694 {
695     return ReadVector(val, &Parcel::ReadUint32);
696 }
697 
ReadUInt64Vector(std::vector<uint64_t> * val)698 bool Parcel::ReadUInt64Vector(std::vector<uint64_t> *val)
699 {
700     return ReadVector(val, &Parcel::ReadUint64);
701 }
702 
ReadFloatVector(std::vector<float> * val)703 bool Parcel::ReadFloatVector(std::vector<float> *val)
704 {
705     return ReadVector(val, &Parcel::ReadFloat);
706 }
707 
ReadDoubleVector(std::vector<double> * val)708 bool Parcel::ReadDoubleVector(std::vector<double> *val)
709 {
710     return ReadVector(val, &Parcel::ReadDouble);
711 }
712 
ReadStringVector(std::vector<std::string> * val)713 bool Parcel::ReadStringVector(std::vector<std::string> *val)
714 {
715     (void)val;
716     return {};
717 }
718 
ReadString16Vector(std::vector<std::u16string> * val)719 bool Parcel::ReadString16Vector(std::vector<std::u16string> *val)
720 {
721     (void)val;
722     return {};
723 }
724 }  // namespace OHOS
725