| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file is autogenerated by: |
| // mojo/public/tools/bindings/mojom_bindings_generator.py |
| // For: |
| // mojom/v.io/x/ref/services/discovery/ble/ble.mojom |
| // |
| |
| package ble |
| |
| import ( |
| "fmt" |
| "mojo/public/go/bindings" |
| "mojo/public/go/system" |
| "sort" |
| ) |
| |
| type V23Ble interface { |
| Advertise(inAdv Advertisement) (outHandler PluginStopper_Pointer, err error) |
| Scan(inId *[]uint8, inAttributes map[string]string, inHandler PluginScanHandler_Pointer) (outHandler PluginStopper_Pointer, err error) |
| } |
| |
| var v23BLE_Name = "ble::V23BLE" |
| |
| type V23Ble_Request bindings.InterfaceRequest |
| |
| func (r *V23Ble_Request) Name() string { |
| return v23BLE_Name |
| } |
| |
| type V23Ble_Pointer bindings.InterfacePointer |
| |
| func (p *V23Ble_Pointer) Name() string { |
| return v23BLE_Name |
| } |
| |
| type V23Ble_ServiceFactory struct{ |
| Delegate V23Ble_Factory |
| } |
| |
| type V23Ble_Factory interface { |
| Create(request V23Ble_Request) |
| } |
| |
| func (f *V23Ble_ServiceFactory) Name() string { |
| return v23BLE_Name |
| } |
| |
| func (f *V23Ble_ServiceFactory) Create(messagePipe system.MessagePipeHandle) { |
| request := V23Ble_Request{bindings.NewMessagePipeHandleOwner(messagePipe)} |
| f.Delegate.Create(request) |
| } |
| |
| // CreateMessagePipeForV23Ble creates a message pipe for use with the |
| // V23Ble interface with a V23Ble_Request on one end and a V23Ble_Pointer on the other. |
| func CreateMessagePipeForV23Ble() (V23Ble_Request, V23Ble_Pointer) { |
| r, p := bindings.CreateMessagePipeForMojoInterface() |
| return V23Ble_Request(r), V23Ble_Pointer(p) |
| } |
| |
| const v23BLE_Advertise_Name uint32 = 0 |
| const v23BLE_Scan_Name uint32 = 1 |
| |
| type V23Ble_Proxy struct { |
| router *bindings.Router |
| ids bindings.Counter |
| } |
| |
| func NewV23BleProxy(p V23Ble_Pointer, waiter bindings.AsyncWaiter) *V23Ble_Proxy { |
| return &V23Ble_Proxy{ |
| bindings.NewRouter(p.PassMessagePipe(), waiter), |
| bindings.NewCounter(), |
| } |
| } |
| |
| func (p *V23Ble_Proxy) Close_Proxy() { |
| p.router.Close() |
| } |
| |
| type v23Ble_Advertise_Params struct { |
| inAdv Advertisement |
| } |
| |
| func (s *v23Ble_Advertise_Params) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(8, 0) |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := s.inAdv.Encode(encoder); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var v23Ble_Advertise_Params_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{16, 0}, |
| } |
| |
| func (s *v23Ble_Advertise_Params) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(v23Ble_Advertise_Params_Versions), func(i int) bool { |
| return v23Ble_Advertise_Params_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(v23Ble_Advertise_Params_Versions) { |
| if v23Ble_Advertise_Params_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := v23Ble_Advertise_Params_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := s.inAdv.Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| type v23Ble_Advertise_ResponseParams struct { |
| outHandler PluginStopper_Pointer |
| } |
| |
| func (s *v23Ble_Advertise_ResponseParams) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(8, 0) |
| if err := encoder.WriteInterface(s.outHandler.PassMessagePipe()); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var v23Ble_Advertise_ResponseParams_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{16, 0}, |
| } |
| |
| func (s *v23Ble_Advertise_ResponseParams) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(v23Ble_Advertise_ResponseParams_Versions), func(i int) bool { |
| return v23Ble_Advertise_ResponseParams_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(v23Ble_Advertise_ResponseParams_Versions) { |
| if v23Ble_Advertise_ResponseParams_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := v23Ble_Advertise_ResponseParams_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| handle0, err := decoder.ReadInterface() |
| if err != nil { |
| return err |
| } |
| if handle0.IsValid() { |
| handleOwner := bindings.NewMessagePipeHandleOwner(handle0) |
| s.outHandler = PluginStopper_Pointer{handleOwner} |
| } else { |
| return &bindings.ValidationError{bindings.UnexpectedInvalidHandle, "unexpected invalid handle"} |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| func (p *V23Ble_Proxy) Advertise(inAdv Advertisement) (outHandler PluginStopper_Pointer, err error) { |
| payload := &v23Ble_Advertise_Params{ |
| inAdv, |
| } |
| header := bindings.MessageHeader{ |
| Type: v23BLE_Advertise_Name, |
| Flags: bindings.MessageExpectsResponseFlag, |
| RequestId: p.ids.Count(), |
| } |
| var message *bindings.Message |
| if message, err = bindings.EncodeMessage(header, payload); err != nil { |
| err = fmt.Errorf("can't encode request: %v", err.Error()) |
| p.Close_Proxy() |
| return |
| } |
| readResult := <-p.router.AcceptWithResponse(message) |
| if err = readResult.Error; err != nil { |
| p.Close_Proxy() |
| return |
| } |
| if readResult.Message.Header.Flags != bindings.MessageIsResponseFlag { |
| err = &bindings.ValidationError{bindings.MessageHeaderInvalidFlags, |
| fmt.Sprintf("invalid message header flag: %v", readResult.Message.Header.Flags), |
| } |
| return |
| } |
| if got, want := readResult.Message.Header.Type, v23BLE_Advertise_Name; got != want { |
| err = &bindings.ValidationError{bindings.MessageHeaderUnknownMethod, |
| fmt.Sprintf("invalid method in response: expected %v, got %v", want, got), |
| } |
| return |
| } |
| var response v23Ble_Advertise_ResponseParams |
| if err = readResult.Message.DecodePayload(&response); err != nil { |
| p.Close_Proxy() |
| return |
| } |
| outHandler = response.outHandler |
| return |
| } |
| |
| type v23Ble_Scan_Params struct { |
| inId *[]uint8 |
| inAttributes map[string]string |
| inHandler PluginScanHandler_Pointer |
| } |
| |
| func (s *v23Ble_Scan_Params) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(24, 0) |
| if s.inId == nil { |
| encoder.WriteNullPointer() |
| } else { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len((*s.inId))), 8) |
| for _, elem0 := range (*s.inId) { |
| if err := encoder.WriteUint8(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartMap() |
| { |
| var keys0 []string |
| var values0 []string |
| for key0, value0 := range s.inAttributes { |
| keys0 = append(keys0, key0) |
| values0 = append(values0, value0) |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(keys0)), 64) |
| for _, elem1 := range keys0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem1); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(values0)), 64) |
| for _, elem1 := range values0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem1); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WriteInterface(s.inHandler.PassMessagePipe()); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var v23Ble_Scan_Params_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{32, 0}, |
| } |
| |
| func (s *v23Ble_Scan_Params) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(v23Ble_Scan_Params_Versions), func(i int) bool { |
| return v23Ble_Scan_Params_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(v23Ble_Scan_Params_Versions) { |
| if v23Ble_Scan_Params_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := v23Ble_Scan_Params_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| s.inId = nil |
| } else { |
| s.inId = new([]uint8) |
| len0, err := decoder.StartArray(8) |
| if err != nil { |
| return err |
| } |
| (*s.inId) = make([]uint8, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| value1, err := decoder.ReadUint8() |
| if err != nil { |
| return err |
| } |
| (*s.inId)[i0] = value1 |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := decoder.StartMap(); err != nil { |
| return err |
| } |
| var keys0 []string |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| keys0 = make([]string, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value2, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| keys0[i1] = value2 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| var values0 []string |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| values0 = make([]string, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value2, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| values0[i1] = value2 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if len(keys0) != len(values0) { |
| return &bindings.ValidationError{bindings.DifferentSizedArraysInMap, |
| fmt.Sprintf("Number of keys %d is different from number of values %d", len(keys0), len(values0)), |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| len0 := len(keys0) |
| map0 := make(map[string]string) |
| for i0 := 0; i0 < len0; i0++ { |
| map0[keys0[i0]] = values0[i0] |
| } |
| s.inAttributes = map0 |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| handle0, err := decoder.ReadInterface() |
| if err != nil { |
| return err |
| } |
| if handle0.IsValid() { |
| handleOwner := bindings.NewMessagePipeHandleOwner(handle0) |
| s.inHandler = PluginScanHandler_Pointer{handleOwner} |
| } else { |
| return &bindings.ValidationError{bindings.UnexpectedInvalidHandle, "unexpected invalid handle"} |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| type v23Ble_Scan_ResponseParams struct { |
| outHandler PluginStopper_Pointer |
| } |
| |
| func (s *v23Ble_Scan_ResponseParams) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(8, 0) |
| if err := encoder.WriteInterface(s.outHandler.PassMessagePipe()); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var v23Ble_Scan_ResponseParams_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{16, 0}, |
| } |
| |
| func (s *v23Ble_Scan_ResponseParams) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(v23Ble_Scan_ResponseParams_Versions), func(i int) bool { |
| return v23Ble_Scan_ResponseParams_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(v23Ble_Scan_ResponseParams_Versions) { |
| if v23Ble_Scan_ResponseParams_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := v23Ble_Scan_ResponseParams_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| handle0, err := decoder.ReadInterface() |
| if err != nil { |
| return err |
| } |
| if handle0.IsValid() { |
| handleOwner := bindings.NewMessagePipeHandleOwner(handle0) |
| s.outHandler = PluginStopper_Pointer{handleOwner} |
| } else { |
| return &bindings.ValidationError{bindings.UnexpectedInvalidHandle, "unexpected invalid handle"} |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| func (p *V23Ble_Proxy) Scan(inId *[]uint8, inAttributes map[string]string, inHandler PluginScanHandler_Pointer) (outHandler PluginStopper_Pointer, err error) { |
| payload := &v23Ble_Scan_Params{ |
| inId, |
| inAttributes, |
| inHandler, |
| } |
| header := bindings.MessageHeader{ |
| Type: v23BLE_Scan_Name, |
| Flags: bindings.MessageExpectsResponseFlag, |
| RequestId: p.ids.Count(), |
| } |
| var message *bindings.Message |
| if message, err = bindings.EncodeMessage(header, payload); err != nil { |
| err = fmt.Errorf("can't encode request: %v", err.Error()) |
| p.Close_Proxy() |
| return |
| } |
| readResult := <-p.router.AcceptWithResponse(message) |
| if err = readResult.Error; err != nil { |
| p.Close_Proxy() |
| return |
| } |
| if readResult.Message.Header.Flags != bindings.MessageIsResponseFlag { |
| err = &bindings.ValidationError{bindings.MessageHeaderInvalidFlags, |
| fmt.Sprintf("invalid message header flag: %v", readResult.Message.Header.Flags), |
| } |
| return |
| } |
| if got, want := readResult.Message.Header.Type, v23BLE_Scan_Name; got != want { |
| err = &bindings.ValidationError{bindings.MessageHeaderUnknownMethod, |
| fmt.Sprintf("invalid method in response: expected %v, got %v", want, got), |
| } |
| return |
| } |
| var response v23Ble_Scan_ResponseParams |
| if err = readResult.Message.DecodePayload(&response); err != nil { |
| p.Close_Proxy() |
| return |
| } |
| outHandler = response.outHandler |
| return |
| } |
| |
| type v23BLE_Stub struct { |
| connector *bindings.Connector |
| impl V23Ble |
| } |
| |
| func NewV23BleStub(r V23Ble_Request, impl V23Ble, waiter bindings.AsyncWaiter) *bindings.Stub { |
| connector := bindings.NewConnector(r.PassMessagePipe(), waiter) |
| return bindings.NewStub(connector, &v23BLE_Stub{connector, impl}) |
| } |
| |
| func (s *v23BLE_Stub) Accept(message *bindings.Message) (err error) { |
| switch message.Header.Type { |
| case v23BLE_Advertise_Name: |
| if message.Header.Flags != bindings.MessageExpectsResponseFlag { |
| return &bindings.ValidationError{bindings.MessageHeaderInvalidFlags, |
| fmt.Sprintf("invalid message header flag: %v", message.Header.Flags), |
| } |
| } |
| var request v23Ble_Advertise_Params |
| if err := message.DecodePayload(&request); err != nil { |
| return err |
| } |
| var response v23Ble_Advertise_ResponseParams |
| response.outHandler, err = s.impl.Advertise(request.inAdv) |
| if err != nil { |
| return |
| } |
| header := bindings.MessageHeader{ |
| Type: v23BLE_Advertise_Name, |
| Flags: bindings.MessageIsResponseFlag, |
| RequestId: message.Header.RequestId, |
| } |
| message, err = bindings.EncodeMessage(header, &response) |
| if err != nil { |
| return err |
| } |
| return s.connector.WriteMessage(message) |
| case v23BLE_Scan_Name: |
| if message.Header.Flags != bindings.MessageExpectsResponseFlag { |
| return &bindings.ValidationError{bindings.MessageHeaderInvalidFlags, |
| fmt.Sprintf("invalid message header flag: %v", message.Header.Flags), |
| } |
| } |
| var request v23Ble_Scan_Params |
| if err := message.DecodePayload(&request); err != nil { |
| return err |
| } |
| var response v23Ble_Scan_ResponseParams |
| response.outHandler, err = s.impl.Scan(request.inId, request.inAttributes, request.inHandler) |
| if err != nil { |
| return |
| } |
| header := bindings.MessageHeader{ |
| Type: v23BLE_Scan_Name, |
| Flags: bindings.MessageIsResponseFlag, |
| RequestId: message.Header.RequestId, |
| } |
| message, err = bindings.EncodeMessage(header, &response) |
| if err != nil { |
| return err |
| } |
| return s.connector.WriteMessage(message) |
| default: |
| return &bindings.ValidationError{ |
| bindings.MessageHeaderUnknownMethod, |
| fmt.Sprintf("unknown method %v", message.Header.Type), |
| } |
| } |
| return |
| } |
| |
| type PluginScanHandler interface { |
| Found(inS Advertisement) (err error) |
| Lost(inS Advertisement) (err error) |
| } |
| |
| var pluginScanHandler_Name = "ble::PluginScanHandler" |
| |
| type PluginScanHandler_Request bindings.InterfaceRequest |
| |
| func (r *PluginScanHandler_Request) Name() string { |
| return pluginScanHandler_Name |
| } |
| |
| type PluginScanHandler_Pointer bindings.InterfacePointer |
| |
| func (p *PluginScanHandler_Pointer) Name() string { |
| return pluginScanHandler_Name |
| } |
| |
| type PluginScanHandler_ServiceFactory struct{ |
| Delegate PluginScanHandler_Factory |
| } |
| |
| type PluginScanHandler_Factory interface { |
| Create(request PluginScanHandler_Request) |
| } |
| |
| func (f *PluginScanHandler_ServiceFactory) Name() string { |
| return pluginScanHandler_Name |
| } |
| |
| func (f *PluginScanHandler_ServiceFactory) Create(messagePipe system.MessagePipeHandle) { |
| request := PluginScanHandler_Request{bindings.NewMessagePipeHandleOwner(messagePipe)} |
| f.Delegate.Create(request) |
| } |
| |
| // CreateMessagePipeForPluginScanHandler creates a message pipe for use with the |
| // PluginScanHandler interface with a PluginScanHandler_Request on one end and a PluginScanHandler_Pointer on the other. |
| func CreateMessagePipeForPluginScanHandler() (PluginScanHandler_Request, PluginScanHandler_Pointer) { |
| r, p := bindings.CreateMessagePipeForMojoInterface() |
| return PluginScanHandler_Request(r), PluginScanHandler_Pointer(p) |
| } |
| |
| const pluginScanHandler_Found_Name uint32 = 0 |
| const pluginScanHandler_Lost_Name uint32 = 1 |
| |
| type PluginScanHandler_Proxy struct { |
| router *bindings.Router |
| ids bindings.Counter |
| } |
| |
| func NewPluginScanHandlerProxy(p PluginScanHandler_Pointer, waiter bindings.AsyncWaiter) *PluginScanHandler_Proxy { |
| return &PluginScanHandler_Proxy{ |
| bindings.NewRouter(p.PassMessagePipe(), waiter), |
| bindings.NewCounter(), |
| } |
| } |
| |
| func (p *PluginScanHandler_Proxy) Close_Proxy() { |
| p.router.Close() |
| } |
| |
| type pluginScanHandler_Found_Params struct { |
| inS Advertisement |
| } |
| |
| func (s *pluginScanHandler_Found_Params) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(8, 0) |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := s.inS.Encode(encoder); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var pluginScanHandler_Found_Params_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{16, 0}, |
| } |
| |
| func (s *pluginScanHandler_Found_Params) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(pluginScanHandler_Found_Params_Versions), func(i int) bool { |
| return pluginScanHandler_Found_Params_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(pluginScanHandler_Found_Params_Versions) { |
| if pluginScanHandler_Found_Params_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := pluginScanHandler_Found_Params_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := s.inS.Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| func (p *PluginScanHandler_Proxy) Found(inS Advertisement) (err error) { |
| payload := &pluginScanHandler_Found_Params{ |
| inS, |
| } |
| header := bindings.MessageHeader{ |
| Type: pluginScanHandler_Found_Name, |
| Flags: bindings.MessageNoFlag, |
| } |
| var message *bindings.Message |
| if message, err = bindings.EncodeMessage(header, payload); err != nil { |
| err = fmt.Errorf("can't encode request: %v", err.Error()) |
| p.Close_Proxy() |
| return |
| } |
| if err = p.router.Accept(message); err != nil { |
| p.Close_Proxy() |
| return |
| } |
| return |
| } |
| |
| type pluginScanHandler_Lost_Params struct { |
| inS Advertisement |
| } |
| |
| func (s *pluginScanHandler_Lost_Params) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(8, 0) |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := s.inS.Encode(encoder); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var pluginScanHandler_Lost_Params_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{16, 0}, |
| } |
| |
| func (s *pluginScanHandler_Lost_Params) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(pluginScanHandler_Lost_Params_Versions), func(i int) bool { |
| return pluginScanHandler_Lost_Params_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(pluginScanHandler_Lost_Params_Versions) { |
| if pluginScanHandler_Lost_Params_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := pluginScanHandler_Lost_Params_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := s.inS.Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| func (p *PluginScanHandler_Proxy) Lost(inS Advertisement) (err error) { |
| payload := &pluginScanHandler_Lost_Params{ |
| inS, |
| } |
| header := bindings.MessageHeader{ |
| Type: pluginScanHandler_Lost_Name, |
| Flags: bindings.MessageNoFlag, |
| } |
| var message *bindings.Message |
| if message, err = bindings.EncodeMessage(header, payload); err != nil { |
| err = fmt.Errorf("can't encode request: %v", err.Error()) |
| p.Close_Proxy() |
| return |
| } |
| if err = p.router.Accept(message); err != nil { |
| p.Close_Proxy() |
| return |
| } |
| return |
| } |
| |
| type pluginScanHandler_Stub struct { |
| connector *bindings.Connector |
| impl PluginScanHandler |
| } |
| |
| func NewPluginScanHandlerStub(r PluginScanHandler_Request, impl PluginScanHandler, waiter bindings.AsyncWaiter) *bindings.Stub { |
| connector := bindings.NewConnector(r.PassMessagePipe(), waiter) |
| return bindings.NewStub(connector, &pluginScanHandler_Stub{connector, impl}) |
| } |
| |
| func (s *pluginScanHandler_Stub) Accept(message *bindings.Message) (err error) { |
| switch message.Header.Type { |
| case pluginScanHandler_Found_Name: |
| if message.Header.Flags != bindings.MessageNoFlag { |
| return &bindings.ValidationError{bindings.MessageHeaderInvalidFlags, |
| fmt.Sprintf("invalid message header flag: %v", message.Header.Flags), |
| } |
| } |
| var request pluginScanHandler_Found_Params |
| if err := message.DecodePayload(&request); err != nil { |
| return err |
| } |
| err = s.impl.Found(request.inS) |
| if err != nil { |
| return |
| } |
| case pluginScanHandler_Lost_Name: |
| if message.Header.Flags != bindings.MessageNoFlag { |
| return &bindings.ValidationError{bindings.MessageHeaderInvalidFlags, |
| fmt.Sprintf("invalid message header flag: %v", message.Header.Flags), |
| } |
| } |
| var request pluginScanHandler_Lost_Params |
| if err := message.DecodePayload(&request); err != nil { |
| return err |
| } |
| err = s.impl.Lost(request.inS) |
| if err != nil { |
| return |
| } |
| default: |
| return &bindings.ValidationError{ |
| bindings.MessageHeaderUnknownMethod, |
| fmt.Sprintf("unknown method %v", message.Header.Type), |
| } |
| } |
| return |
| } |
| |
| type PluginStopper interface { |
| Stop() (err error) |
| } |
| |
| var pluginStopper_Name = "ble::PluginStopper" |
| |
| type PluginStopper_Request bindings.InterfaceRequest |
| |
| func (r *PluginStopper_Request) Name() string { |
| return pluginStopper_Name |
| } |
| |
| type PluginStopper_Pointer bindings.InterfacePointer |
| |
| func (p *PluginStopper_Pointer) Name() string { |
| return pluginStopper_Name |
| } |
| |
| type PluginStopper_ServiceFactory struct{ |
| Delegate PluginStopper_Factory |
| } |
| |
| type PluginStopper_Factory interface { |
| Create(request PluginStopper_Request) |
| } |
| |
| func (f *PluginStopper_ServiceFactory) Name() string { |
| return pluginStopper_Name |
| } |
| |
| func (f *PluginStopper_ServiceFactory) Create(messagePipe system.MessagePipeHandle) { |
| request := PluginStopper_Request{bindings.NewMessagePipeHandleOwner(messagePipe)} |
| f.Delegate.Create(request) |
| } |
| |
| // CreateMessagePipeForPluginStopper creates a message pipe for use with the |
| // PluginStopper interface with a PluginStopper_Request on one end and a PluginStopper_Pointer on the other. |
| func CreateMessagePipeForPluginStopper() (PluginStopper_Request, PluginStopper_Pointer) { |
| r, p := bindings.CreateMessagePipeForMojoInterface() |
| return PluginStopper_Request(r), PluginStopper_Pointer(p) |
| } |
| |
| const pluginStopper_Stop_Name uint32 = 0 |
| |
| type PluginStopper_Proxy struct { |
| router *bindings.Router |
| ids bindings.Counter |
| } |
| |
| func NewPluginStopperProxy(p PluginStopper_Pointer, waiter bindings.AsyncWaiter) *PluginStopper_Proxy { |
| return &PluginStopper_Proxy{ |
| bindings.NewRouter(p.PassMessagePipe(), waiter), |
| bindings.NewCounter(), |
| } |
| } |
| |
| func (p *PluginStopper_Proxy) Close_Proxy() { |
| p.router.Close() |
| } |
| |
| type pluginStopper_Stop_Params struct { |
| } |
| |
| func (s *pluginStopper_Stop_Params) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(0, 0) |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var pluginStopper_Stop_Params_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{8, 0}, |
| } |
| |
| func (s *pluginStopper_Stop_Params) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(pluginStopper_Stop_Params_Versions), func(i int) bool { |
| return pluginStopper_Stop_Params_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(pluginStopper_Stop_Params_Versions) { |
| if pluginStopper_Stop_Params_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := pluginStopper_Stop_Params_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| func (p *PluginStopper_Proxy) Stop() (err error) { |
| payload := &pluginStopper_Stop_Params{ |
| } |
| header := bindings.MessageHeader{ |
| Type: pluginStopper_Stop_Name, |
| Flags: bindings.MessageNoFlag, |
| } |
| var message *bindings.Message |
| if message, err = bindings.EncodeMessage(header, payload); err != nil { |
| err = fmt.Errorf("can't encode request: %v", err.Error()) |
| p.Close_Proxy() |
| return |
| } |
| if err = p.router.Accept(message); err != nil { |
| p.Close_Proxy() |
| return |
| } |
| return |
| } |
| |
| type pluginStopper_Stub struct { |
| connector *bindings.Connector |
| impl PluginStopper |
| } |
| |
| func NewPluginStopperStub(r PluginStopper_Request, impl PluginStopper, waiter bindings.AsyncWaiter) *bindings.Stub { |
| connector := bindings.NewConnector(r.PassMessagePipe(), waiter) |
| return bindings.NewStub(connector, &pluginStopper_Stub{connector, impl}) |
| } |
| |
| func (s *pluginStopper_Stub) Accept(message *bindings.Message) (err error) { |
| switch message.Header.Type { |
| case pluginStopper_Stop_Name: |
| if message.Header.Flags != bindings.MessageNoFlag { |
| return &bindings.ValidationError{bindings.MessageHeaderInvalidFlags, |
| fmt.Sprintf("invalid message header flag: %v", message.Header.Flags), |
| } |
| } |
| var request pluginStopper_Stop_Params |
| if err := message.DecodePayload(&request); err != nil { |
| return err |
| } |
| err = s.impl.Stop() |
| if err != nil { |
| return |
| } |
| default: |
| return &bindings.ValidationError{ |
| bindings.MessageHeaderUnknownMethod, |
| fmt.Sprintf("unknown method %v", message.Header.Type), |
| } |
| } |
| return |
| } |
| |
| type Advertisement struct { |
| ServiceId []uint8 |
| Service Service |
| } |
| |
| func (s *Advertisement) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(16, 0) |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(s.ServiceId)), 8) |
| for _, elem0 := range s.ServiceId { |
| if err := encoder.WriteUint8(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := s.Service.Encode(encoder); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var advertisement_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{24, 0}, |
| } |
| |
| func (s *Advertisement) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(advertisement_Versions), func(i int) bool { |
| return advertisement_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(advertisement_Versions) { |
| if advertisement_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := advertisement_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len0, err := decoder.StartArray(8) |
| if err != nil { |
| return err |
| } |
| s.ServiceId = make([]uint8, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| value1, err := decoder.ReadUint8() |
| if err != nil { |
| return err |
| } |
| s.ServiceId[i0] = value1 |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := s.Service.Decode(decoder); err != nil { |
| return err |
| } |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| type Service struct { |
| InstanceId []uint8 |
| Attributes map[string]string |
| } |
| |
| func (s *Service) Encode(encoder *bindings.Encoder) error { |
| encoder.StartStruct(16, 0) |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(s.InstanceId)), 8) |
| for _, elem0 := range s.InstanceId { |
| if err := encoder.WriteUint8(elem0); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartMap() |
| { |
| var keys0 []string |
| var values0 []string |
| for key0, value0 := range s.Attributes { |
| keys0 = append(keys0, key0) |
| values0 = append(values0, value0) |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(keys0)), 64) |
| for _, elem1 := range keys0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem1); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| encoder.StartArray(uint32(len(values0)), 64) |
| for _, elem1 := range values0 { |
| if err := encoder.WritePointer(); err != nil { |
| return err |
| } |
| if err := encoder.WriteString(elem1); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| if err := encoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |
| var service_Versions []bindings.DataHeader = []bindings.DataHeader{ |
| bindings.DataHeader{24, 0}, |
| } |
| |
| func (s *Service) Decode(decoder *bindings.Decoder) error { |
| header, err := decoder.StartStruct() |
| if err != nil { |
| return err |
| } |
| index := sort.Search(len(service_Versions), func(i int) bool { |
| return service_Versions[i].ElementsOrVersion >= header.ElementsOrVersion |
| }) |
| if index < len(service_Versions) { |
| if service_Versions[index].ElementsOrVersion > header.ElementsOrVersion { |
| index-- |
| } |
| expectedSize := service_Versions[index].Size |
| if expectedSize != header.Size { |
| return &bindings.ValidationError{bindings.UnexpectedStructHeader, |
| fmt.Sprintf("invalid struct header size: should be %d, but was %d", expectedSize, header.Size), |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len0, err := decoder.StartArray(8) |
| if err != nil { |
| return err |
| } |
| s.InstanceId = make([]uint8, len0) |
| for i0 := uint32(0); i0 < len0; i0++ { |
| value1, err := decoder.ReadUint8() |
| if err != nil { |
| return err |
| } |
| s.InstanceId[i0] = value1 |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if header.ElementsOrVersion >= 0 { |
| pointer0, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer0 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| if err := decoder.StartMap(); err != nil { |
| return err |
| } |
| var keys0 []string |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| keys0 = make([]string, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value2, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| keys0[i1] = value2 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| var values0 []string |
| { |
| pointer1, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer1 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| len1, err := decoder.StartArray(64) |
| if err != nil { |
| return err |
| } |
| values0 = make([]string, len1) |
| for i1 := uint32(0); i1 < len1; i1++ { |
| pointer2, err := decoder.ReadPointer() |
| if err != nil { |
| return err |
| } |
| if pointer2 == 0 { |
| return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null pointer"} |
| } else { |
| value2, err := decoder.ReadString() |
| if err != nil { |
| return err |
| } |
| values0[i1] = value2 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| } |
| } |
| if len(keys0) != len(values0) { |
| return &bindings.ValidationError{bindings.DifferentSizedArraysInMap, |
| fmt.Sprintf("Number of keys %d is different from number of values %d", len(keys0), len(values0)), |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| len0 := len(keys0) |
| map0 := make(map[string]string) |
| for i0 := 0; i0 < len0; i0++ { |
| map0[keys0[i0]] = values0[i0] |
| } |
| s.Attributes = map0 |
| } |
| } |
| if err := decoder.Finish(); err != nil { |
| return err |
| } |
| return nil |
| } |
| |