Lines Matching refs:sb
33 StringBuilder sb; in EmitInterfaceHeaderFile() local
35 EmitLicense(sb); in EmitInterfaceHeaderFile()
36 sb.Append("\n"); in EmitInterfaceHeaderFile()
37 EmitHeadMacro(sb, interfaceFullName_); in EmitInterfaceHeaderFile()
38 sb.Append("\n"); in EmitInterfaceHeaderFile()
39 EmitInterfaceInclusions(sb); in EmitInterfaceHeaderFile()
40 sb.Append("\n"); in EmitInterfaceHeaderFile()
41 if (EmitInterfaceUsings(sb)) { in EmitInterfaceHeaderFile()
42 sb.Append("\n"); in EmitInterfaceHeaderFile()
44 EmitInterfaceDefinition(sb); in EmitInterfaceHeaderFile()
45 EmitTailMacro(sb, interfaceFullName_); in EmitInterfaceHeaderFile()
47 String data = sb.ToString(); in EmitInterfaceHeaderFile()
53 void CppCodeEmitter::EmitInterfaceInclusions(StringBuilder& sb) in EmitInterfaceInclusions() argument
55 EmitInterfaceStdlibInclusions(sb); in EmitInterfaceInclusions()
56 EmitInterfaceDBinderInclusions(sb); in EmitInterfaceInclusions()
57 EmitInterfaceSelfDefinedTypeInclusions(sb); in EmitInterfaceInclusions()
60 void CppCodeEmitter::EmitInterfaceStdlibInclusions(StringBuilder& sb) in EmitInterfaceStdlibInclusions() argument
74 sb.Append("#include <cstdint>\n"); in EmitInterfaceStdlibInclusions()
81 sb.Append("#include <string_ex.h>\n"); in EmitInterfaceStdlibInclusions()
89 sb.Append("#include <vector>\n"); in EmitInterfaceStdlibInclusions()
96 sb.Append("#include <unordered_map>\n"); in EmitInterfaceStdlibInclusions()
107 void CppCodeEmitter::EmitInterfaceDBinderInclusions(StringBuilder& sb) in EmitInterfaceDBinderInclusions() argument
109 sb.Append("#include <iremote_broker.h>\n"); in EmitInterfaceDBinderInclusions()
111 sb.Append("#include \"hilog/log.h\"\n"); in EmitInterfaceDBinderInclusions()
145 void CppCodeEmitter::EmitInterfaceSelfDefinedTypeInclusions(StringBuilder& sb) in EmitInterfaceSelfDefinedTypeInclusions() argument
156 sb.Append("#include ").AppendFormat("\"%s.h\"\n", fileName.string()); in EmitInterfaceSelfDefinedTypeInclusions()
164 sb.Append("#include ").AppendFormat("\"%s.h\"\n", fileName.string()); in EmitInterfaceSelfDefinedTypeInclusions()
169 bool CppCodeEmitter::EmitInterfaceUsings(StringBuilder& sb) in EmitInterfaceUsings() argument
179 sb.Append("using ").AppendFormat("%s;\n", fullName.string()); in EmitInterfaceUsings()
191 sb.Append("using ").AppendFormat("%s;\n", fullName.string()); in EmitInterfaceUsings()
198 void CppCodeEmitter::EmitInterfaceDefinition(StringBuilder& sb) in EmitInterfaceDefinition() argument
200 EmitBeginNamespace(sb); in EmitInterfaceDefinition()
201 sb.AppendFormat("class %s : public IRemoteBroker {\n", metaInterface_->name_); in EmitInterfaceDefinition()
202 sb.Append("public:\n"); in EmitInterfaceDefinition()
203 EmitInterfaceBody(sb, TAB); in EmitInterfaceDefinition()
204 EmitInterfaceMemberVariables(sb, TAB); in EmitInterfaceDefinition()
205 sb.Append("};\n"); in EmitInterfaceDefinition()
206 EmitEndNamespace(sb); in EmitInterfaceDefinition()
209 void CppCodeEmitter::EmitInterfaceBody(StringBuilder& sb, const String& prefix) in EmitInterfaceBody() argument
212 … sb.Append(TAB).AppendFormat("DECLARE_INTERFACE_DESCRIPTOR(u\"%s\");\n", nameWithoutPath.string()); in EmitInterfaceBody()
213 sb.Append("\n"); in EmitInterfaceBody()
214 EmitInterfaceMethods(sb, TAB); in EmitInterfaceBody()
217 void CppCodeEmitter::EmitInterfaceMethods(StringBuilder& sb, const String& prefix) in EmitInterfaceMethods() argument
222 EmitInterfaceMethod(mm, sb, prefix); in EmitInterfaceMethods()
224 sb.Append("\n"); in EmitInterfaceMethods()
230 void CppCodeEmitter::EmitInterfaceMethod(MetaMethod* mm, StringBuilder& sb, const String& prefix) in EmitInterfaceMethod() argument
234 sb.Append(prefix).AppendFormat("virtual ErrCode %s() = 0;\n", mm->name_); in EmitInterfaceMethod()
236 sb.Append(prefix).AppendFormat("virtual ErrCode %s(\n", mm->name_); in EmitInterfaceMethod()
239 EmitInterfaceMethodParameter(mp, sb, prefix + TAB); in EmitInterfaceMethod()
241 sb.Append(",\n"); in EmitInterfaceMethod()
245 EmitInterfaceMethodReturn(returnType, sb, prefix + TAB); in EmitInterfaceMethod()
247 sb.Append(") = 0;\n"); in EmitInterfaceMethod()
251 void CppCodeEmitter::EmitInterfaceMethodParameter(MetaParameter* mp, StringBuilder& sb, const Strin… in EmitInterfaceMethodParameter() argument
253 sb.Append(prefix); in EmitInterfaceMethodParameter()
257 sb.AppendFormat("%s %s", EmitType(mt, mp->attributes_, false).string(), name.c_str()); in EmitInterfaceMethodParameter()
260 void CppCodeEmitter::EmitInterfaceMethodReturn(MetaType* mt, StringBuilder& sb, const String& prefi… in EmitInterfaceMethodReturn() argument
262 sb.Append(prefix).AppendFormat("%s result", EmitType(mt, ATTR_OUT, false).string()); in EmitInterfaceMethodReturn()
265 void CppCodeEmitter::EmitInterfaceMemberVariables(StringBuilder& sb, const String& prefix) in EmitInterfaceMemberVariables() argument
267 sb.Append("protected:\n"); in EmitInterfaceMemberVariables()
269 sb.Append(prefix).AppendFormat( in EmitInterfaceMemberVariables()
273 sb.Append(prefix).Append("const int VECTOR_MAX_SIZE = 102400;\n"); in EmitInterfaceMemberVariables()
274 sb.Append(prefix).Append("const int LIST_MAX_SIZE = 102400;\n"); in EmitInterfaceMemberVariables()
275 sb.Append(prefix).Append("const int MAP_MAX_SIZE = 102400;\n"); in EmitInterfaceMemberVariables()
289 StringBuilder sb; in EmitInterfaceProxyHeaderFile() local
291 EmitLicense(sb); in EmitInterfaceProxyHeaderFile()
292 sb.Append("\n"); in EmitInterfaceProxyHeaderFile()
293 EmitHeadMacro(sb, proxyFullName_); in EmitInterfaceProxyHeaderFile()
294 sb.Append("\n"); in EmitInterfaceProxyHeaderFile()
295 sb.AppendFormat("#include \"%s.h\"\n", FileName(interfaceName_).string()); in EmitInterfaceProxyHeaderFile()
296 sb.Append("#include <iremote_proxy.h>\n"); in EmitInterfaceProxyHeaderFile()
298 sb.Append("#include \"api_cache_manager.h\"\n"); in EmitInterfaceProxyHeaderFile()
300 sb.Append("\n"); in EmitInterfaceProxyHeaderFile()
301 EmitInterfaceProxyInHeaderFile(sb); in EmitInterfaceProxyHeaderFile()
302 EmitTailMacro(sb, proxyFullName_); in EmitInterfaceProxyHeaderFile()
304 String data = sb.ToString(); in EmitInterfaceProxyHeaderFile()
310 void CppCodeEmitter::EmitInterfaceProxyInHeaderFile(StringBuilder& sb) in EmitInterfaceProxyInHeaderFile() argument
312 EmitBeginNamespace(sb); in EmitInterfaceProxyInHeaderFile()
313 …sb.AppendFormat("class %s : public IRemoteProxy<%s> {\n", proxyName_.string(), interfaceName_.stri… in EmitInterfaceProxyInHeaderFile()
314 sb.Append("public:\n"); in EmitInterfaceProxyInHeaderFile()
315 EmitInterfaceProxyConstructor(sb, TAB); in EmitInterfaceProxyInHeaderFile()
316 sb.Append("\n"); in EmitInterfaceProxyInHeaderFile()
317 EmitInterfaceProxyMethodDecls(sb, TAB); in EmitInterfaceProxyInHeaderFile()
318 sb.Append("\n"); in EmitInterfaceProxyInHeaderFile()
319 sb.Append("private:\n"); in EmitInterfaceProxyInHeaderFile()
320 EmitInterfaceProxyConstants(sb, TAB); in EmitInterfaceProxyInHeaderFile()
321 sb.Append("};\n"); in EmitInterfaceProxyInHeaderFile()
322 EmitEndNamespace(sb); in EmitInterfaceProxyInHeaderFile()
325 void CppCodeEmitter::EmitInterfaceProxyRegisterDeathRecipient(StringBuilder& sb, const String& pref… in EmitInterfaceProxyRegisterDeathRecipient() argument
327 sb.Append(prefix).Append("if (remote != nullptr) {\n"); in EmitInterfaceProxyRegisterDeathRecipient()
328 sb.Append(prefix + TAB).Append("if (!remote->IsProxyObject()) {\n"); in EmitInterfaceProxyRegisterDeathRecipient()
330 … sb.Append(prefix + TAB + TAB).Append("HiLog::Error(LABEL, \"remote is not proxy object!\");\n"); in EmitInterfaceProxyRegisterDeathRecipient()
332 sb.Append(prefix + TAB + TAB).Append("return;\n"); in EmitInterfaceProxyRegisterDeathRecipient()
333 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceProxyRegisterDeathRecipient()
334 sb.Append(prefix + TAB).AppendFormat("deathRecipient_ = new (std::nothrow) %s(*this);\n", in EmitInterfaceProxyRegisterDeathRecipient()
336 sb.Append(prefix + TAB).Append("if (deathRecipient_ == nullptr) {\n"); in EmitInterfaceProxyRegisterDeathRecipient()
338 … sb.Append(prefix + TAB + TAB).Append("HiLog::Error(LABEL, \"deathRecipient_ is nullptr!\");\n"); in EmitInterfaceProxyRegisterDeathRecipient()
340 sb.Append(prefix + TAB + TAB).Append("return;\n"); in EmitInterfaceProxyRegisterDeathRecipient()
341 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceProxyRegisterDeathRecipient()
342 sb.Append(prefix + TAB).Append("if (!remote->AddDeathRecipient(deathRecipient_)) {\n"); in EmitInterfaceProxyRegisterDeathRecipient()
344 … sb.Append(prefix + TAB + TAB).Append("HiLog::Error(LABEL, \"AddDeathRecipient failed!\");\n"); in EmitInterfaceProxyRegisterDeathRecipient()
346 sb.Append(prefix + TAB + TAB).Append("return;\n"); in EmitInterfaceProxyRegisterDeathRecipient()
347 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceProxyRegisterDeathRecipient()
348 sb.Append(prefix + TAB).Append("remote_ = remote;\n"); in EmitInterfaceProxyRegisterDeathRecipient()
349 sb.Append(prefix).Append("}\n"); in EmitInterfaceProxyRegisterDeathRecipient()
352 void CppCodeEmitter::EmitInterfaceProxyAddCacheAbleAPI(StringBuilder& sb, const String& prefix) in EmitInterfaceProxyAddCacheAbleAPI() argument
354 sb.Append("\n"); in EmitInterfaceProxyAddCacheAbleAPI()
364 sb.Append(prefix + TAB).AppendFormat( in EmitInterfaceProxyAddCacheAbleAPI()
368 sb.Append(prefix + TAB).AppendFormat( in EmitInterfaceProxyAddCacheAbleAPI()
373 sb.Append("\n"); in EmitInterfaceProxyAddCacheAbleAPI()
374 EmitInterfaceProxyRegisterDeathRecipient(sb, prefix + TAB); in EmitInterfaceProxyAddCacheAbleAPI()
377 void CppCodeEmitter::EmitInterfaceProxyUnRegisterDeathRecipient(StringBuilder& sb, const String& pr… in EmitInterfaceProxyUnRegisterDeathRecipient() argument
379 sb.Append(prefix).Append("if (remote_ == nullptr) {\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
380 sb.Append(prefix).Append(TAB).Append("return;\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
381 sb.Append(prefix).Append("}\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
382 sb.Append(prefix).Append("if (deathRecipient_ == nullptr) {\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
383 sb.Append(prefix).Append(TAB).Append("return;\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
384 sb.Append(prefix).Append("}\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
385 sb.Append(prefix).Append("remote_->RemoveDeathRecipient(deathRecipient_);\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
386 sb.Append(prefix).Append("remote_ = nullptr;\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
388 sb.Append("\n"); in EmitInterfaceProxyUnRegisterDeathRecipient()
392 sb.Append(prefix).AppendFormat( in EmitInterfaceProxyUnRegisterDeathRecipient()
400 void CppCodeEmitter::EmitInterfaceProxyConstructor(StringBuilder& sb, const String& prefix) in EmitInterfaceProxyConstructor() argument
402 sb.Append(prefix).AppendFormat("explicit %s(\n", proxyName_.string()); in EmitInterfaceProxyConstructor()
403 sb.Append(prefix + TAB).Append("const sptr<IRemoteObject>& remote)\n"); in EmitInterfaceProxyConstructor()
404 sb.Append(prefix + TAB).AppendFormat(": IRemoteProxy<%s>(remote)\n", interfaceName_.string()); in EmitInterfaceProxyConstructor()
405 sb.Append(prefix).Append("{"); in EmitInterfaceProxyConstructor()
406 EmitInterfaceProxyAddCacheAbleAPI(sb, prefix); in EmitInterfaceProxyConstructor()
407 sb.Append(prefix).Append("}\n\n"); in EmitInterfaceProxyConstructor()
408 sb.Append(prefix).AppendFormat("virtual ~%s()\n", proxyName_.string()); in EmitInterfaceProxyConstructor()
409 sb.Append(prefix).Append("{\n"); in EmitInterfaceProxyConstructor()
411 EmitInterfaceProxyUnRegisterDeathRecipient(sb, prefix + TAB); in EmitInterfaceProxyConstructor()
413 sb.Append(prefix).Append("}\n"); in EmitInterfaceProxyConstructor()
416 void CppCodeEmitter::EmitInterfaceProxyMethodDecls(StringBuilder& sb, const String& prefix) in EmitInterfaceProxyMethodDecls() argument
421 EmitInterfaceProxyMethodDecl(mm, sb, prefix); in EmitInterfaceProxyMethodDecls()
423 sb.Append("\n"); in EmitInterfaceProxyMethodDecls()
429 void CppCodeEmitter::EmitInterfaceProxyMethodDecl(MetaMethod* mm, StringBuilder& sb, const String& … in EmitInterfaceProxyMethodDecl() argument
433 sb.Append(prefix).AppendFormat("ErrCode %s() override;\n", mm->name_); in EmitInterfaceProxyMethodDecl()
435 sb.Append(prefix).AppendFormat("ErrCode %s(\n", mm->name_); in EmitInterfaceProxyMethodDecl()
438 EmitInterfaceMethodParameter(mp, sb, prefix + TAB); in EmitInterfaceProxyMethodDecl()
440 sb.Append(",\n"); in EmitInterfaceProxyMethodDecl()
444 EmitInterfaceMethodReturn(returnType, sb, prefix + TAB); in EmitInterfaceProxyMethodDecl()
446 sb.Append(") override;\n"); in EmitInterfaceProxyMethodDecl()
450 void CppCodeEmitter::EmitInterfaceProxyDeathRecipient(StringBuilder& sb, const String& prefix) in EmitInterfaceProxyDeathRecipient() argument
452 …sb.Append(prefix).AppendFormat("class %s : public IRemoteObject::DeathRecipient {\n", deathRecipie… in EmitInterfaceProxyDeathRecipient()
453 sb.Append(prefix).Append("public:\n"); in EmitInterfaceProxyDeathRecipient()
454 …sb.Append(prefix + TAB).AppendFormat("explicit %s(%s &client) : client_(client) {}\n", deathRecipi… in EmitInterfaceProxyDeathRecipient()
456 … sb.Append(prefix + TAB).AppendFormat("~%s() override = default;\n", deathRecipientName_.string()); in EmitInterfaceProxyDeathRecipient()
457 … sb.Append(prefix + TAB).Append("void OnRemoteDied(const wptr<IRemoteObject> &remote) override\n"); in EmitInterfaceProxyDeathRecipient()
458 sb.Append(prefix + TAB).Append("{\n"); in EmitInterfaceProxyDeathRecipient()
459 sb.Append(prefix + TAB + TAB).Append("client_.OnRemoteDied(remote);\n"); in EmitInterfaceProxyDeathRecipient()
460 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceProxyDeathRecipient()
461 sb.Append(prefix).Append("private:\n"); in EmitInterfaceProxyDeathRecipient()
462 sb.Append(prefix + TAB).AppendFormat("%s &client_;\n", proxyName_.string()); in EmitInterfaceProxyDeathRecipient()
463 sb.Append(prefix).Append("};\n\n"); in EmitInterfaceProxyDeathRecipient()
465 sb.Append(prefix).Append("void OnRemoteDied(const wptr<IRemoteObject> &remoteObject)\n"); in EmitInterfaceProxyDeathRecipient()
466 sb.Append(prefix).Append("{\n"); in EmitInterfaceProxyDeathRecipient()
467 sb.Append(prefix + TAB).Append("(void)remoteObject;\n"); in EmitInterfaceProxyDeathRecipient()
468 sb.Append(prefix + TAB).Append("ApiCacheManager::GetInstance().ClearCache(GetDescriptor());\n"); in EmitInterfaceProxyDeathRecipient()
469 sb.Append(prefix).Append("}\n"); in EmitInterfaceProxyDeathRecipient()
470 sb.Append(prefix).Append("sptr<IRemoteObject> remote_ = nullptr;\n"); in EmitInterfaceProxyDeathRecipient()
471 sb.Append(prefix).Append("sptr<IRemoteObject::DeathRecipient> deathRecipient_ = nullptr;\n"); in EmitInterfaceProxyDeathRecipient()
474 void CppCodeEmitter::EmitInterfaceProxyConstants(StringBuilder& sb, const String& prefix) in EmitInterfaceProxyConstants() argument
477 EmitInterfaceProxyDeathRecipient(sb, prefix); in EmitInterfaceProxyConstants()
479 EmitInterfaceMethodCommands(sb, prefix); in EmitInterfaceProxyConstants()
480 sb.Append("\n"); in EmitInterfaceProxyConstants()
481 …sb.Append(prefix).AppendFormat("static inline BrokerDelegator<%s> delegator_;\n", proxyName_.strin… in EmitInterfaceProxyConstants()
489 StringBuilder sb; in EmitInterfaceProxyCppFile() local
491 EmitLicense(sb); in EmitInterfaceProxyCppFile()
492 sb.Append("\n"); in EmitInterfaceProxyCppFile()
493 sb.AppendFormat("#include \"%s.h\"\n", FileName(proxyName_).string()); in EmitInterfaceProxyCppFile()
495 sb.Append("#include \"hilog/log.h\"\n"); in EmitInterfaceProxyCppFile()
498 sb.Append("#include \"hitrace_meter.h\"\n"); in EmitInterfaceProxyCppFile()
500 sb.Append("\n"); in EmitInterfaceProxyCppFile()
502 sb.Append("using OHOS::HiviewDFX::HiLog;\n\n"); in EmitInterfaceProxyCppFile()
504 EmitBeginNamespace(sb); in EmitInterfaceProxyCppFile()
505 EmitInterfaceProxyMethodImpls(sb, ""); in EmitInterfaceProxyCppFile()
506 EmitEndNamespace(sb); in EmitInterfaceProxyCppFile()
508 String data = sb.ToString(); in EmitInterfaceProxyCppFile()
514 void CppCodeEmitter::EmitInterfaceProxyMethodImpls(StringBuilder& sb, const String& prefix) in EmitInterfaceProxyMethodImpls() argument
519 EmitInterfaceProxyMethodImpl(mm, sb, prefix); in EmitInterfaceProxyMethodImpls()
521 sb.Append("\n"); in EmitInterfaceProxyMethodImpls()
527 void CppCodeEmitter::EmitInterfaceProxyMethodImpl(MetaMethod* mm, StringBuilder& sb, const String& … in EmitInterfaceProxyMethodImpl() argument
531 sb.Append(prefix).AppendFormat("ErrCode %s::%s()\n", proxyName_.string(), mm->name_); in EmitInterfaceProxyMethodImpl()
533 sb.Append(prefix).AppendFormat("ErrCode %s::%s(\n", proxyName_.string(), mm->name_); in EmitInterfaceProxyMethodImpl()
536 EmitInterfaceMethodParameter(mp, sb, prefix + TAB); in EmitInterfaceProxyMethodImpl()
538 sb.Append(",\n"); in EmitInterfaceProxyMethodImpl()
542 EmitInterfaceMethodReturn(returnType, sb, prefix + TAB); in EmitInterfaceProxyMethodImpl()
544 sb.Append(")\n"); in EmitInterfaceProxyMethodImpl()
546 EmitInterfaceProxyMethodBody(mm, sb, prefix); in EmitInterfaceProxyMethodImpl()
549 void CppCodeEmitter::EmitInterfaceProxyMethodPreSendRequest(MetaMethod* mm, StringBuilder& sb, cons… in EmitInterfaceProxyMethodPreSendRequest() argument
552 sb.Append("\n"); in EmitInterfaceProxyMethodPreSendRequest()
553 sb.Append(prefix + TAB).AppendFormat( in EmitInterfaceProxyMethodPreSendRequest()
556 sb.Append("\n"); in EmitInterfaceProxyMethodPreSendRequest()
557 sb.Append(prefix + TAB).Append("if (hitCache == true) {\n"); in EmitInterfaceProxyMethodPreSendRequest()
558 EmitInterfaceProxyMethodErrCode(sb, prefix + TAB); in EmitInterfaceProxyMethodPreSendRequest()
559 EmitInterfaceProxyMethodReply(mm, sb, prefix + TAB); in EmitInterfaceProxyMethodPreSendRequest()
560 sb.Append(prefix + TAB + TAB).Append("return ERR_OK;\n"); in EmitInterfaceProxyMethodPreSendRequest()
561 sb.Append(prefix + TAB).Append("}\n\n"); in EmitInterfaceProxyMethodPreSendRequest()
565 void CppCodeEmitter::EmitInterfaceProxyMethodPostSendRequest(MetaMethod* mm, StringBuilder& sb, con… in EmitInterfaceProxyMethodPostSendRequest() argument
567 sb.Append(prefix + TAB).AppendFormat( in EmitInterfaceProxyMethodPostSendRequest()
572 void CppCodeEmitter::EmitInterfaceProxyMethodBody(MetaMethod* mm, StringBuilder& sb, const String& … in EmitInterfaceProxyMethodBody() argument
574 sb.Append(prefix).Append("{\n"); in EmitInterfaceProxyMethodBody()
576 sb.Append(prefix + TAB).AppendFormat("HITRACE_METER_NAME(%s, __PRETTY_FUNCTION__);\n", in EmitInterfaceProxyMethodBody()
579 sb.Append(prefix + TAB).Append("MessageParcel data;\n"); in EmitInterfaceProxyMethodBody()
580 sb.Append(prefix + TAB).Append("MessageParcel reply;\n"); in EmitInterfaceProxyMethodBody()
581 sb.Append(prefix + TAB).AppendFormat("MessageOption option(%s);\n", in EmitInterfaceProxyMethodBody()
583 sb.Append("\n"); in EmitInterfaceProxyMethodBody()
584 sb.Append(prefix + TAB).Append("if (!data.WriteInterfaceToken(GetDescriptor())) {\n"); in EmitInterfaceProxyMethodBody()
586 …sb.Append(prefix + TAB).Append(TAB).Append("HiLog::Error(LABEL, \"Write interface token failed!\")… in EmitInterfaceProxyMethodBody()
588 sb.Append(prefix + TAB).Append(TAB).Append("return ERR_INVALID_VALUE;\n"); in EmitInterfaceProxyMethodBody()
589 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceProxyMethodBody()
590 sb.Append("\n"); in EmitInterfaceProxyMethodBody()
595 EmitWriteMethodParameter(mp, "data.", sb, prefix + TAB); in EmitInterfaceProxyMethodBody()
598 EmitInterfaceProxyMethodPreSendRequest(mm, sb, prefix); in EmitInterfaceProxyMethodBody()
599 sb.Append(prefix + TAB).Append("sptr<IRemoteObject> remote = Remote();\n"); in EmitInterfaceProxyMethodBody()
600 sb.Append(prefix + TAB).Append("if (remote == nullptr) {\n"); in EmitInterfaceProxyMethodBody()
602 … sb.Append(prefix + TAB).Append(TAB).Append("HiLog::Error(LABEL, \"Remote is nullptr!\");\n"); in EmitInterfaceProxyMethodBody()
604 sb.Append(prefix + TAB).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitInterfaceProxyMethodBody()
605 sb.Append(prefix + TAB).Append("}\n\n"); in EmitInterfaceProxyMethodBody()
606 …sb.Append(prefix + TAB).AppendFormat("int32_t result = remote->SendRequest(COMMAND_%s, data, reply… in EmitInterfaceProxyMethodBody()
608 sb.Append(prefix + TAB).Append("if (FAILED(result)) {\n"); in EmitInterfaceProxyMethodBody()
610 … sb.Append(prefix + TAB).Append(TAB).Append("HiLog::Error(LABEL, \"Send request failed!\");\n"); in EmitInterfaceProxyMethodBody()
612 sb.Append(prefix + TAB).Append(" return result;\n"); in EmitInterfaceProxyMethodBody()
613 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceProxyMethodBody()
614 EmitInterfaceProxyMethodRetValue(mm, sb, prefix); in EmitInterfaceProxyMethodBody()
615 sb.Append(prefix).Append("}\n"); in EmitInterfaceProxyMethodBody()
618 void CppCodeEmitter::EmitInterfaceProxyMethodErrCode(StringBuilder& sb, const String& prefix) in EmitInterfaceProxyMethodErrCode() argument
620 sb.Append(prefix + TAB).Append("ErrCode errCode = reply.ReadInt32();\n"); in EmitInterfaceProxyMethodErrCode()
621 sb.Append(prefix + TAB).Append("if (FAILED(errCode)) {\n"); in EmitInterfaceProxyMethodErrCode()
623 sb.Append(prefix + TAB + TAB).Append("HiLog::Error(LABEL, \"Read Int32 failed!\");\n"); in EmitInterfaceProxyMethodErrCode()
625 sb.Append(prefix + TAB).Append(" return errCode;\n"); in EmitInterfaceProxyMethodErrCode()
626 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceProxyMethodErrCode()
629 void CppCodeEmitter::EmitInterfaceProxyMethodReply(MetaMethod* mm, StringBuilder& sb, const String&… in EmitInterfaceProxyMethodReply() argument
634 EmitReadMethodParameter(mp, "reply.", sb, prefix + TAB); in EmitInterfaceProxyMethodReply()
639 EmitReadVariable("reply.", "result", returnType, sb, prefix + TAB, false); in EmitInterfaceProxyMethodReply()
643 void CppCodeEmitter::EmitInterfaceProxyMethodRetValue(MetaMethod* mm, StringBuilder& sb, const Stri… in EmitInterfaceProxyMethodRetValue() argument
646 EmitInterfaceProxyMethodErrCode(sb, prefix); in EmitInterfaceProxyMethodRetValue()
647 sb.Append("\n"); in EmitInterfaceProxyMethodRetValue()
649 EmitInterfaceProxyMethodPostSendRequest(mm, sb, prefix); in EmitInterfaceProxyMethodRetValue()
651 EmitInterfaceProxyMethodReply(mm, sb, prefix); in EmitInterfaceProxyMethodRetValue()
653 sb.Append(prefix + TAB).Append("return ERR_OK;\n"); in EmitInterfaceProxyMethodRetValue()
656 …deEmitter::EmitWriteMethodParameter(MetaParameter* mp, const String& parcelName, StringBuilder& sb, in EmitWriteMethodParameter() argument
661 EmitWriteVariable(parcelName, name, mt, sb, prefix); in EmitWriteMethodParameter()
664 …odeEmitter::EmitReadMethodParameter(MetaParameter* mp, const String& parcelName, StringBuilder& sb, in EmitReadMethodParameter() argument
669 EmitReadVariable(parcelName, name, mt, sb, prefix, false); in EmitReadMethodParameter()
683 StringBuilder sb; in EmitInterfaceStubHeaderFile() local
685 EmitLicense(sb); in EmitInterfaceStubHeaderFile()
686 sb.Append("\n"); in EmitInterfaceStubHeaderFile()
687 EmitHeadMacro(sb, stubFullName_); in EmitInterfaceStubHeaderFile()
688 sb.Append("\n"); in EmitInterfaceStubHeaderFile()
689 sb.AppendFormat("#include \"%s.h\"\n", FileName(interfaceName_).string()); in EmitInterfaceStubHeaderFile()
690 sb.Append("#include <iremote_stub.h>\n"); in EmitInterfaceStubHeaderFile()
691 sb.Append("\n"); in EmitInterfaceStubHeaderFile()
692 EmitInterfaceStubInHeaderFile(sb); in EmitInterfaceStubHeaderFile()
693 EmitTailMacro(sb, stubFullName_); in EmitInterfaceStubHeaderFile()
695 String data = sb.ToString(); in EmitInterfaceStubHeaderFile()
701 void CppCodeEmitter::EmitInterfaceStubInHeaderFile(StringBuilder& sb) in EmitInterfaceStubInHeaderFile() argument
703 EmitBeginNamespace(sb); in EmitInterfaceStubInHeaderFile()
704 …sb.AppendFormat("class %s : public IRemoteStub<%s> {\n", stubName_.string(), interfaceName_.string… in EmitInterfaceStubInHeaderFile()
705 sb.Append("public:\n"); in EmitInterfaceStubInHeaderFile()
706 EmitInterfaceStubMethodDecls(sb, TAB); in EmitInterfaceStubInHeaderFile()
707 sb.Append("\n"); in EmitInterfaceStubInHeaderFile()
708 sb.Append("private:\n"); in EmitInterfaceStubInHeaderFile()
709 EmitInterfaceStubConstants(sb, TAB); in EmitInterfaceStubInHeaderFile()
710 sb.Append("};\n"); in EmitInterfaceStubInHeaderFile()
711 EmitEndNamespace(sb); in EmitInterfaceStubInHeaderFile()
714 void CppCodeEmitter::EmitInterfaceStubMethodDecls(StringBuilder& sb, const String& prefix) in EmitInterfaceStubMethodDecls() argument
716 sb.Append(prefix).Append("int32_t OnRemoteRequest(\n"); in EmitInterfaceStubMethodDecls()
717 sb.Append(prefix + TAB).Append("uint32_t code,\n"); in EmitInterfaceStubMethodDecls()
718 sb.Append(prefix + TAB).Append("MessageParcel& data,\n"); in EmitInterfaceStubMethodDecls()
719 sb.Append(prefix + TAB).Append("MessageParcel& reply,\n"); in EmitInterfaceStubMethodDecls()
720 sb.Append(prefix + TAB).Append("MessageOption& option) override;\n"); in EmitInterfaceStubMethodDecls()
723 void CppCodeEmitter::EmitInterfaceStubConstants(StringBuilder& sb, const String& prefix) in EmitInterfaceStubConstants() argument
725 EmitInterfaceMethodCommands(sb, prefix); in EmitInterfaceStubConstants()
733 StringBuilder sb; in EmitInterfaceStubCppFile() local
735 EmitLicense(sb); in EmitInterfaceStubCppFile()
736 sb.Append("\n"); in EmitInterfaceStubCppFile()
737 sb.AppendFormat("#include \"%s.h\"\n", FileName(stubName_).string()); in EmitInterfaceStubCppFile()
739 sb.Append("#include \"hilog/log.h\"\n"); in EmitInterfaceStubCppFile()
742 sb.Append("#include \"hitrace_meter.h\"\n"); in EmitInterfaceStubCppFile()
744 sb.Append("\n"); in EmitInterfaceStubCppFile()
746 sb.Append("using OHOS::HiviewDFX::HiLog;\n\n"); in EmitInterfaceStubCppFile()
748 EmitBeginNamespace(sb); in EmitInterfaceStubCppFile()
749 EmitInterfaceStubMethodImpls(sb, ""); in EmitInterfaceStubCppFile()
750 EmitEndNamespace(sb); in EmitInterfaceStubCppFile()
752 String data = sb.ToString(); in EmitInterfaceStubCppFile()
758 void CppCodeEmitter::EmitInterfaceStubMethodImpls(StringBuilder& sb, const String& prefix) in EmitInterfaceStubMethodImpls() argument
760 sb.Append(prefix).AppendFormat("int32_t %s::OnRemoteRequest(\n", stubName_.string()); in EmitInterfaceStubMethodImpls()
761 sb.Append(prefix + TAB).Append("uint32_t code,\n"); in EmitInterfaceStubMethodImpls()
762 sb.Append(prefix + TAB).Append("MessageParcel& data,\n"); in EmitInterfaceStubMethodImpls()
763 sb.Append(prefix + TAB).Append("MessageParcel& reply,\n"); in EmitInterfaceStubMethodImpls()
764 sb.Append(prefix + TAB).Append("MessageOption& option)\n"); in EmitInterfaceStubMethodImpls()
765 sb.Append(prefix).Append("{\n"); in EmitInterfaceStubMethodImpls()
767 sb.Append(prefix + TAB).AppendFormat("HITRACE_METER_NAME(%s, __PRETTY_FUNCTION__);\n", in EmitInterfaceStubMethodImpls()
770 sb.Append(prefix + TAB).Append("std::u16string localDescriptor = GetDescriptor();\n"); in EmitInterfaceStubMethodImpls()
771 … sb.Append(prefix + TAB).Append("std::u16string remoteDescriptor = data.ReadInterfaceToken();\n"); in EmitInterfaceStubMethodImpls()
772 sb.Append(prefix + TAB).Append("if (localDescriptor != remoteDescriptor) {\n"); in EmitInterfaceStubMethodImpls()
773 sb.Append(prefix + TAB).Append(TAB).Append("return ERR_TRANSACTION_FAILED;\n"); in EmitInterfaceStubMethodImpls()
774 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceStubMethodImpls()
775 sb.Append(prefix + TAB).Append("switch (code) {\n"); in EmitInterfaceStubMethodImpls()
778 EmitInterfaceStubMethodImpl(mm, sb, prefix + TAB + TAB); in EmitInterfaceStubMethodImpls()
780 sb.Append(prefix + TAB).Append(TAB).Append("default:\n"); in EmitInterfaceStubMethodImpls()
781 sb.Append(prefix + TAB).Append(TAB).Append(TAB).Append( in EmitInterfaceStubMethodImpls()
783 sb.Append(prefix + TAB).Append("}\n\n"); in EmitInterfaceStubMethodImpls()
784 sb.Append(prefix + TAB).Append("return ERR_TRANSACTION_FAILED;\n"); in EmitInterfaceStubMethodImpls()
785 sb.Append(prefix).Append("}\n"); in EmitInterfaceStubMethodImpls()
789 StringBuilder& sb, const String& prefix, MetaType* returnType) in EmitInterfaceStubMethodImplReturn() argument
793 sb.Append(prefix + TAB).AppendFormat("%s result = nullptr;\n", in EmitInterfaceStubMethodImplReturn()
796 …sb.Append(prefix + TAB).AppendFormat("%s result;\n", EmitType(returnType, ATTR_IN, true).string()); in EmitInterfaceStubMethodImplReturn()
800 sb.Append(prefix + TAB).AppendFormat("ErrCode errCode = %s();\n", mm->name_); in EmitInterfaceStubMethodImplReturn()
802 sb.Append(prefix + TAB).AppendFormat("ErrCode errCode = %s(", mm->name_); in EmitInterfaceStubMethodImplReturn()
812 sb.Append(parameterName.c_str()); in EmitInterfaceStubMethodImplReturn()
814 sb.Append(name.c_str()); in EmitInterfaceStubMethodImplReturn()
818 sb.Append(", "); in EmitInterfaceStubMethodImplReturn()
822 EmitReturnParameter("result", returnType, sb); in EmitInterfaceStubMethodImplReturn()
824 sb.AppendFormat(");\n", mm->name_); in EmitInterfaceStubMethodImplReturn()
828 void CppCodeEmitter::EmitInterfaceStubMethodImpl(MetaMethod* mm, StringBuilder& sb, const String& p… in EmitInterfaceStubMethodImpl() argument
830 sb.Append(prefix).AppendFormat("case COMMAND_%s: {\n", ConstantName(mm->name_).string()); in EmitInterfaceStubMethodImpl()
836 EmitReadVariable("data.", name, mt, sb, prefix + TAB); in EmitInterfaceStubMethodImpl()
838 EmitLocalVariable(mp, sb, prefix + TAB); in EmitInterfaceStubMethodImpl()
845 EmitInterfaceStubMethodImplReturn(mm, sb, prefix, returnType); in EmitInterfaceStubMethodImpl()
847 sb.Append(prefix + TAB).Append("if (!reply.WriteInt32(errCode)) {\n"); in EmitInterfaceStubMethodImpl()
849 … sb.Append(prefix + TAB).Append(TAB).Append("HiLog::Error(LABEL, \"Write Int32 failed!\");\n"); in EmitInterfaceStubMethodImpl()
851 sb.Append(prefix + TAB).Append(TAB).Append("return ERR_INVALID_VALUE;\n"); in EmitInterfaceStubMethodImpl()
852 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceStubMethodImpl()
861 sb.Append(prefix + TAB).Append("if (SUCCEEDED(errCode)) {\n"); in EmitInterfaceStubMethodImpl()
865 EmitWriteMethodParameter(mp, "reply.", sb, prefix + TAB + TAB); in EmitInterfaceStubMethodImpl()
869 EmitWriteVariable("reply.", "result", returnType, sb, prefix + TAB + TAB); in EmitInterfaceStubMethodImpl()
871 sb.Append(prefix + TAB).Append("}\n"); in EmitInterfaceStubMethodImpl()
873 sb.Append(prefix + TAB).Append("return ERR_NONE;\n"); in EmitInterfaceStubMethodImpl()
874 sb.Append(prefix).Append("}\n"); in EmitInterfaceStubMethodImpl()
877 void CppCodeEmitter::EmitInterfaceMethodCommands(StringBuilder& sb, const String& prefix) in EmitInterfaceMethodCommands() argument
881 … sb.Append(prefix).AppendFormat("static constexpr int32_t COMMAND_%s = MIN_TRANSACTION_ID + %d;\n", in EmitInterfaceMethodCommands()
886 void CppCodeEmitter::EmitLicense(StringBuilder& sb) in EmitLicense() argument
888 sb.Append(metaInterface_->license_).Append("\n"); in EmitLicense()
891 void CppCodeEmitter::EmitHeadMacro(StringBuilder& sb, const String& fullName) in EmitHeadMacro() argument
894 sb.Append("#ifndef ").Append(macroName).Append("\n"); in EmitHeadMacro()
895 sb.Append("#define ").Append(macroName).Append("\n"); in EmitHeadMacro()
898 void CppCodeEmitter::EmitTailMacro(StringBuilder& sb, const String& fullName) in EmitTailMacro() argument
901 sb.Append("#endif // ").Append(macroName).Append("\n\n"); in EmitTailMacro()
904 void CppCodeEmitter::EmitBeginNamespace(StringBuilder& sb) in EmitBeginNamespace() argument
909 sb.AppendFormat("namespace %s {\n", nspace.Substring(0, index).string()); in EmitBeginNamespace()
915 void CppCodeEmitter::EmitEndNamespace(StringBuilder& sb) in EmitEndNamespace() argument
921 sb.AppendFormat("} // namespace %s\n", index != -1 ? in EmitEndNamespace()
928 StringBuilder& sb, const String& prefix) in EmitWriteVariable() argument
932 …sb.Append(prefix).AppendFormat("if (!%sWriteInt32(%s ? 1 : 0)) {\n", parcelName.string(), name.c_s… in EmitWriteVariable()
934 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariable()
937 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariable()
938 sb.Append(prefix).Append("}\n"); in EmitWriteVariable()
944 … sb.Append(prefix).AppendFormat("if (!%sWriteInt32(%s)) {\n", parcelName.string(), name.c_str()); in EmitWriteVariable()
946 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariable()
949 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariable()
950 sb.Append(prefix).Append("}\n"); in EmitWriteVariable()
953 … sb.Append(prefix).AppendFormat("if (!%sWriteInt64(%s)) {\n", parcelName.string(), name.c_str()); in EmitWriteVariable()
955 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariable()
958 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariable()
959 sb.Append(prefix).Append("}\n"); in EmitWriteVariable()
962 EmitWriteVariableFloat(parcelName, name, mt, sb, prefix); in EmitWriteVariable()
968 …const String& parcelName, const std::string& name, MetaType* mt, StringBuilder& sb, const String& … in EmitWriteVariableFloat() argument
972 … sb.Append(prefix).AppendFormat("if (!%sWriteFloat(%s)) {\n", parcelName.string(), name.c_str()); in EmitWriteVariableFloat()
974 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariableFloat()
977 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableFloat()
978 sb.Append(prefix).Append("}\n"); in EmitWriteVariableFloat()
981 … sb.Append(prefix).AppendFormat("if (!%sWriteDouble(%s)) {\n", parcelName.string(), name.c_str()); in EmitWriteVariableFloat()
983 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariableFloat()
986 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableFloat()
987 sb.Append(prefix).Append("}\n"); in EmitWriteVariableFloat()
990 EmitWriteVariableComplex(parcelName, name, mt, sb, prefix); in EmitWriteVariableFloat()
996 …const String& parcelName, const std::string& name, MetaType* mt, StringBuilder& sb, const String& … in EmitWriteVariableComplex() argument
1001 …sb.Append(prefix).AppendFormat("if (%s.size() > static_cast<size_t>(VECTOR_MAX_SIZE)) {\n", name.c… in EmitWriteVariableComplex()
1004 sb.Append(prefix).Append(TAB).Append( in EmitWriteVariableComplex()
1007 sb.Append(prefix).Append(TAB).AppendFormat( in EmitWriteVariableComplex()
1011 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableComplex()
1012 sb.Append(prefix).Append("}\n"); in EmitWriteVariableComplex()
1013 … sb.Append(prefix).AppendFormat("%sWriteInt32(%s.size());\n", parcelName.string(), name.c_str()); in EmitWriteVariableComplex()
1014 sb.Append(prefix).AppendFormat("for (auto it = %s.begin(); it != %s.end(); ++it) {\n", in EmitWriteVariableComplex()
1018 EmitWriteVariable(parcelName, "(*it)", innerType, sb, prefix + TAB); in EmitWriteVariableComplex()
1019 sb.Append(prefix).Append("}\n"); in EmitWriteVariableComplex()
1024 …sb.Append(prefix).AppendFormat("if (%s.size() > static_cast<size_t>(MAP_MAX_SIZE)) {\n", name.c_st… in EmitWriteVariableComplex()
1026 sb.Append(prefix).Append(TAB).AppendFormat( in EmitWriteVariableComplex()
1029 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableComplex()
1030 sb.Append(prefix).Append("}\n"); in EmitWriteVariableComplex()
1031 sb.Append("\n"); in EmitWriteVariableComplex()
1032 … sb.Append(prefix).AppendFormat("%sWriteInt32(%s.size());\n", parcelName.string(), name.c_str()); in EmitWriteVariableComplex()
1033 sb.Append(prefix).AppendFormat("for (auto it = %s.begin(); it != %s.end(); ++it) {\n", in EmitWriteVariableComplex()
1037 EmitWriteVariable(parcelName, "(it->first)", keyType, sb, prefix + TAB); in EmitWriteVariableComplex()
1038 EmitWriteVariable(parcelName, "(it->second)", valueType, sb, prefix + TAB); in EmitWriteVariableComplex()
1039 sb.Append(prefix).Append("}\n"); in EmitWriteVariableComplex()
1043 EmitWriteVariableObject(parcelName, name, mt, sb, prefix); in EmitWriteVariableComplex()
1049 …const String& parcelName, const std::string& name, MetaType* mt, StringBuilder& sb, const String& … in EmitWriteVariableObject() argument
1053 … sb.Append(prefix).AppendFormat("if (!%sWriteString16(Str8ToStr16(%s))) {\n", parcelName.string(), in EmitWriteVariableObject()
1056 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariableObject()
1059 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableObject()
1060 sb.Append(prefix).Append("}\n"); in EmitWriteVariableObject()
1063 …sb.Append(prefix).AppendFormat("if (!%sWriteParcelable(&%s)) {\n", parcelName.string(), name.c_str… in EmitWriteVariableObject()
1065 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariableObject()
1068 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableObject()
1069 sb.Append(prefix).Append("}\n"); in EmitWriteVariableObject()
1072 sb.Append(prefix).AppendFormat("if (%s == nullptr) {\n", name.c_str()); in EmitWriteVariableObject()
1074 …sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"%s is nullptr!\");\n", name.c_st… in EmitWriteVariableObject()
1076 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableObject()
1077 sb.Append(prefix).Append("}\n"); in EmitWriteVariableObject()
1078 sb.Append(prefix).AppendFormat( in EmitWriteVariableObject()
1081 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Write [%s] failed!\");\n", in EmitWriteVariableObject()
1084 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitWriteVariableObject()
1085 sb.Append(prefix).Append("}\n"); in EmitWriteVariableObject()
1093 StringBuilder& sb, const String& prefix, bool emitType) in EmitReadVariable() argument
1098 sb.Append(prefix).AppendFormat("%s %s = %sReadInt32() == 1 ? true : false;\n", in EmitReadVariable()
1101 sb.Append(prefix).AppendFormat("%s = %sReadInt32() == 1 ? true : false;\n", in EmitReadVariable()
1109 …sb.Append(prefix).AppendFormat("%s %s = (%s)%sReadInt32();\n", EmitType(mt, ATTR_IN, true).string(… in EmitReadVariable()
1112 sb.Append(prefix).AppendFormat("%s = (%s)%sReadInt32();\n", name.c_str(), in EmitReadVariable()
1118 sb.Append(prefix).AppendFormat("%s %s = %sReadInt32();\n", in EmitReadVariable()
1121 … sb.Append(prefix).AppendFormat("%s = %sReadInt32();\n", name.c_str(), parcelName.string()); in EmitReadVariable()
1126 sb.Append(prefix).AppendFormat("%s %s = %sReadInt64();\n", in EmitReadVariable()
1129 … sb.Append(prefix).AppendFormat("%s = %sReadInt64();\n", name.c_str(), parcelName.string()); in EmitReadVariable()
1133 EmitReadVariableFloat(parcelName, name, mt, sb, prefix, emitType); in EmitReadVariable()
1139 StringBuilder& sb, const String& prefix, bool emitType) in EmitReadVariableFloat() argument
1144 sb.Append(prefix).AppendFormat("%s %s = %sReadFloat();\n", in EmitReadVariableFloat()
1147 … sb.Append(prefix).AppendFormat("%s = %sReadFloat();\n", name.c_str(), parcelName.string()); in EmitReadVariableFloat()
1152 sb.Append(prefix).AppendFormat("%s %s = %sReadDouble();\n", in EmitReadVariableFloat()
1155 … sb.Append(prefix).AppendFormat("%s = %sReadDouble();\n", name.c_str(), parcelName.string()); in EmitReadVariableFloat()
1159 EmitReadVariableComplex(parcelName, name, mt, sb, prefix, emitType); in EmitReadVariableFloat()
1165 StringBuilder& sb, const String& prefix, bool emitType) in EmitReadVariableComplex() argument
1170 sb.Append(prefix).AppendFormat("%s %s = Str16ToStr8(%sReadString16());\n", in EmitReadVariableComplex()
1173 sb.Append(prefix).AppendFormat("%s = Str16ToStr8(%sReadString16());\n", in EmitReadVariableComplex()
1179 … sb.Append(prefix).AppendFormat("%s %s;\n", EmitType(mt, ATTR_IN, true).string(), name.c_str()); in EmitReadVariableComplex()
1181 …sb.Append(prefix).AppendFormat("int32_t %sSize = %sReadInt32();\n", name.c_str(), parcelName.strin… in EmitReadVariableComplex()
1182 … sb.Append(prefix).AppendFormat("for (int32_t i = 0; i < %sSize; ++i) {\n", name.c_str()); in EmitReadVariableComplex()
1185 EmitReadVariable(parcelName, "key", keyType, sb, prefix + TAB); in EmitReadVariableComplex()
1186 EmitReadVariable(parcelName, "value", valueType, sb, prefix + TAB); in EmitReadVariableComplex()
1187 sb.Append(prefix + TAB).AppendFormat("%s[key] = value;\n", name.c_str()); in EmitReadVariableComplex()
1188 sb.Append(prefix).Append("}\n"); in EmitReadVariableComplex()
1192 EmitReadVariableList(parcelName, name, mt, sb, prefix, emitType); in EmitReadVariableComplex()
1198 StringBuilder& sb, const String& prefix, bool emitType) in EmitReadVariableList() argument
1204 … sb.Append(prefix).AppendFormat("%s %s;\n", EmitType(mt, ATTR_IN, true).string(), name.c_str()); in EmitReadVariableList()
1206 …sb.Append(prefix).AppendFormat("int32_t %sSize = %sReadInt32();\n", name.c_str(), parcelName.strin… in EmitReadVariableList()
1207 …sb.Append(prefix).AppendFormat("if (%sSize > static_cast<int32_t>(VECTOR_MAX_SIZE)) {\n", name.c_s… in EmitReadVariableList()
1209 sb.Append(prefix + TAB) in EmitReadVariableList()
1212 sb.Append(prefix + TAB).Append("return ERR_INVALID_DATA;\n"); in EmitReadVariableList()
1213 sb.Append(prefix).Append("}\n"); in EmitReadVariableList()
1219 sb.Append(prefix).AppendFormat("for (int32_t %s = 0; %s < %sSize; ++%s) {\n", in EmitReadVariableList()
1222 EmitReadVariable(parcelName, valueStr.c_str(), innerType, sb, prefix + TAB); in EmitReadVariableList()
1224 … sb.Append(prefix + TAB).AppendFormat("%s.push_back(*%s);\n", name.c_str(), valueStr.c_str()); in EmitReadVariableList()
1226 … sb.Append(prefix + TAB).AppendFormat("%s.push_back(%s);\n", name.c_str(), valueStr.c_str()); in EmitReadVariableList()
1228 sb.Append(prefix).Append("}\n"); in EmitReadVariableList()
1232 EmitReadVariableObject(parcelName, name, mt, sb, prefix, emitType); in EmitReadVariableList()
1238 StringBuilder& sb, const String& prefix, bool emitType) in EmitReadVariableObject() argument
1248 … sb.Append(prefix).AppendFormat("std::unique_ptr<%s> %s(%sReadParcelable<%s>());\n\n", in EmitReadVariableObject()
1250 sb.Append(prefix).AppendFormat("if (!%s) {\n", name.c_str()); in EmitReadVariableObject()
1252 sb.Append(prefix).Append(TAB).AppendFormat( in EmitReadVariableObject()
1255 sb.Append(prefix).Append(TAB).Append("return ERR_INVALID_DATA;\n"); in EmitReadVariableObject()
1256 sb.Append(prefix).Append("}\n"); in EmitReadVariableObject()
1258 … sb.Append(prefix).AppendFormat("std::unique_ptr<%s> info(%sReadParcelable<%s>());\n", in EmitReadVariableObject()
1260 sb.Append(prefix).Append("if (info != nullptr) {\n"); in EmitReadVariableObject()
1261 sb.Append(prefix).Append(TAB).AppendFormat("%s = *info;\n", name.c_str()); in EmitReadVariableObject()
1262 sb.Append(prefix).Append("}\n\n"); in EmitReadVariableObject()
1269 sb.Append(prefix).AppendFormat("%s %s = iface_cast<%s>(%sReadRemoteObject());\n", in EmitReadVariableObject()
1271 sb.Append(prefix).AppendFormat("if (%s == nullptr) {\n", name.c_str()); in EmitReadVariableObject()
1273 … sb.Append(prefix).Append(TAB).AppendFormat("HiLog::Error(LABEL, \"Read [%s] failed!\");\n", in EmitReadVariableObject()
1276 sb.Append(prefix).Append(TAB).AppendFormat("return ERR_INVALID_DATA;\n"); in EmitReadVariableObject()
1277 sb.Append(prefix).Append("}\n\n"); in EmitReadVariableObject()
1279 sb.Append(prefix).AppendFormat("%s = iface_cast<%s>(%sReadRemoteObject());\n", in EmitReadVariableObject()
1289 void CppCodeEmitter::EmitLocalVariable(MetaParameter* mp, StringBuilder& sb, const String& prefix) in EmitLocalVariable() argument
1296 … sb.Append(prefix).AppendFormat("%s %s;\n", EmitType(mt, ATTR_IN, true).string(), name.c_str()); in EmitLocalVariable()
1298 … sb.Append(prefix).AppendFormat("%s %s;\n", EmitType(mt, ATTR_IN, true).string(), name.c_str()); in EmitLocalVariable()
1302 void CppCodeEmitter::EmitReturnParameter(const String& name, MetaType* mt, StringBuilder& sb) in EmitReturnParameter() argument
1319 sb.Append(name); in EmitReturnParameter()
1526 StringBuilder sb; in FileName() local
1533 sb.Append('_'); in FileName()
1535 sb.Append(tolower(c)); in FileName()
1537 sb.Append(c); in FileName()
1541 return sb.ToString().Replace('.', '/'); in FileName()
1560 StringBuilder sb; in ConstantName() local
1566 sb.Append('_'); in ConstantName()
1568 sb.Append(c); in ConstantName()
1570 sb.Append(toupper(c)); in ConstantName()
1574 return sb.ToString(); in ConstantName()