blob: 42769527fdc5e8a2f9e30ea61a6be4462265b059 [file] [log] [blame]
// 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
}