type CompletionNotification struct {
// contains filtered or unexported fields
}
func (p *CompletionNotification) Error() error
func (p *CompletionNotification) Object() interface{}
type Connection struct {
// contains filtered or unexported fields
}
func (c *Connection) Close()
func (c *Connection) GRPCConnection() (*grpc.ClientConn, error)
type ConnectionManager struct {
// contains filtered or unexported fields
}
func NewConnectionManager(servicename string) *ConnectionManager
func (cm *ConnectionManager) AllowMultipleInstancesPerIP()
func (cm *ConnectionManager) GetCurrentTargets(ctx context.Context) []*ConnectionTarget
func (cm *ConnectionManager) ServiceName() string
type ConnectionTarget struct {
// contains filtered or unexported fields
}
func (ct *ConnectionTarget) Address() string
func (ct *ConnectionTarget) Close()
func (ct *ConnectionTarget) Connection() (*Connection, error)
type FanoutRouter struct {
// contains filtered or unexported fields
}
func NewFanoutRouter(cm *ConnectionManager, processor func(*ProcessRequest) error, consumer func(*CompletionNotification)) *FanoutRouter
func (fr *FanoutRouter) Stop()
this can take a long time, because we wait for all pending requests to finish before returning
func (fr *FanoutRouter) SubmitWork(object interface{})
type ProcessRequest struct {
// contains filtered or unexported fields
}
func (p *ProcessRequest) GRPCConnection() *grpc.ClientConn
func (p *ProcessRequest) Object() interface{}