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

Function buildCCPPStructs

Source/languagec.go:427–479  ·  view source on GitHub ↗
(component ComponentDefinition, w LanguageWriter, NameSpace string, useCPPTypes bool)

Source from the content-addressed store, hash-verified

425}
426
427func buildCCPPStructs(component ComponentDefinition, w LanguageWriter, NameSpace string, useCPPTypes bool) (error) {
428 if (len(component.Structs) == 0) {
429 return nil
430 }
431
432 var err error
433
434 w.Writeln("/*************************************************************************************************************************");
435 w.Writeln(" Declaration of structs");
436 w.Writeln("**************************************************************************************************************************/");
437 w.Writeln("");
438
439 w.Writeln("#pragma pack (1)");
440 w.Writeln("");
441
442 for i := 0; i < len(component.Structs); i++ {
443 structinfo := component.Structs[i];
444 w.Writeln("typedef struct {");
445
446 for j := 0; j < len(structinfo.Members); j++ {
447 member := structinfo.Members[j];
448 arraysuffix := "";
449 if (member.Rows > 0) {
450 if (member.Columns > 0) {
451 arraysuffix = fmt.Sprintf ("[%d][%d]", member.Columns, member.Rows)
452 } else {
453 arraysuffix = fmt.Sprintf ("[%d]",member.Rows)
454 }
455 }
456 var memberLine string
457 if (useCPPTypes) {
458 memberLine, err= getCPPMemberLine(member, NameSpace, arraysuffix, structinfo.Name)
459 } else {
460 memberLine, err= getCMemberLine(member, NameSpace, arraysuffix, structinfo.Name)
461 }
462 if (err!=nil) {
463 return err
464 }
465 w.Writeln(" %s", memberLine)
466 }
467 if (useCPPTypes) {
468 w.Writeln("} s%s;", structinfo.Name);
469 } else {
470 w.Writeln("} s%s%s;", NameSpace, structinfo.Name);
471 }
472 w.Writeln("");
473 }
474
475 w.Writeln("#pragma pack ()");
476 w.Writeln("");
477
478 return nil
479}
480
481func buildCCPPEnums(component ComponentDefinition, w LanguageWriter, NameSpace string, useCPPTypes bool) (error) {
482 if (len(component.Enums) == 0) {

Callers 1

buildCCPPTypesHeaderFunction · 0.85

Calls 3

getCPPMemberLineFunction · 0.85
getCMemberLineFunction · 0.85
WritelnMethod · 0.80

Tested by

no test coverage detected