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

Method containsString

erpcgen/src/CGenerator.cpp:3182–3228  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3180}
3181
3182bool CGenerator::containsString(DataType *dataType)
3183{
3184 if (dataType->getTrueDataType()->isList())
3185 {
3186 ListType *l = dynamic_cast<ListType *>(dataType->getTrueDataType());
3187 assert(l);
3188 return containsString(l->getElementType());
3189 }
3190 DataType *trueDataType = dataType->getTrueContainerDataType();
3191 switch (trueDataType->getDataType())
3192 {
3193 case DataType::data_type_t::kStructType:
3194 {
3195 StructType *s = dynamic_cast<StructType *>(trueDataType);
3196 assert(s);
3197 return s->containStringMember();
3198 }
3199 case DataType::data_type_t::kUnionType:
3200 {
3201 UnionType *u = dynamic_cast<UnionType *>(trueDataType);
3202 assert(u);
3203 for (UnionCase *unionCase : u->getUniqueCases())
3204 {
3205 if (!unionCase->caseMemberIsVoid())
3206 {
3207 for (string unionCaseName : unionCase->getMemberDeclarationNames())
3208 {
3209 StructMember *unionCaseMember = unionCase->getUnionMemberDeclaration(unionCaseName);
3210 if (containsString(unionCaseMember->getDataType()))
3211 {
3212 return true;
3213 }
3214 }
3215 }
3216 }
3217 return false;
3218 }
3219 default:
3220 {
3221 if (trueDataType->isString())
3222 {
3223 return true;
3224 }
3225 return false;
3226 }
3227 }
3228}
3229
3230bool CGenerator::containsList(DataType *dataType)
3231{

Callers

nothing calls this directly

Calls 11

getTrueDataTypeMethod · 0.80
containStringMemberMethod · 0.80
getUniqueCasesMethod · 0.80
caseMemberIsVoidMethod · 0.80
isListMethod · 0.45
getElementTypeMethod · 0.45
getDataTypeMethod · 0.45
isStringMethod · 0.45

Tested by

no test coverage detected