Skip to content

Commit 0249252

Browse files
committed
- Generate response as string for logging.
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@24493 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 08d8b97 commit 0249252

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

Compiler/Template/GenerateAPIFunctionsTpl.tpl

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,18 +279,35 @@ template getQtOutArgArray(Text name, Text shortName, Text mm, DAE.Type ty)
279279
else error(sourceInfo(), 'getOutValueArray failed for <%unparseType(ty)%>')
280280
end getQtOutArgArray;
281281

282+
template getQtResponseLogText(Text name, DAE.Type ty)
283+
::=
284+
match ty
285+
case T_CODE(ty=C_TYPENAME(__))
286+
case T_STRING(__) then '<%name%>'
287+
case T_INTEGER(__)
288+
case T_REAL(__) then 'QString::number(<%name%>)'
289+
case T_BOOL(__) then '<%name%> ? "true" : "false"'
290+
case aty as T_ARRAY(__) then '"Generate toString() method for structs"'
291+
else error(sourceInfo(), 'getQtResponseLogText failed for <%unparseType(ty)%>')
292+
end getQtResponseLogText;
293+
282294
template getQtInterfaceFunc(String name, list<DAE.FuncArg> args, DAE.Type res, String className)
283295
::=
284296
let &varDecl = buffer ""
297+
let &responseLog = buffer ""
285298
let &postCall = buffer ""
286299
let inArgs = args |> arg as FUNCARG(__) => ', <%getQtInArg(arg.name, arg.ty, varDecl)%>'
287300
let outArgs = (match res
288-
case T_NORETCALL(__) then ""
301+
case T_NORETCALL(__) then
302+
let &responseLog += '""'
303+
""
289304
case t as T_TUPLE(__) then
290305
let &varDecl += '<%name%>_res result;<%\n%>'
306+
let &responseLog += '"Generate toString() method for structs"'
291307
(types |> t hasindex i1 fromindex 1 => ', <%getQtOutArg('result.<%getQtTupleTypeOutputName(res, i1)%>', 'out<%i1%>', t, varDecl, postCall)%>')
292308
else
293309
let &varDecl += '<%getQtType(res)%> result;<%\n%>'
310+
let &responseLog += '<%getQtResponseLogText('result', res)%>'
294311
', <%getQtOutArg('result', 'result', res, varDecl, postCall)%>'
295312
)
296313
<<
@@ -304,8 +321,8 @@ template getQtInterfaceFunc(String name, list<DAE.FuncArg> args, DAE.Type res, S
304321
commandTime.start();
305322
emit logCommand("<%replaceDotAndUnderscore(name)%>(### create string of parameters ###)", &commandTime);
306323
st = omc_OpenModelicaScriptingAPI_<%replaceDotAndUnderscore(name)%>(threadData, st<%inArgs%><%outArgs%>);
307-
emit logResponse("### create string of result ###", &commandTime);
308324
<%postCall%>
325+
emit logResponse(<%responseLog%>, &commandTime);
309326
310327
MMC_CATCH_TOP(throw std::runtime_error("<%replaceDotAndUnderscore(name)%> failed");)
311328

0 commit comments

Comments
 (0)