protobuf

package
v1.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2017 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package protobuf implements Protocol Buffers encoding support for YARPC.

Index

Constants

View Source
const (
	// Encoding is the name of this encoding.
	Encoding transport.Encoding = "protobuf"
)

Variables

This section is empty.

Functions

func BuildProcedures

func BuildProcedures(
	serviceName string,
	methodNameToUnaryHandler map[string]transport.UnaryHandler,
	methodNameToOnewayHandler map[string]transport.OnewayHandler,
) []transport.Procedure

BuildProcedures builds the transport.Procedures.

func CastError

func CastError(expectedType proto.Message, actualType proto.Message) error

CastError returns an error saying that generated code could not properly cast a proto.Message to it's expected type.

func NewOnewayHandler

func NewOnewayHandler(
	handleOneway func(context.Context, proto.Message) error,
	newRequest func() proto.Message,
) transport.OnewayHandler

NewOnewayHandler returns a new OnewayHandler.

func NewUnaryHandler

func NewUnaryHandler(
	handle func(context.Context, proto.Message) (proto.Message, error),
	newRequest func() proto.Message,
) transport.UnaryHandler

NewUnaryHandler returns a new UnaryHandler.

func SetRawResponse

func SetRawResponse(headers transport.Headers) transport.Headers

SetRawResponse will set rawResponseHeaderKey to "true".

rawResponseHeaderKey is a header key attached to either a request or response that signals a UnaryHandler to not encode an application error inside a wirepb.Response object, instead marshalling the actual response.

Note per the documentation on transport.Headers#With, the returned Header may not be the same as the input header, so the caller should always update the header with:

header = protobuf.SetRawResponse(header)

Types

type Client

type Client interface {
	Call(
		ctx context.Context,
		requestMethodName string,
		request proto.Message,
		newResponse func() proto.Message,
		options ...yarpc.CallOption,
	) (proto.Message, error)
	CallOneway(
		ctx context.Context,
		requestMethodName string,
		request proto.Message,
		options ...yarpc.CallOption,
	) (transport.Ack, error)
}

Client is a protobuf client.

func NewClient

func NewClient(serviceName string, clientConfig transport.ClientConfig) Client

NewClient creates a new client.

Directories

Path Synopsis
internal
wirepb
Package wirepb is a generated protocol buffer package.
Package wirepb is a generated protocol buffer package.
Package main provides a protoc plugin that generates code for the protobuf encoding for YARPC.
Package main provides a protoc plugin that generates code for the protobuf encoding for YARPC.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL