package relay

import "github.com/uber/tchannel-go/relay"

Package relay contains relaying interfaces for external use.

These interfaces are currently unstable, and aren't covered by the API backwards-compatibility guarantee.

Index

Types

type CallFrame

type CallFrame interface {
	// Caller is the name of the originating service.
	Caller() []byte
	// Service is the name of the destination service.
	Service() []byte
	// Method is the name of the method being called.
	Method() []byte
	// RoutingDelegate is the name of the routing delegate, if any.
	RoutingDelegate() []byte
	// RoutingKey may refer to an alternate traffic group instead of the
	// traffic group identified by the service name.
	RoutingKey() []byte
	// Arg2StartOffset returns the offset from start of payload to the
	// beginning of Arg2 in bytes.
	Arg2StartOffset() int
	// Arg2EndOffset returns the offset from start of payload to the end of
	// Arg2 in bytes, and hasMore to indicate if there are more frames and
	// Arg3 has not started (i.e. Arg2 is fragmented).
	Arg2EndOffset() (_ int, hasMore bool)
	// Arg2Iterator returns the iterator for reading Arg2 key value pair
	// of TChannel-Thrift Arg Scheme. If no iterator is available, return
	// io.EOF.
	Arg2Iterator() (arg2.KeyValIterator, error)
}

CallFrame is an interface that abstracts access to the call req frame.

type Conn

type Conn struct {
	// RemoteAddr is the remote address of the underlying TCP connection.
	RemoteAddr string

	// RemoteProcessName is the process name sent in the TChannel handshake.
	RemoteProcessName string

	// IsOutbound returns whether this connection is an outbound connection
	// initiated via the relay.
	IsOutbound bool
}

Conn contains information about the underlying connection.

type RateLimitDropError

type RateLimitDropError struct{}

RateLimitDropError is the error that should be returned from RelayHosts.Get if the request should be dropped silently. This is bit of a hack, because rate limiting of this nature isn't part of the actual TChannel protocol. The relayer will record that it has dropped the packet, but *won't* notify the client.

func (RateLimitDropError) Error

func (e RateLimitDropError) Error() string

Source Files

relay.go

Directories

PathSynopsis
relay/relaytest
Version
v1.16.0
Published
Oct 14, 2019
Platform
js/wasm
Imports
1 packages
Last checked
1 month ago

Tools for package owners.