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