From 17f211c393772f30922bac595592e3fe60c2ef25 Mon Sep 17 00:00:00 2001 From: Jesse Hallam Date: Fri, 13 Jul 2018 10:29:50 -0400 Subject: MM-11292: clean up plugins GoDoc (#9109) * clean up plugins GoDoc: - eliminate plugin.NewBlankContext() as unnecessary - export ValidIdRegex as a string vs. the less readable var - add/update various documentation strings - hide everything by default, except where used by client plugins or the mattermost-server. The exception to this rule are the `*(Args|Returns)` structs which must be public for go-plugin, but are now prefixed with `Z_` with a warning not to use. - include a top-level example to get plugin authors started This is not a breaking change for existing plugins compiled against plugins-v2. * remove commented out ServeHTTPResponseWriter * update examples to match developer docs * add missing plugin/doc.go license header --- plugin/http.go | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) (limited to 'plugin/http.go') diff --git a/plugin/http.go b/plugin/http.go index 5faf8f08a..7d1650369 100644 --- a/plugin/http.go +++ b/plugin/http.go @@ -9,26 +9,26 @@ import ( "net/rpc" ) -type HTTPResponseWriterRPCServer struct { +type httpResponseWriterRPCServer struct { w http.ResponseWriter } -func (w *HTTPResponseWriterRPCServer) Header(args struct{}, reply *http.Header) error { +func (w *httpResponseWriterRPCServer) Header(args struct{}, reply *http.Header) error { *reply = w.w.Header() return nil } -func (w *HTTPResponseWriterRPCServer) Write(args []byte, reply *struct{}) error { +func (w *httpResponseWriterRPCServer) Write(args []byte, reply *struct{}) error { _, err := w.w.Write(args) return err } -func (w *HTTPResponseWriterRPCServer) WriteHeader(args int, reply *struct{}) error { +func (w *httpResponseWriterRPCServer) WriteHeader(args int, reply *struct{}) error { w.w.WriteHeader(args) return nil } -func (w *HTTPResponseWriterRPCServer) SyncHeader(args http.Header, reply *struct{}) error { +func (w *httpResponseWriterRPCServer) SyncHeader(args http.Header, reply *struct{}) error { dest := w.w.Header() for k := range dest { if _, ok := args[k]; !ok { @@ -41,29 +41,21 @@ func (w *HTTPResponseWriterRPCServer) SyncHeader(args http.Header, reply *struct return nil } -func ServeHTTPResponseWriter(w http.ResponseWriter, conn io.ReadWriteCloser) { - server := rpc.NewServer() - server.Register(&HTTPResponseWriterRPCServer{ - w: w, - }) - server.ServeConn(conn) -} - -type HTTPResponseWriterRPCClient struct { +type httpResponseWriterRPCClient struct { client *rpc.Client header http.Header } -var _ http.ResponseWriter = (*HTTPResponseWriterRPCClient)(nil) +var _ http.ResponseWriter = (*httpResponseWriterRPCClient)(nil) -func (w *HTTPResponseWriterRPCClient) Header() http.Header { +func (w *httpResponseWriterRPCClient) Header() http.Header { if w.header == nil { w.client.Call("Plugin.Header", struct{}{}, &w.header) } return w.header } -func (w *HTTPResponseWriterRPCClient) Write(b []byte) (int, error) { +func (w *httpResponseWriterRPCClient) Write(b []byte) (int, error) { if err := w.client.Call("Plugin.SyncHeader", w.header, nil); err != nil { return 0, err } @@ -73,19 +65,19 @@ func (w *HTTPResponseWriterRPCClient) Write(b []byte) (int, error) { return len(b), nil } -func (w *HTTPResponseWriterRPCClient) WriteHeader(statusCode int) { +func (w *httpResponseWriterRPCClient) WriteHeader(statusCode int) { if err := w.client.Call("Plugin.SyncHeader", w.header, nil); err != nil { return } w.client.Call("Plugin.WriteHeader", statusCode, nil) } -func (h *HTTPResponseWriterRPCClient) Close() error { +func (h *httpResponseWriterRPCClient) Close() error { return h.client.Close() } -func ConnectHTTPResponseWriter(conn io.ReadWriteCloser) *HTTPResponseWriterRPCClient { - return &HTTPResponseWriterRPCClient{ +func connectHTTPResponseWriter(conn io.ReadWriteCloser) *httpResponseWriterRPCClient { + return &httpResponseWriterRPCClient{ client: rpc.NewClient(conn), } } -- cgit v1.2.3-1-g7c22