server

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2019 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// Error is a pkg/server error
	Error = errs.Class("server error")
)

Functions

func CombineInterceptors added in v0.13.0

func CombineInterceptors(a, b grpc.UnaryServerInterceptor) grpc.UnaryServerInterceptor

CombineInterceptors combines two UnaryServerInterceptors so they act as one (because grpc only allows you to pass one in).

func StreamMessageLoggingInterceptor added in v0.13.0

func StreamMessageLoggingInterceptor(log *zap.Logger) grpc.StreamServerInterceptor

StreamMessageLoggingInterceptor creates a StreamServerInterceptor which logs the full contents of incoming streaming requests.

func UnaryMessageLoggingInterceptor added in v0.13.0

func UnaryMessageLoggingInterceptor(log *zap.Logger) grpc.UnaryServerInterceptor

UnaryMessageLoggingInterceptor creates a UnaryServerInterceptor which logs the full contents of incoming unary requests.

Types

type Config

type Config struct {
	tlsopts.Config
	Address         string `user:"true" help:"public address to listen on" default:":7777"`
	PrivateAddress  string `user:"true" help:"private address to listen on" default:"127.0.0.1:7778"`
	DebugLogTraffic bool   `user:"true" help:"log all GRPC traffic to zap logger" default:"false"`
}

Config holds server specific configuration parameters

func (Config) Run

func (sc Config) Run(ctx context.Context, identity *identity.FullIdentity, interceptor grpc.UnaryServerInterceptor, services ...Service) (err error)

Run will run the given responsibilities with the configured identity.

type Server

type Server struct {
	// contains filtered or unexported fields
}

Server represents a bundle of services defined by a specific ID. Examples of servers are the satellite, the storagenode, and the uplink.

func New

func New(opts *tlsopts.Options, publicAddr, privateAddr string, interceptor grpc.UnaryServerInterceptor, services ...Service) (*Server, error)

New creates a Server out of an Identity, a net.Listener, a UnaryServerInterceptor, and a set of services.

func (*Server) Addr

func (p *Server) Addr() net.Addr

Addr returns the server's public listener address

func (*Server) Close

func (p *Server) Close() error

Close shuts down the server

func (*Server) GRPC

func (p *Server) GRPC() *grpc.Server

GRPC returns the server's gRPC handle for registration purposes

func (*Server) Identity

func (p *Server) Identity() *identity.FullIdentity

Identity returns the server's identity

func (*Server) PrivateAddr

func (p *Server) PrivateAddr() net.Addr

PrivateAddr returns the server's private listener address

func (*Server) PrivateGRPC

func (p *Server) PrivateGRPC() *grpc.Server

PrivateGRPC returns the server's gRPC handle for registration purposes

func (*Server) Run

func (p *Server) Run(ctx context.Context) (err error)

Run will run the server and all of its services

type Service

type Service interface {
	Run(ctx context.Context, server *Server) error
}

Service represents a specific gRPC method collection to be registered on a shared gRPC server. Metainfo, OverlayCache, PieceStore, Kademlia, etc. are all examples of services.

Jump to

Keyboard shortcuts

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