if len(ctx.packageData.Services) > 0 {
fmt.Fprintf(w, "/* Services */\n\n")
- fmt.Fprintf(w, "type %s interface {\n", "Services")
ctx.inputBuff = bytes.NewBuffer(ctx.inputData)
ctx.inputLine = 0
+ fmt.Fprintf(w, "type %s interface {\n", "Services")
for _, svc := range ctx.packageData.Services {
generateService(ctx, w, &svc)
}
fmt.Fprintf(w, "\t%s\n", filepath.Base(ctx.inputFile))
fmt.Fprintln(w)
fmt.Fprintln(w, "It contains these VPP binary API objects:")
+
var printObjNum = func(obj string, num int) {
if num > 0 {
if num > 1 {
printObjNum("enum", len(ctx.packageData.Enums))
printObjNum("union", len(ctx.packageData.Unions))
printObjNum("service", len(ctx.packageData.Services))
+
fmt.Fprintln(w, "*/")
fmt.Fprintf(w, "package %s\n", ctx.packageName)
fmt.Fprintln(w)
fmt.Fprintln(w)
fmt.Fprintf(w, "// Reference imports to suppress errors if they are not otherwise used.\n")
+ fmt.Fprintf(w, "var _ = api.RegisterMessage\n")
fmt.Fprintf(w, "var _ = struc.Pack\n")
fmt.Fprintf(w, "var _ = bytes.NewBuffer\n")
fmt.Fprintln(w)
reqTyp := camelCaseName(svc.RequestType)
// method name is same as parameter type name by default
- method := reqTyp
- if svc.Stream {
- // use Dump as prefix instead of suffix for stream services
- if m := strings.TrimSuffix(method, "Dump"); method != m {
- method = "Dump" + m
- }
- }
+ method := svc.MethodName()
params := fmt.Sprintf("*%s", reqTyp)
returns := "error"
if replyTyp := camelCaseName(svc.ReplyType); replyTyp != "" {
}
// generateMessageNameGetter generates getter for original VPP message name into the provider writer
-func generateMessageNameGetter(w io.Writer, structName string, msgName string) {
- fmt.Fprintln(w, "func (*"+structName+") GetMessageName() string {")
- fmt.Fprintln(w, "\treturn \""+msgName+"\"")
- fmt.Fprintln(w, "}")
+func generateMessageNameGetter(w io.Writer, structName, msgName string) {
+ fmt.Fprintf(w, `func (*%s) GetMessageName() string {
+ return %q
+}
+`, structName, msgName)
}
// generateTypeNameGetter generates getter for original VPP type name into the provider writer
-func generateTypeNameGetter(w io.Writer, structName string, msgName string) {
- fmt.Fprintln(w, "func (*"+structName+") GetTypeName() string {")
- fmt.Fprintln(w, "\treturn \""+msgName+"\"")
- fmt.Fprintln(w, "}")
+func generateTypeNameGetter(w io.Writer, structName, msgName string) {
+ fmt.Fprintf(w, `func (*%s) GetTypeName() string {
+ return %q
+}
+`, structName, msgName)
}
// generateCrcGetter generates getter for CRC checksum of the message definition into the provider writer
-func generateCrcGetter(w io.Writer, structName string, crc string) {
+func generateCrcGetter(w io.Writer, structName, crc string) {
crc = strings.TrimPrefix(crc, "0x")
- fmt.Fprintln(w, "func (*"+structName+") GetCrcString() string {")
- fmt.Fprintln(w, "\treturn \""+crc+"\"")
- fmt.Fprintln(w, "}")
+ fmt.Fprintf(w, `func (*%s) GetCrcString() string {
+ return %q
+}
+`, structName, crc)
}
// generateMessageTypeGetter generates message factory for the generated message into the provider writer