Documentation ¶
Index ¶
- Constants
- Variables
- type Transport
- func (t *Transport) Call(cmd rpc.CallCmd)
- func (t *Transport) Close() error
- func (t *Transport) Closed() <-chan struct{}
- func (t *Transport) ErrorChan() <-chan error
- func (t *Transport) Interrupt(cmd rpc.InterruptCmd)
- func (t *Transport) ProgressChan() <-chan rpc.RequestID
- func (t *Transport) RegisterMethod(cmd rpc.RegisterCmd)
- func (t *Transport) ReplyChan() <-chan rpc.RemoteCallReply
- func (t *Transport) RequestChan() <-chan rpc.RemoteRequest
- func (t *Transport) StreamFrameChan() <-chan rpc.StreamFrame
- func (t *Transport) UnregisterMethod(cmd rpc.UnregisterCmd)
- func (t *Transport) Wait() error
- type TransportFactory
- func (factory *TransportFactory) IsFullyConfigured() error
- func (factory *TransportFactory) MustBeFullyConfigured() *TransportFactory
- func (factory *TransportFactory) MustReadConfigFromEnv(prefix string) *TransportFactory
- func (factory *TransportFactory) NewTransport(identity string) (rpc.Transport, error)
- func (factory *TransportFactory) ReadConfigFromEnv(prefix string) error
Constants ¶
View Source
const ( MessageTypeRegister byte = iota MessageTypeUnregister MessageTypeRequest MessageTypeInterrupt MessageTypeProgress MessageTypeStreamFrame MessageTypeReply MessageTypePing MessageTypePong MessageTypeKthxbye )
View Source
const CommandChannelBufferSize = 1000
Command receive channel must be buffered to break a circle or unbuffered channels that would deadlock. Since all the loops are using select, and thus randomly picking messages, the channel must be large enough to fight the bad luck of the event loop sending to the channel subsequently without receiving from other channels.
View Source
const Header = "CDR#RPC@01"
Variables ¶
View Source
var ( ErrDuplicateRequest = errors.New("duplicate request ID") ErrTerminated = &services.ErrTerminated{"ZeroMQ 3.x RPC transport"} )
View Source
var ErrResolved = errors.New("request already resolved")
Functions ¶
This section is empty.
Types ¶
type Transport ¶
type Transport struct {
// contains filtered or unexported fields
}
func (*Transport) Interrupt ¶
func (t *Transport) Interrupt(cmd rpc.InterruptCmd)
func (*Transport) ProgressChan ¶
func (*Transport) RegisterMethod ¶
func (t *Transport) RegisterMethod(cmd rpc.RegisterCmd)
func (*Transport) ReplyChan ¶
func (t *Transport) ReplyChan() <-chan rpc.RemoteCallReply
func (*Transport) RequestChan ¶
func (t *Transport) RequestChan() <-chan rpc.RemoteRequest
func (*Transport) StreamFrameChan ¶
func (t *Transport) StreamFrameChan() <-chan rpc.StreamFrame
func (*Transport) UnregisterMethod ¶
func (t *Transport) UnregisterMethod(cmd rpc.UnregisterCmd)
type TransportFactory ¶
func NewTransportFactory ¶
func NewTransportFactory() *TransportFactory
func (*TransportFactory) IsFullyConfigured ¶
func (factory *TransportFactory) IsFullyConfigured() error
func (*TransportFactory) MustBeFullyConfigured ¶
func (factory *TransportFactory) MustBeFullyConfigured() *TransportFactory
func (*TransportFactory) MustReadConfigFromEnv ¶
func (factory *TransportFactory) MustReadConfigFromEnv(prefix string) *TransportFactory
func (*TransportFactory) NewTransport ¶
func (factory *TransportFactory) NewTransport(identity string) (rpc.Transport, error)
func (*TransportFactory) ReadConfigFromEnv ¶
func (factory *TransportFactory) ReadConfigFromEnv(prefix string) error
Click to show internal directories.
Click to hide internal directories.