MCPcopy Create free account
hub / github.com/Autodesk/AutomaticComponentToolkit / getCParameterTypeName

Function getCParameterTypeName

Source/languagec.go:587–627  ·  view source on GitHub ↗
(ParamTypeName string, NameSpace string, ParamClass string)

Source from the content-addressed store, hash-verified

585}
586
587func getCParameterTypeName(ParamTypeName string, NameSpace string, ParamClass string)(string, error) {
588 paramNameSpace, paramClassName, err := decomposeParamClassName(ParamClass)
589 if (err != nil) {
590 return "", err
591 }
592 if len(paramNameSpace) == 0 {
593 paramNameSpace = NameSpace
594 }
595
596
597 cParamTypeName := "";
598 switch (ParamTypeName) {
599 case "uint8", "uint16", "uint32", "uint64", "int8", "int16", "int32", "int64", "single", "double":
600 cParamTypeName = fmt.Sprintf ("%s_%s", paramNameSpace, ParamTypeName);
601 case "bool":
602 cParamTypeName = "bool";
603 case "pointer":
604 cParamTypeName = fmt.Sprintf ("%s_pvoid", paramNameSpace);
605 case "string":
606 cParamTypeName = "char *";
607 case "enum":
608 cParamTypeName = fmt.Sprintf ("e%s%s", paramNameSpace, paramClassName);
609 case "struct":
610 cParamTypeName = fmt.Sprintf ("s%s%s *", paramNameSpace, paramClassName);
611 case "basicarray":
612 basicTypeName, err := getCParameterTypeName(paramClassName, paramNameSpace, "");
613 if (err != nil) {
614 return "", err;
615 }
616 cParamTypeName = fmt.Sprintf ("%s *", basicTypeName);
617 case "structarray":
618 cParamTypeName = fmt.Sprintf ("s%s%s *", paramNameSpace, paramClassName)
619 case "class", "optionalclass":
620 cParamTypeName = fmt.Sprintf ("%s_%s", paramNameSpace, paramClassName)
621 case "functiontype":
622 cParamTypeName = fmt.Sprintf ("%s%s", paramNameSpace, paramClassName)
623 default:
624 return "", fmt.Errorf ("invalid parameter type \"%s\" for C-parameter", ParamTypeName);
625 }
626 return cParamTypeName, nil;
627}
628
629// CParameter is a handy representation of a function parameter in C
630type CParameter struct {

Callers 3

getCMemberLineFunction · 0.85
generateCCPPParameterFunction · 0.85
getCPPParameterTypeNameFunction · 0.85

Calls 1

decomposeParamClassNameFunction · 0.85

Tested by

no test coverage detected