| // 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. |
| |
| // This file was auto-generated by the vanadium vdl tool. |
| // Source: namespace.vdl |
| |
| // Package namespace defines an RPC services that allows remoting of the |
| // namespace client library over the wire. This is useful for |
| // javascript so it doesn't have to implement the library. |
| // This should be kept in sync with the namespace library (v.io/v23/naming). |
| package namespace |
| |
| import ( |
| // VDL system imports |
| "io" |
| "v.io/v23" |
| "v.io/v23/context" |
| "v.io/v23/rpc" |
| |
| // VDL user imports |
| "time" |
| "v.io/v23/naming" |
| "v.io/v23/security/access" |
| _ "v.io/v23/vdlroot/time" |
| ) |
| |
| // NamespaceClientMethods is the client interface |
| // containing Namespace methods. |
| type NamespaceClientMethods interface { |
| // Run a glob query and stream the results. |
| Glob(ctx *context.T, pattern string, opts ...rpc.CallOpt) (NamespaceGlobClientCall, error) |
| // Mount mounts a server under the given name. |
| Mount(ctx *context.T, name string, server string, ttl time.Duration, replace bool, opts ...rpc.CallOpt) error |
| // Unmount removes an existing mount point. |
| Unmount(ctx *context.T, name string, server string, opts ...rpc.CallOpt) error |
| // Resolve resolves a name to an address. |
| Resolve(ctx *context.T, name string, opts ...rpc.CallOpt) ([]string, error) |
| // ResolveToMountTable resolves a name to the address of the mounttable |
| // directly hosting it. |
| ResolveToMountTable(ctx *context.T, name string, opts ...rpc.CallOpt) ([]string, error) |
| // FlushCacheEntry removes the namespace cache entry for a given name. |
| FlushCacheEntry(ctx *context.T, name string, opts ...rpc.CallOpt) (bool, error) |
| // DisableCache disables the naming cache. |
| DisableCache(ctx *context.T, disable bool, opts ...rpc.CallOpt) error |
| // Roots returns the addresses of the current mounttable roots. |
| Roots(*context.T, ...rpc.CallOpt) ([]string, error) |
| // SetRoots sets the current mounttable roots. |
| SetRoots(ctx *context.T, roots []string, opts ...rpc.CallOpt) error |
| // SetPermissions sets the AccessList in a node in a mount table. |
| SetPermissions(ctx *context.T, name string, perms access.Permissions, version string, opts ...rpc.CallOpt) error |
| // GetPermissions returns the AccessList in a node in a mount table. |
| GetPermissions(ctx *context.T, name string, opts ...rpc.CallOpt) (perms access.Permissions, version string, err error) |
| // Delete deletes the name from the mounttable and, if requested, any subtree. |
| Delete(ctx *context.T, name string, deleteSubtree bool, opts ...rpc.CallOpt) error |
| } |
| |
| // NamespaceClientStub adds universal methods to NamespaceClientMethods. |
| type NamespaceClientStub interface { |
| NamespaceClientMethods |
| rpc.UniversalServiceMethods |
| } |
| |
| // NamespaceClient returns a client stub for Namespace. |
| func NamespaceClient(name string) NamespaceClientStub { |
| return implNamespaceClientStub{name} |
| } |
| |
| type implNamespaceClientStub struct { |
| name string |
| } |
| |
| func (c implNamespaceClientStub) Glob(ctx *context.T, i0 string, opts ...rpc.CallOpt) (ocall NamespaceGlobClientCall, err error) { |
| var call rpc.ClientCall |
| if call, err = v23.GetClient(ctx).StartCall(ctx, c.name, "Glob", []interface{}{i0}, opts...); err != nil { |
| return |
| } |
| ocall = &implNamespaceGlobClientCall{ClientCall: call} |
| return |
| } |
| |
| func (c implNamespaceClientStub) Mount(ctx *context.T, i0 string, i1 string, i2 time.Duration, i3 bool, opts ...rpc.CallOpt) (err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "Mount", []interface{}{i0, i1, i2, i3}, nil, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) Unmount(ctx *context.T, i0 string, i1 string, opts ...rpc.CallOpt) (err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "Unmount", []interface{}{i0, i1}, nil, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) Resolve(ctx *context.T, i0 string, opts ...rpc.CallOpt) (o0 []string, err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "Resolve", []interface{}{i0}, []interface{}{&o0}, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) ResolveToMountTable(ctx *context.T, i0 string, opts ...rpc.CallOpt) (o0 []string, err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "ResolveToMountTable", []interface{}{i0}, []interface{}{&o0}, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) FlushCacheEntry(ctx *context.T, i0 string, opts ...rpc.CallOpt) (o0 bool, err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "FlushCacheEntry", []interface{}{i0}, []interface{}{&o0}, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) DisableCache(ctx *context.T, i0 bool, opts ...rpc.CallOpt) (err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "DisableCache", []interface{}{i0}, nil, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) Roots(ctx *context.T, opts ...rpc.CallOpt) (o0 []string, err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "Roots", nil, []interface{}{&o0}, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) SetRoots(ctx *context.T, i0 []string, opts ...rpc.CallOpt) (err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "SetRoots", []interface{}{i0}, nil, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) SetPermissions(ctx *context.T, i0 string, i1 access.Permissions, i2 string, opts ...rpc.CallOpt) (err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "SetPermissions", []interface{}{i0, i1, i2}, nil, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) GetPermissions(ctx *context.T, i0 string, opts ...rpc.CallOpt) (o0 access.Permissions, o1 string, err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "GetPermissions", []interface{}{i0}, []interface{}{&o0, &o1}, opts...) |
| return |
| } |
| |
| func (c implNamespaceClientStub) Delete(ctx *context.T, i0 string, i1 bool, opts ...rpc.CallOpt) (err error) { |
| err = v23.GetClient(ctx).Call(ctx, c.name, "Delete", []interface{}{i0, i1}, nil, opts...) |
| return |
| } |
| |
| // NamespaceGlobClientStream is the client stream for Namespace.Glob. |
| type NamespaceGlobClientStream interface { |
| // RecvStream returns the receiver side of the Namespace.Glob client stream. |
| RecvStream() interface { |
| // Advance stages an item so that it may be retrieved via Value. Returns |
| // true iff there is an item to retrieve. Advance must be called before |
| // Value is called. May block if an item is not available. |
| Advance() bool |
| // Value returns the item that was staged by Advance. May panic if Advance |
| // returned false or was not called. Never blocks. |
| Value() naming.GlobReply |
| // Err returns any error encountered by Advance. Never blocks. |
| Err() error |
| } |
| } |
| |
| // NamespaceGlobClientCall represents the call returned from Namespace.Glob. |
| type NamespaceGlobClientCall interface { |
| NamespaceGlobClientStream |
| // Finish blocks until the server is done, and returns the positional return |
| // values for call. |
| // |
| // Finish returns immediately if the call has been canceled; depending on the |
| // timing the output could either be an error signaling cancelation, or the |
| // valid positional return values from the server. |
| // |
| // Calling Finish is mandatory for releasing stream resources, unless the call |
| // has been canceled or any of the other methods return an error. Finish should |
| // be called at most once. |
| Finish() error |
| } |
| |
| type implNamespaceGlobClientCall struct { |
| rpc.ClientCall |
| valRecv naming.GlobReply |
| errRecv error |
| } |
| |
| func (c *implNamespaceGlobClientCall) RecvStream() interface { |
| Advance() bool |
| Value() naming.GlobReply |
| Err() error |
| } { |
| return implNamespaceGlobClientCallRecv{c} |
| } |
| |
| type implNamespaceGlobClientCallRecv struct { |
| c *implNamespaceGlobClientCall |
| } |
| |
| func (c implNamespaceGlobClientCallRecv) Advance() bool { |
| c.c.errRecv = c.c.Recv(&c.c.valRecv) |
| return c.c.errRecv == nil |
| } |
| func (c implNamespaceGlobClientCallRecv) Value() naming.GlobReply { |
| return c.c.valRecv |
| } |
| func (c implNamespaceGlobClientCallRecv) Err() error { |
| if c.c.errRecv == io.EOF { |
| return nil |
| } |
| return c.c.errRecv |
| } |
| func (c *implNamespaceGlobClientCall) Finish() (err error) { |
| err = c.ClientCall.Finish() |
| return |
| } |
| |
| // NamespaceServerMethods is the interface a server writer |
| // implements for Namespace. |
| type NamespaceServerMethods interface { |
| // Run a glob query and stream the results. |
| Glob(ctx *context.T, call NamespaceGlobServerCall, pattern string) error |
| // Mount mounts a server under the given name. |
| Mount(ctx *context.T, call rpc.ServerCall, name string, server string, ttl time.Duration, replace bool) error |
| // Unmount removes an existing mount point. |
| Unmount(ctx *context.T, call rpc.ServerCall, name string, server string) error |
| // Resolve resolves a name to an address. |
| Resolve(ctx *context.T, call rpc.ServerCall, name string) ([]string, error) |
| // ResolveToMountTable resolves a name to the address of the mounttable |
| // directly hosting it. |
| ResolveToMountTable(ctx *context.T, call rpc.ServerCall, name string) ([]string, error) |
| // FlushCacheEntry removes the namespace cache entry for a given name. |
| FlushCacheEntry(ctx *context.T, call rpc.ServerCall, name string) (bool, error) |
| // DisableCache disables the naming cache. |
| DisableCache(ctx *context.T, call rpc.ServerCall, disable bool) error |
| // Roots returns the addresses of the current mounttable roots. |
| Roots(*context.T, rpc.ServerCall) ([]string, error) |
| // SetRoots sets the current mounttable roots. |
| SetRoots(ctx *context.T, call rpc.ServerCall, roots []string) error |
| // SetPermissions sets the AccessList in a node in a mount table. |
| SetPermissions(ctx *context.T, call rpc.ServerCall, name string, perms access.Permissions, version string) error |
| // GetPermissions returns the AccessList in a node in a mount table. |
| GetPermissions(ctx *context.T, call rpc.ServerCall, name string) (perms access.Permissions, version string, err error) |
| // Delete deletes the name from the mounttable and, if requested, any subtree. |
| Delete(ctx *context.T, call rpc.ServerCall, name string, deleteSubtree bool) error |
| } |
| |
| // NamespaceServerStubMethods is the server interface containing |
| // Namespace methods, as expected by rpc.Server. |
| // The only difference between this interface and NamespaceServerMethods |
| // is the streaming methods. |
| type NamespaceServerStubMethods interface { |
| // Run a glob query and stream the results. |
| Glob(ctx *context.T, call *NamespaceGlobServerCallStub, pattern string) error |
| // Mount mounts a server under the given name. |
| Mount(ctx *context.T, call rpc.ServerCall, name string, server string, ttl time.Duration, replace bool) error |
| // Unmount removes an existing mount point. |
| Unmount(ctx *context.T, call rpc.ServerCall, name string, server string) error |
| // Resolve resolves a name to an address. |
| Resolve(ctx *context.T, call rpc.ServerCall, name string) ([]string, error) |
| // ResolveToMountTable resolves a name to the address of the mounttable |
| // directly hosting it. |
| ResolveToMountTable(ctx *context.T, call rpc.ServerCall, name string) ([]string, error) |
| // FlushCacheEntry removes the namespace cache entry for a given name. |
| FlushCacheEntry(ctx *context.T, call rpc.ServerCall, name string) (bool, error) |
| // DisableCache disables the naming cache. |
| DisableCache(ctx *context.T, call rpc.ServerCall, disable bool) error |
| // Roots returns the addresses of the current mounttable roots. |
| Roots(*context.T, rpc.ServerCall) ([]string, error) |
| // SetRoots sets the current mounttable roots. |
| SetRoots(ctx *context.T, call rpc.ServerCall, roots []string) error |
| // SetPermissions sets the AccessList in a node in a mount table. |
| SetPermissions(ctx *context.T, call rpc.ServerCall, name string, perms access.Permissions, version string) error |
| // GetPermissions returns the AccessList in a node in a mount table. |
| GetPermissions(ctx *context.T, call rpc.ServerCall, name string) (perms access.Permissions, version string, err error) |
| // Delete deletes the name from the mounttable and, if requested, any subtree. |
| Delete(ctx *context.T, call rpc.ServerCall, name string, deleteSubtree bool) error |
| } |
| |
| // NamespaceServerStub adds universal methods to NamespaceServerStubMethods. |
| type NamespaceServerStub interface { |
| NamespaceServerStubMethods |
| // Describe the Namespace interfaces. |
| Describe__() []rpc.InterfaceDesc |
| } |
| |
| // NamespaceServer returns a server stub for Namespace. |
| // It converts an implementation of NamespaceServerMethods into |
| // an object that may be used by rpc.Server. |
| func NamespaceServer(impl NamespaceServerMethods) NamespaceServerStub { |
| stub := implNamespaceServerStub{ |
| impl: impl, |
| } |
| // Initialize GlobState; always check the stub itself first, to handle the |
| // case where the user has the Glob method defined in their VDL source. |
| if gs := rpc.NewGlobState(stub); gs != nil { |
| stub.gs = gs |
| } else if gs := rpc.NewGlobState(impl); gs != nil { |
| stub.gs = gs |
| } |
| return stub |
| } |
| |
| type implNamespaceServerStub struct { |
| impl NamespaceServerMethods |
| gs *rpc.GlobState |
| } |
| |
| func (s implNamespaceServerStub) Glob(ctx *context.T, call *NamespaceGlobServerCallStub, i0 string) error { |
| return s.impl.Glob(ctx, call, i0) |
| } |
| |
| func (s implNamespaceServerStub) Mount(ctx *context.T, call rpc.ServerCall, i0 string, i1 string, i2 time.Duration, i3 bool) error { |
| return s.impl.Mount(ctx, call, i0, i1, i2, i3) |
| } |
| |
| func (s implNamespaceServerStub) Unmount(ctx *context.T, call rpc.ServerCall, i0 string, i1 string) error { |
| return s.impl.Unmount(ctx, call, i0, i1) |
| } |
| |
| func (s implNamespaceServerStub) Resolve(ctx *context.T, call rpc.ServerCall, i0 string) ([]string, error) { |
| return s.impl.Resolve(ctx, call, i0) |
| } |
| |
| func (s implNamespaceServerStub) ResolveToMountTable(ctx *context.T, call rpc.ServerCall, i0 string) ([]string, error) { |
| return s.impl.ResolveToMountTable(ctx, call, i0) |
| } |
| |
| func (s implNamespaceServerStub) FlushCacheEntry(ctx *context.T, call rpc.ServerCall, i0 string) (bool, error) { |
| return s.impl.FlushCacheEntry(ctx, call, i0) |
| } |
| |
| func (s implNamespaceServerStub) DisableCache(ctx *context.T, call rpc.ServerCall, i0 bool) error { |
| return s.impl.DisableCache(ctx, call, i0) |
| } |
| |
| func (s implNamespaceServerStub) Roots(ctx *context.T, call rpc.ServerCall) ([]string, error) { |
| return s.impl.Roots(ctx, call) |
| } |
| |
| func (s implNamespaceServerStub) SetRoots(ctx *context.T, call rpc.ServerCall, i0 []string) error { |
| return s.impl.SetRoots(ctx, call, i0) |
| } |
| |
| func (s implNamespaceServerStub) SetPermissions(ctx *context.T, call rpc.ServerCall, i0 string, i1 access.Permissions, i2 string) error { |
| return s.impl.SetPermissions(ctx, call, i0, i1, i2) |
| } |
| |
| func (s implNamespaceServerStub) GetPermissions(ctx *context.T, call rpc.ServerCall, i0 string) (access.Permissions, string, error) { |
| return s.impl.GetPermissions(ctx, call, i0) |
| } |
| |
| func (s implNamespaceServerStub) Delete(ctx *context.T, call rpc.ServerCall, i0 string, i1 bool) error { |
| return s.impl.Delete(ctx, call, i0, i1) |
| } |
| |
| func (s implNamespaceServerStub) Globber() *rpc.GlobState { |
| return s.gs |
| } |
| |
| func (s implNamespaceServerStub) Describe__() []rpc.InterfaceDesc { |
| return []rpc.InterfaceDesc{NamespaceDesc} |
| } |
| |
| // NamespaceDesc describes the Namespace interface. |
| var NamespaceDesc rpc.InterfaceDesc = descNamespace |
| |
| // descNamespace hides the desc to keep godoc clean. |
| var descNamespace = rpc.InterfaceDesc{ |
| Name: "Namespace", |
| PkgPath: "v.io/x/ref/services/wspr/internal/namespace", |
| Methods: []rpc.MethodDesc{ |
| { |
| Name: "Glob", |
| Doc: "// Run a glob query and stream the results.", |
| InArgs: []rpc.ArgDesc{ |
| {"pattern", ``}, // string |
| }, |
| }, |
| { |
| Name: "Mount", |
| Doc: "// Mount mounts a server under the given name.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| {"server", ``}, // string |
| {"ttl", ``}, // time.Duration |
| {"replace", ``}, // bool |
| }, |
| }, |
| { |
| Name: "Unmount", |
| Doc: "// Unmount removes an existing mount point.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| {"server", ``}, // string |
| }, |
| }, |
| { |
| Name: "Resolve", |
| Doc: "// Resolve resolves a name to an address.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| }, |
| OutArgs: []rpc.ArgDesc{ |
| {"", ``}, // []string |
| }, |
| }, |
| { |
| Name: "ResolveToMountTable", |
| Doc: "// ResolveToMountTable resolves a name to the address of the mounttable\n// directly hosting it.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| }, |
| OutArgs: []rpc.ArgDesc{ |
| {"", ``}, // []string |
| }, |
| }, |
| { |
| Name: "FlushCacheEntry", |
| Doc: "// FlushCacheEntry removes the namespace cache entry for a given name.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| }, |
| OutArgs: []rpc.ArgDesc{ |
| {"", ``}, // bool |
| }, |
| }, |
| { |
| Name: "DisableCache", |
| Doc: "// DisableCache disables the naming cache.", |
| InArgs: []rpc.ArgDesc{ |
| {"disable", ``}, // bool |
| }, |
| }, |
| { |
| Name: "Roots", |
| Doc: "// Roots returns the addresses of the current mounttable roots.", |
| OutArgs: []rpc.ArgDesc{ |
| {"", ``}, // []string |
| }, |
| }, |
| { |
| Name: "SetRoots", |
| Doc: "// SetRoots sets the current mounttable roots.", |
| InArgs: []rpc.ArgDesc{ |
| {"roots", ``}, // []string |
| }, |
| }, |
| { |
| Name: "SetPermissions", |
| Doc: "// SetPermissions sets the AccessList in a node in a mount table.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| {"perms", ``}, // access.Permissions |
| {"version", ``}, // string |
| }, |
| }, |
| { |
| Name: "GetPermissions", |
| Doc: "// GetPermissions returns the AccessList in a node in a mount table.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| }, |
| OutArgs: []rpc.ArgDesc{ |
| {"perms", ``}, // access.Permissions |
| {"version", ``}, // string |
| }, |
| }, |
| { |
| Name: "Delete", |
| Doc: "// Delete deletes the name from the mounttable and, if requested, any subtree.", |
| InArgs: []rpc.ArgDesc{ |
| {"name", ``}, // string |
| {"deleteSubtree", ``}, // bool |
| }, |
| }, |
| }, |
| } |
| |
| // NamespaceGlobServerStream is the server stream for Namespace.Glob. |
| type NamespaceGlobServerStream interface { |
| // SendStream returns the send side of the Namespace.Glob server stream. |
| SendStream() interface { |
| // Send places the item onto the output stream. Returns errors encountered |
| // while sending. Blocks if there is no buffer space; will unblock when |
| // buffer space is available. |
| Send(item naming.GlobReply) error |
| } |
| } |
| |
| // NamespaceGlobServerCall represents the context passed to Namespace.Glob. |
| type NamespaceGlobServerCall interface { |
| rpc.ServerCall |
| NamespaceGlobServerStream |
| } |
| |
| // NamespaceGlobServerCallStub is a wrapper that converts rpc.StreamServerCall into |
| // a typesafe stub that implements NamespaceGlobServerCall. |
| type NamespaceGlobServerCallStub struct { |
| rpc.StreamServerCall |
| } |
| |
| // Init initializes NamespaceGlobServerCallStub from rpc.StreamServerCall. |
| func (s *NamespaceGlobServerCallStub) Init(call rpc.StreamServerCall) { |
| s.StreamServerCall = call |
| } |
| |
| // SendStream returns the send side of the Namespace.Glob server stream. |
| func (s *NamespaceGlobServerCallStub) SendStream() interface { |
| Send(item naming.GlobReply) error |
| } { |
| return implNamespaceGlobServerCallSend{s} |
| } |
| |
| type implNamespaceGlobServerCallSend struct { |
| s *NamespaceGlobServerCallStub |
| } |
| |
| func (s implNamespaceGlobServerCallSend) Send(item naming.GlobReply) error { |
| return s.s.Send(item) |
| } |