MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / findGroupDataTypes

Method findGroupDataTypes

erpcgen/src/Generator.cpp:383–428  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

381}
382
383void Generator::findGroupDataTypes()
384{
385 for (Group *group : m_groups)
386 {
387 for (Interface *iface : group->getInterfaces())
388 {
389 for (Function *fn : iface->getFunctions())
390 {
391 // handle return value
392 set<DataType *> dataTypes;
393 StructMember *structMember = fn->getReturnStructMemberType();
394 DataType *transformedDataType = findChildDataType(dataTypes, fn->getReturnType());
395 structMember->setDataType(transformedDataType);
396
397 // save all transformed data types directions into data type map
398 if (!findAnnotation(fn->getReturnType(), SHARED_ANNOTATION))
399 {
400 for (DataType *dataType : dataTypes)
401 {
402 group->addDirToSymbolsMap(dataType, param_direction_t::kReturn);
403 }
404 }
405
406 // handle function parameters
407 auto params = fn->getParameters().getMembers();
408 for (auto mit : params)
409 {
410 dataTypes.clear();
411
412 setBinaryList(mit);
413
414 mit->setDataType(findChildDataType(dataTypes, mit->getDataType()));
415
416 // save all transformed data types directions into data type map
417 if (!findAnnotation(mit, SHARED_ANNOTATION))
418 {
419 for (DataType *dataType : dataTypes)
420 {
421 group->addDirToSymbolsMap(dataType, mit->getDirection());
422 }
423 }
424 }
425 }
426 }
427 }
428}
429
430data_list Generator::makeGroupInterfacesTemplateData(Group *group)
431{

Callers

nothing calls this directly

Calls 7

getReturnTypeMethod · 0.80
addDirToSymbolsMapMethod · 0.80
setDataTypeMethod · 0.45
clearMethod · 0.45
getDataTypeMethod · 0.45
getDirectionMethod · 0.45

Tested by

no test coverage detected