export Server to allow to cast
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
		
							
								
								
									
										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