| // 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. |
| |
| package bidi |
| |
| import ( |
| "time" |
| |
| "v.io/v23/context" |
| "v.io/v23/flow" |
| ) |
| |
| const Name = "bidi" |
| |
| func init() { |
| flow.RegisterProtocol(Name, Bidi{}) |
| } |
| |
| // Bidi protocol represents the protocol to make a bidirectional RPC. Dial, Resolve, and Listen |
| // all fail on the Bidi protocol because the RoutingID of the end server must already be in the |
| // flow.Manager's cache for the bidirectional call to succeed. |
| type Bidi struct{} |
| |
| func (Bidi) Dial(ctx *context.T, network, address string, timeout time.Duration) (flow.Conn, error) { |
| return nil, NewErrBidiRoutingIdNotCached(ctx) |
| } |
| |
| func (Bidi) Resolve(ctx *context.T, network, address string) (string, []string, error) { |
| return "", nil, NewErrBidiRoutingIdNotCached(ctx) |
| } |
| |
| func (Bidi) Listen(ctx *context.T, network, address string) (flow.Listener, error) { |
| return nil, NewErrCannotListenOnBidi(ctx) |
| } |