Documentation ¶
Overview ¶
Package relay contains relaying interfaces for external use.
These interfaces are currently unstable, and aren't covered by the API backwards-compatibility guarantee.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CallFrame ¶
type CallFrame interface { // TTL is the TTL of the underlying frame TTL() time.Duration // 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) // Arg2Append appends a key/val pair to arg2 Arg2Append(key, val []byte) }
CallFrame is an interface that abstracts access to the call req frame.
type Conn ¶ added in v1.1.0
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 // Context contains connection-specific context which can be accessed via // RelayHost.Start() Context context.Context }
Conn contains information about the underlying connection.
type RateLimitDropError ¶ added in v1.2.2
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 ¶ added in v1.2.2
func (e RateLimitDropError) Error() string
type RespFrame ¶ added in v1.22.0
type RespFrame interface { // OK indicates whether the call was successful OK() bool // ArgScheme returns the scheme of the arg ArgScheme() []byte // Arg2IsFragmented indicates whether arg2 runs over the first frame Arg2IsFragmented() bool // Arg2 returns the raw arg2 payload Arg2() []byte }
RespFrame is an interface that abstracts access to the CallRes frame