export Server to allow to cast #159
							
								
								
									
										34
									
								
								http.go
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								http.go
									
									
									
									
									
								
							@@ -23,9 +23,9 @@ import (
 | 
				
			|||||||
	"golang.org/x/net/netutil"
 | 
						"golang.org/x/net/netutil"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var _ server.Server = &httpServer{}
 | 
					var _ server.Server = (*Server)(nil)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type httpServer struct {
 | 
					type Server struct {
 | 
				
			||||||
	hd           server.Handler
 | 
						hd           server.Handler
 | 
				
			||||||
	rsvc         *register.Service
 | 
						rsvc         *register.Service
 | 
				
			||||||
	handlers     map[string]server.Handler
 | 
						handlers     map[string]server.Handler
 | 
				
			||||||
@@ -40,7 +40,7 @@ type httpServer struct {
 | 
				
			|||||||
	init       bool
 | 
						init       bool
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) newCodec(ct string) (codec.Codec, error) {
 | 
					func (h *Server) newCodec(ct string) (codec.Codec, error) {
 | 
				
			||||||
	if idx := strings.IndexRune(ct, ';'); idx >= 0 {
 | 
						if idx := strings.IndexRune(ct, ';'); idx >= 0 {
 | 
				
			||||||
		ct = ct[:idx]
 | 
							ct = ct[:idx]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -53,14 +53,14 @@ func (h *httpServer) newCodec(ct string) (codec.Codec, error) {
 | 
				
			|||||||
	return nil, codec.ErrUnknownContentType
 | 
						return nil, codec.ErrUnknownContentType
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Options() server.Options {
 | 
					func (h *Server) Options() server.Options {
 | 
				
			||||||
	h.Lock()
 | 
						h.Lock()
 | 
				
			||||||
	opts := h.opts
 | 
						opts := h.opts
 | 
				
			||||||
	h.Unlock()
 | 
						h.Unlock()
 | 
				
			||||||
	return opts
 | 
						return opts
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Init(opts ...server.Option) error {
 | 
					func (h *Server) Init(opts ...server.Option) error {
 | 
				
			||||||
	if len(opts) == 0 && h.init {
 | 
						if len(opts) == 0 && h.init {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -130,7 +130,7 @@ func (h *httpServer) Init(opts ...server.Option) error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Handle(handler server.Handler) error {
 | 
					func (h *Server) Handle(handler server.Handler) error {
 | 
				
			||||||
	// passed unknown handler
 | 
						// passed unknown handler
 | 
				
			||||||
	hdlr, ok := handler.(*httpHandler)
 | 
						hdlr, ok := handler.(*httpHandler)
 | 
				
			||||||
	if !ok {
 | 
						if !ok {
 | 
				
			||||||
@@ -159,7 +159,7 @@ func (h *httpServer) Handle(handler server.Handler) error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) NewHandler(handler interface{}, opts ...server.HandlerOption) server.Handler {
 | 
					func (h *Server) NewHandler(handler interface{}, opts ...server.HandlerOption) server.Handler {
 | 
				
			||||||
	options := server.NewHandlerOptions(opts...)
 | 
						options := server.NewHandlerOptions(opts...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	eps := make([]*register.Endpoint, 0, len(options.Metadata))
 | 
						eps := make([]*register.Endpoint, 0, len(options.Metadata))
 | 
				
			||||||
@@ -288,11 +288,11 @@ func (h *httpServer) NewHandler(handler interface{}, opts ...server.HandlerOptio
 | 
				
			|||||||
	return hdlr
 | 
						return hdlr
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) NewSubscriber(topic string, handler interface{}, opts ...server.SubscriberOption) server.Subscriber {
 | 
					func (h *Server) NewSubscriber(topic string, handler interface{}, opts ...server.SubscriberOption) server.Subscriber {
 | 
				
			||||||
	return newSubscriber(topic, handler, opts...)
 | 
						return newSubscriber(topic, handler, opts...)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Subscribe(sb server.Subscriber) error {
 | 
					func (h *Server) Subscribe(sb server.Subscriber) error {
 | 
				
			||||||
	sub, ok := sb.(*httpSubscriber)
 | 
						sub, ok := sb.(*httpSubscriber)
 | 
				
			||||||
	if !ok {
 | 
						if !ok {
 | 
				
			||||||
		return fmt.Errorf("invalid subscriber: expected *httpSubscriber")
 | 
							return fmt.Errorf("invalid subscriber: expected *httpSubscriber")
 | 
				
			||||||
@@ -317,7 +317,7 @@ func (h *httpServer) Subscribe(sb server.Subscriber) error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Register() error {
 | 
					func (h *Server) Register() error {
 | 
				
			||||||
	var eps []*register.Endpoint
 | 
						var eps []*register.Endpoint
 | 
				
			||||||
	h.RLock()
 | 
						h.RLock()
 | 
				
			||||||
	for _, hdlr := range h.handlers {
 | 
						for _, hdlr := range h.handlers {
 | 
				
			||||||
@@ -408,7 +408,7 @@ func (h *httpServer) Register() error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Deregister() error {
 | 
					func (h *Server) Deregister() error {
 | 
				
			||||||
	h.RLock()
 | 
						h.RLock()
 | 
				
			||||||
	config := h.opts
 | 
						config := h.opts
 | 
				
			||||||
	h.RUnlock()
 | 
						h.RUnlock()
 | 
				
			||||||
@@ -456,7 +456,7 @@ func (h *httpServer) Deregister() error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Start() error {
 | 
					func (h *Server) Start() error {
 | 
				
			||||||
	h.RLock()
 | 
						h.RLock()
 | 
				
			||||||
	config := h.opts
 | 
						config := h.opts
 | 
				
			||||||
	h.RUnlock()
 | 
						h.RUnlock()
 | 
				
			||||||
@@ -636,27 +636,27 @@ func (h *httpServer) Start() error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Stop() error {
 | 
					func (h *Server) Stop() error {
 | 
				
			||||||
	ch := make(chan error)
 | 
						ch := make(chan error)
 | 
				
			||||||
	h.exit <- ch
 | 
						h.exit <- ch
 | 
				
			||||||
	return <-ch
 | 
						return <-ch
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) String() string {
 | 
					func (h *Server) String() string {
 | 
				
			||||||
	return "http"
 | 
						return "http"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (h *httpServer) Name() string {
 | 
					func (h *Server) Name() string {
 | 
				
			||||||
	return h.opts.Name
 | 
						return h.opts.Name
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewServer(opts ...server.Option) *httpServer {
 | 
					func NewServer(opts ...server.Option) *Server {
 | 
				
			||||||
	options := server.NewOptions(opts...)
 | 
						options := server.NewOptions(opts...)
 | 
				
			||||||
	eh := DefaultErrorHandler
 | 
						eh := DefaultErrorHandler
 | 
				
			||||||
	if v, ok := options.Context.Value(errorHandlerKey{}).(errorHandler); ok && v != nil {
 | 
						if v, ok := options.Context.Value(errorHandlerKey{}).(errorHandler); ok && v != nil {
 | 
				
			||||||
		eh = v
 | 
							eh = v
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return &httpServer{
 | 
						return &Server{
 | 
				
			||||||
		opts:         options,
 | 
							opts:         options,
 | 
				
			||||||
		exit:         make(chan chan error),
 | 
							exit:         make(chan chan error),
 | 
				
			||||||
		subscribers:  make(map[*httpSubscriber][]broker.Subscriber),
 | 
							subscribers:  make(map[*httpSubscriber][]broker.Subscriber),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user