1 /*
2 * Copyright (c) 2024 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 "hdi_type_emitter.h"
17
18 namespace OHOS {
19 namespace Idl {
20 std::string HdiTypeEmitter::dataParcelName_;
21 std::string HdiTypeEmitter::replyParcelName_;
22 std::string HdiTypeEmitter::errorCodeName_;
IsPod() const23 bool HdiTypeEmitter::IsPod() const
24 {
25 return isPod_;
26 }
27
SetPod(const bool & isPod)28 void HdiTypeEmitter::SetPod(const bool &isPod)
29 {
30 isPod_ = isPod;
31 }
32
GetTypeKind()33 TypeKind HdiTypeEmitter::GetTypeKind()
34 {
35 return TypeKind::TYPE_UNKNOWN;
36 }
37
SetTypeName(const std::string & name)38 void HdiTypeEmitter::SetTypeName(const std::string &name)
39 {
40 typeName_ = name;
41 }
42
GetTypeName()43 std::string HdiTypeEmitter::GetTypeName()
44 {
45 return typeName_;
46 }
47
SetName(const std::string & name)48 void HdiTypeEmitter::SetName(const std::string &name)
49 {
50 name_ = name;
51 }
52
GetName()53 std::string HdiTypeEmitter::GetName()
54 {
55 return name_;
56 }
57
EmitCType(TypeMode mode) const58 std::string HdiTypeEmitter::EmitCType(TypeMode mode) const
59 {
60 return "unknow";
61 }
62
EmitCppType(TypeMode mode) const63 std::string HdiTypeEmitter::EmitCppType(TypeMode mode) const
64 {
65 return "unknow";
66 }
67
EmitJavaType(TypeMode mode,bool isInnerType) const68 std::string HdiTypeEmitter::EmitJavaType(TypeMode mode, bool isInnerType) const
69 {
70 return "unknow";
71 }
72
EmitCTypeDecl() const73 std::string HdiTypeEmitter::EmitCTypeDecl() const
74 {
75 StringBuilder sb;
76 return sb.ToString();
77 }
78
EmitCppTypeDecl() const79 std::string HdiTypeEmitter::EmitCppTypeDecl() const
80 {
81 StringBuilder sb;
82 return sb.ToString();
83 }
84
EmitJavaTypeDecl() const85 std::string HdiTypeEmitter::EmitJavaTypeDecl() const
86 {
87 StringBuilder sb;
88
89 return sb.ToString();
90 }
91
EmitCWriteVar(TypeMode mode,const std::string & name,const std::string & gotoLabel,StringBuilder & sb,const std::string & prefix) const92 void HdiTypeEmitter::EmitCWriteVar(TypeMode mode, const std::string &name,
93 const std::string &gotoLabel, StringBuilder &sb, const std::string &prefix) const
94 {
95 sb.Append(prefix).AppendFormat("//Writing \"%s\" type of data is not supported\n", name_.c_str());
96 }
97
EmitCProxyWriteOutVar(const std::string & name,const std::string & gotoLabel,StringBuilder & sb,const std::string & prefix) const98 void HdiTypeEmitter::EmitCProxyWriteOutVar(const std::string &name, const std::string &gotoLabel, StringBuilder &sb,
99 const std::string &prefix) const
100 {
101 }
102
EmitCProxyReadVar(const std::string & name,bool isInnerType,const std::string & gotoLabel,StringBuilder & sb,const std::string & prefix) const103 void HdiTypeEmitter::EmitCProxyReadVar(const std::string &name, bool isInnerType, const std::string &gotoLabel,
104 StringBuilder &sb, const std::string &prefix) const
105 {
106 sb.Append(prefix).AppendFormat("//Reading \"%s\" type of data is not supported\n", name_.c_str());
107 }
108
EmitCStubReadVar(const std::string & name,const std::string & gotoLabel,StringBuilder & sb,const std::string & prefix) const109 void HdiTypeEmitter::EmitCStubReadVar(const std::string &name, const std::string &gotoLabel, StringBuilder &sb,
110 const std::string &prefix) const
111 {
112 sb.Append(prefix).AppendFormat("//Reading \"%s\" type of data is not supported\n", name_.c_str());
113 }
114
EmitCStubReadOutVar(const std::string & memFlagName,const std::string & name,const std::string & gotoLabel,StringBuilder & sb,const std::string & prefix) const115 void HdiTypeEmitter::EmitCStubReadOutVar(const std::string &memFlagName, const std::string &name,
116 const std::string &gotoLabel, StringBuilder &sb, const std::string &prefix) const
117 {
118 sb.Append(prefix).AppendFormat("//Reading \"%s\" type of data is not supported\n", name_.c_str());
119 }
120
EmitCppWriteVar(const std::string & parcelName,const std::string & name,StringBuilder & sb,const std::string & prefix,unsigned int innerLevel) const121 void HdiTypeEmitter::EmitCppWriteVar(const std::string &parcelName, const std::string &name,
122 StringBuilder &sb, const std::string &prefix, unsigned int innerLevel) const
123 {
124 sb.Append(prefix).AppendFormat("//Writing \"%s\" type of data is not supported\n", name_.c_str());
125 }
126
EmitCppReadVar(const std::string & name,StringBuilder & sb,const std::string & prefix,TypeMode mode,unsigned int innerLevel) const127 void HdiTypeEmitter::EmitCppReadVar(const std::string &name, StringBuilder &sb, const std::string &prefix,
128 TypeMode mode, unsigned int innerLevel) const
129 {
130 sb.Append(prefix).AppendFormat("//Reading \"%s\" type of data is not supported\n", name_.c_str());
131 }
132
EmitCMarshalling(const std::string & name,StringBuilder & sb,const std::string & prefix) const133 void HdiTypeEmitter::EmitCMarshalling(const std::string &name, StringBuilder &sb, const std::string &prefix) const
134 {
135 sb.Append(prefix).AppendFormat("//Writing \"%s\" type of data is not supported\n", name_.c_str());
136 }
137
EmitCUnMarshalling(const std::string & name,const std::string & gotoLabel,StringBuilder & sb,const std::string & prefix,std::vector<std::string> & freeObjStatements) const138 void HdiTypeEmitter::EmitCUnMarshalling(const std::string &name, const std::string &gotoLabel,
139 StringBuilder &sb, const std::string &prefix, std::vector<std::string> &freeObjStatements) const
140 {
141 sb.Append(prefix).AppendFormat("//Reading \"%s\" type of data is not supported\n", name_.c_str());
142 }
143
EmitFreeStatements(const std::vector<std::string> & freeObjStatements,StringBuilder & sb,const std::string & prefix) const144 void HdiTypeEmitter::EmitFreeStatements(
145 const std::vector<std::string> &freeObjStatements, StringBuilder &sb, const std::string &prefix) const
146 {
147 for (auto it = freeObjStatements.rbegin(); it != freeObjStatements.rend(); it++) {
148 sb.Append(prefix).Append(*it);
149 }
150 }
151
EmitCppMarshalling(const std::string & parcelName,const std::string & name,StringBuilder & sb,const std::string & prefix,unsigned int innerLevel) const152 void HdiTypeEmitter::EmitCppMarshalling(const std::string &parcelName, const std::string &name,
153 StringBuilder &sb, const std::string &prefix, unsigned int innerLevel) const
154 {
155 }
156
EmitCppUnMarshalling(const std::string & parcelName,const std::string & name,StringBuilder & sb,const std::string & prefix,unsigned int innerLevel) const157 void HdiTypeEmitter::EmitCppUnMarshalling(const std::string &parcelName, const std::string &name,
158 StringBuilder &sb, const std::string &prefix, unsigned int innerLevel) const
159 {
160 }
161
EmitMemoryRecycle(const std::string & name,bool ownership,StringBuilder & sb,const std::string & prefix) const162 void HdiTypeEmitter::EmitMemoryRecycle(
163 const std::string &name, bool ownership, StringBuilder &sb, const std::string &prefix) const
164 {
165 // only std::string, Array, List, struct and union type need recycle memory
166 (void)name;
167 (void)ownership;
168 (void)sb;
169 (void)prefix;
170 }
171
EmitJavaWriteVar(const std::string & parcelName,const std::string & name,StringBuilder & sb,const std::string & prefix,TypeMode mode) const172 void HdiTypeEmitter::EmitJavaWriteVar(const std::string &parcelName, const std::string &name,
173 StringBuilder &sb, const std::string &prefix, TypeMode mode) const
174 {
175 sb.Append(prefix).AppendFormat("//Writing \"%s\" type of data is not supported\n", name_.c_str());
176 }
177
EmitJavaReadVar(const std::string & parcelName,const std::string & name,StringBuilder & sb,const std::string & prefix) const178 void HdiTypeEmitter::EmitJavaReadVar(
179 const std::string &parcelName, const std::string &name, StringBuilder &sb, const std::string &prefix) const
180 {
181 sb.Append(prefix).AppendFormat("//Reading \"%s\" type of data is not supported\n", name_.c_str());
182 }
183
EmitJavaReadInnerVar(const std::string & parcelName,const std::string & name,bool isInner,StringBuilder & sb,const std::string & prefix) const184 void HdiTypeEmitter::EmitJavaReadInnerVar(const std::string &parcelName, const std::string &name, bool isInner,
185 StringBuilder &sb, const std::string &prefix) const
186 {
187 sb.Append(prefix).AppendFormat("//Reading \"%s\" type of data is not supported\n", name_.c_str());
188 }
189
EmitCWriteMethods(UtilMethodMap & methods,const std::string & prefix,const std::string & methodPrefix,bool isDecl) const190 void HdiTypeEmitter::EmitCWriteMethods(UtilMethodMap &methods, const std::string &prefix,
191 const std::string &methodPrefix, bool isDecl) const
192 {
193 }
194
EmitCReadMethods(UtilMethodMap & methods,const std::string & prefix,const std::string & methodPrefix,bool isDecl) const195 void HdiTypeEmitter::EmitCReadMethods(UtilMethodMap &methods, const std::string &prefix,
196 const std::string &methodPrefix, bool isDecl) const
197 {
198 }
199
EmitCStubReadMethods(UtilMethodMap & methods,const std::string & prefix,const std::string & methodPrefix,bool isDecl) const200 void HdiTypeEmitter::EmitCStubReadMethods(UtilMethodMap &methods, const std::string &prefix,
201 const std::string &methodPrefix, bool isDecl) const
202 {
203 }
204
EmitCppWriteMethods(UtilMethodMap & methods,const std::string & prefix,const std::string & methodPrefix,bool isDecl) const205 void HdiTypeEmitter::EmitCppWriteMethods(UtilMethodMap &methods, const std::string &prefix,
206 const std::string &methodPrefix, bool isDecl) const
207 {
208 }
209
EmitCppReadMethods(UtilMethodMap & methods,const std::string & prefix,const std::string & methodPrefix,bool isDecl) const210 void HdiTypeEmitter::EmitCppReadMethods(UtilMethodMap &methods, const std::string &prefix,
211 const std::string &methodPrefix, bool isDecl) const
212 {
213 }
214 } // namespace Idl
215 } // namespace OHOS