| // Copyright 2016 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package internal |
| |
| import ( |
| mojom "mojom/v.io/discovery" |
| |
| "v.io/v23/discovery" |
| "v.io/v23/security" |
| "v.io/v23/verror" |
| ) |
| |
| func v2mError(err error) *mojom.Error { |
| return &mojom.Error{ |
| Id: string(verror.ErrorID(err)), |
| ActionCode: uint32(verror.Action(err)), |
| Msg: err.Error(), |
| } |
| } |
| |
| func v2mAd(ad *discovery.Advertisement) mojom.Advertisement { |
| mAd := mojom.Advertisement{ |
| InterfaceName: ad.InterfaceName, |
| Addresses: ad.Addresses, |
| } |
| if ad.Id.IsValid() { |
| mAd.Id = new([AdIdLen]uint8) |
| *mAd.Id = ad.Id |
| } |
| if len(ad.Attributes) > 0 { |
| attributes := map[string]string(ad.Attributes) |
| mAd.Attributes = &attributes |
| } |
| if len(ad.Attachments) > 0 { |
| attachments := map[string][]byte(ad.Attachments) |
| mAd.Attachments = &attachments |
| } |
| return mAd |
| } |
| |
| func m2vAd(ad *mojom.Advertisement) discovery.Advertisement { |
| vAd := discovery.Advertisement{ |
| InterfaceName: ad.InterfaceName, |
| Addresses: ad.Addresses, |
| } |
| if ad.Id != nil { |
| vAd.Id = *ad.Id |
| } |
| if ad.Attributes != nil { |
| vAd.Attributes = *ad.Attributes |
| } |
| if ad.Attachments != nil { |
| vAd.Attachments = *ad.Attachments |
| } |
| return vAd |
| } |
| |
| func m2vVisibility(visibility *[]string) []security.BlessingPattern { |
| if visibility == nil { |
| return nil |
| } |
| vVisibility := make([]security.BlessingPattern, len(*visibility)) |
| for i, p := range *visibility { |
| vVisibility[i] = security.BlessingPattern(p) |
| } |
| return vVisibility |
| } |