| // Copyright 2015 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. |
| // GlobName calls __Glob on the given object with the given pattern and returns |
| // a sorted list of matching object names, or an error. |
| func GlobName(ctx *context.T, name, pattern string) ([]string, []naming.GlobError, error) { |
| client := v23.GetClient(ctx) |
| call, err := client.StartCall(ctx, name, rpc.GlobMethod, []interface{}{pattern}) |
| globErrors := []naming.GlobError{} |
| switch err := call.Recv(&gr); err { |
| case naming.GlobReplyEntry: |
| results = append(results, v.Value.Name) |
| case naming.GlobReplyError: |
| globErrors = append(globErrors, v.Value) |
| if err := call.Finish(); err != nil { |
| return results, globErrors, nil |