1 /*
2  * Copyright (C) 2021 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 "message_parcel.h"
17 #include "iremote_object.h"
18 
19 namespace {
20     bool g_mockWriteInterfaceTokenRet = true;
21 }
22 
MockWriteInterfaceToken(bool mockRet)23 void MockWriteInterfaceToken(bool mockRet)
24 {
25     g_mockWriteInterfaceTokenRet = mockRet;
26 }
27 
28 namespace OHOS {
29 
MessageParcel()30 MessageParcel::MessageParcel()
31 {}
32 
MessageParcel(Allocator * allocator)33 MessageParcel::MessageParcel(Allocator *allocator)
34     : Parcel(allocator)
35 {
36     writeRawDataFd_ = -1;
37     readRawDataFd_ = -1;
38     kernelMappedWrite_ = nullptr;
39     kernelMappedRead_ = nullptr;
40     rawData_ = nullptr;
41     rawDataSize_ = 0;
42 }
43 
~MessageParcel()44 MessageParcel::~MessageParcel()
45 {}
46 
47 
48 #ifndef CONFIG_IPC_SINGLE
WriteDBinderProxy(const sptr<IRemoteObject> & object,uint32_t handle,uint64_t stubIndex)49 bool MessageParcel::WriteDBinderProxy(const sptr<IRemoteObject> &object, uint32_t handle, uint64_t stubIndex)
50 {
51     return true;
52 }
53 #endif
54 
WriteRemoteObject(const sptr<IRemoteObject> & object)55 bool MessageParcel::WriteRemoteObject(const sptr<IRemoteObject> &object)
56 {
57     return true;
58 }
59 
ReadRemoteObject()60 sptr<IRemoteObject> MessageParcel::ReadRemoteObject()
61 {
62     sptr<IRemoteObject> temp = ReadObject<IRemoteObject>();
63     return temp;
64 }
65 
WriteFileDescriptor(int fd)66 bool MessageParcel::WriteFileDescriptor(int fd)
67 {
68     return true;
69 }
70 
ReadFileDescriptor()71 int MessageParcel::ReadFileDescriptor()
72 {
73     return 0;
74 }
75 
ClearFileDescriptor()76 void MessageParcel::ClearFileDescriptor()
77 {}
78 
ContainFileDescriptors() const79 bool MessageParcel::ContainFileDescriptors() const
80 {
81     return true;
82 }
83 
WriteInterfaceToken(std::u16string name)84 bool MessageParcel::WriteInterfaceToken(std::u16string name)
85 {
86     return g_mockWriteInterfaceTokenRet;
87 }
88 
ReadInterfaceToken()89 std::u16string MessageParcel::ReadInterfaceToken()
90 {
91     return ReadString16();
92 }
93 
WriteRawData(const void * data,size_t size)94 bool MessageParcel::WriteRawData(const void *data, size_t size)
95 {
96     return true;
97 }
98 
RestoreRawData(std::shared_ptr<char> rawData,size_t size)99 bool MessageParcel::RestoreRawData(std::shared_ptr<char> rawData, size_t size)
100 {
101     return true;
102 }
103 
ReadRawData(size_t size)104 const void *MessageParcel::ReadRawData(size_t size)
105 {
106     return nullptr;
107 }
108 
GetRawData() const109 const void *MessageParcel::GetRawData() const
110 {
111     return nullptr;
112 }
113 
GetRawDataSize() const114 size_t MessageParcel::GetRawDataSize() const
115 {
116     return 0;
117 }
118 
GetRawDataCapacity() const119 size_t MessageParcel::GetRawDataCapacity() const
120 {
121     return 0;
122 }
123 
WriteNoException()124 void MessageParcel::WriteNoException()
125 {
126     WriteInt32(0);
127 }
128 
ReadException()129 int32_t MessageParcel::ReadException()
130 {
131     return 0;
132 }
133 
WriteAshmem(sptr<Ashmem> ashmem)134 bool MessageParcel::WriteAshmem(sptr<Ashmem> ashmem)
135 {
136     return true;
137 }
138 
ReadAshmem()139 sptr<Ashmem> MessageParcel::ReadAshmem()
140 {
141     return nullptr;
142 }
143 
Append(MessageParcel & data)144 bool MessageParcel::Append(MessageParcel &data)
145 {
146     return true;
147 }
148 } // namespace OHOS
149