Add various generator improvements
[govpp.git] / examples / binapi / memif / memif.ba.go
similarity index 62%
rename from examples/bin_api/memif/memif.ba.go
rename to examples/binapi/memif/memif.ba.go
index 58c466e..1ac0b0a 100644 (file)
@@ -1,32 +1,42 @@
 // Code generated by GoVPP binapi-generator. DO NOT EDIT.
-//  source: memif.api.json
+// source: /usr/share/vpp/api/plugins/memif.api.json
 
 /*
- Package memif is a generated from VPP binary API module 'memif'.
+Package memif is a generated from VPP binary API module 'memif'.
 
- It contains following objects:
-         5 services
+ The memif module consists of:
         10 messages
+         5 services
 */
 package memif
 
 import api "git.fd.io/govpp.git/api"
-import struc "github.com/lunixbochs/struc"
 import bytes "bytes"
+import context "context"
+import strconv "strconv"
+import struc "github.com/lunixbochs/struc"
 
 // Reference imports to suppress errors if they are not otherwise used.
 var _ = api.RegisterMessage
-var _ = struc.Pack
 var _ = bytes.NewBuffer
+var _ = context.Background
+var _ = strconv.Itoa
+var _ = struc.Pack
 
-// Services represents VPP binary API services:
-type Services interface {
-       DumpMemif(*MemifDump) ([]*MemifDetails, error)
-       DumpMemifSocketFilename(*MemifSocketFilenameDump) ([]*MemifSocketFilenameDetails, error)
-       MemifCreate(*MemifCreate) (*MemifCreateReply, error)
-       MemifDelete(*MemifDelete) (*MemifDeleteReply, error)
-       MemifSocketFilenameAddDel(*MemifSocketFilenameAddDel) (*MemifSocketFilenameAddDelReply, error)
-}
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the GoVPP api package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// GoVPP api package needs to be updated.
+const _ = api.GoVppAPIPackageIsVersion1 // please upgrade the GoVPP api package
+
+const (
+       // ModuleName is the name of this module.
+       ModuleName = "memif"
+       // APIVersion is the API version of this module.
+       APIVersion = "2.0.0"
+       // VersionCrc is the CRC of this module.
+       VersionCrc = 0x31b42e17
+)
 
 /* Messages */
 
@@ -212,15 +222,96 @@ func init() {
        api.RegisterMessage((*MemifSocketFilenameDump)(nil), "memif.MemifSocketFilenameDump")
 }
 
-var Messages = []api.Message{
-       (*MemifCreate)(nil),
-       (*MemifCreateReply)(nil),
-       (*MemifDelete)(nil),
-       (*MemifDeleteReply)(nil),
-       (*MemifDetails)(nil),
-       (*MemifDump)(nil),
-       (*MemifSocketFilenameAddDel)(nil),
-       (*MemifSocketFilenameAddDelReply)(nil),
-       (*MemifSocketFilenameDetails)(nil),
-       (*MemifSocketFilenameDump)(nil),
+// Messages returns list of all messages in this module.
+func AllMessages() []api.Message {
+       return []api.Message{
+               (*MemifCreate)(nil),
+               (*MemifCreateReply)(nil),
+               (*MemifDelete)(nil),
+               (*MemifDeleteReply)(nil),
+               (*MemifDetails)(nil),
+               (*MemifDump)(nil),
+               (*MemifSocketFilenameAddDel)(nil),
+               (*MemifSocketFilenameAddDelReply)(nil),
+               (*MemifSocketFilenameDetails)(nil),
+               (*MemifSocketFilenameDump)(nil),
+       }
+}
+
+// Service represents services in VPP binary API.
+type Service interface {
+       DumpMemif(ctx context.Context, in *MemifDump) ([]*MemifDetails, error)
+       DumpMemifSocketFilename(ctx context.Context, in *MemifSocketFilenameDump) ([]*MemifSocketFilenameDetails, error)
+       MemifCreate(ctx context.Context, in *MemifCreate) (*MemifCreateReply, error)
+       MemifDelete(ctx context.Context, in *MemifDelete) (*MemifDeleteReply, error)
+       MemifSocketFilenameAddDel(ctx context.Context, in *MemifSocketFilenameAddDel) (*MemifSocketFilenameAddDelReply, error)
+}
+
+type service struct {
+       ch api.Channel
+}
+
+func NewService(ch api.Channel) Service {
+       return &service{ch}
+}
+
+func (c *service) DumpMemif(ctx context.Context, in *MemifDump) ([]*MemifDetails, error) {
+       var dump []*MemifDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(MemifDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) DumpMemifSocketFilename(ctx context.Context, in *MemifSocketFilenameDump) ([]*MemifSocketFilenameDetails, error) {
+       var dump []*MemifSocketFilenameDetails
+       req := c.ch.SendMultiRequest(in)
+       for {
+               m := new(MemifSocketFilenameDetails)
+               stop, err := req.ReceiveReply(m)
+               if stop {
+                       break
+               }
+               if err != nil {
+                       return nil, err
+               }
+               dump = append(dump, m)
+       }
+       return dump, nil
+}
+
+func (c *service) MemifCreate(ctx context.Context, in *MemifCreate) (*MemifCreateReply, error) {
+       out := new(MemifCreateReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) MemifDelete(ctx context.Context, in *MemifDelete) (*MemifDeleteReply, error) {
+       out := new(MemifDeleteReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *service) MemifSocketFilenameAddDel(ctx context.Context, in *MemifSocketFilenameAddDel) (*MemifSocketFilenameAddDelReply, error) {
+       out := new(MemifSocketFilenameAddDelReply)
+       err := c.ch.SendRequest(in).ReceiveReply(out)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
 }