X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/29c5c69ef3c9ceadbea3085f2268bb5ed8496c04..70111d82653ca633d2397c74eb994a8a9d718e80:/sdk/go/httpserver/responsewriter.go diff --git a/sdk/go/httpserver/responsewriter.go b/sdk/go/httpserver/responsewriter.go index 1af4dc8756..3941c13c22 100644 --- a/sdk/go/httpserver/responsewriter.go +++ b/sdk/go/httpserver/responsewriter.go @@ -1,43 +1,53 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + package httpserver import ( "net/http" ) -// ResponseWriter wraps http.ResponseWriter and exposes the status +type ResponseWriter interface { + http.ResponseWriter + WroteStatus() int + WroteBodyBytes() int +} + +// responseWriter wraps http.ResponseWriter and exposes the status // sent, the number of bytes sent to the client, and the last write // error. -type ResponseWriter struct { +type responseWriter struct { http.ResponseWriter - wroteStatus *int // Last status given to WriteHeader() - wroteBodyBytes *int // Bytes successfully written - err *error // Last error returned from Write() + wroteStatus int // Last status given to WriteHeader() + wroteBodyBytes int // Bytes successfully written + err error // Last error returned from Write() } func WrapResponseWriter(orig http.ResponseWriter) ResponseWriter { - return ResponseWriter{orig, new(int), new(int), new(error)} + return &responseWriter{ResponseWriter: orig} } -func (w ResponseWriter) WriteHeader(s int) { - *w.wroteStatus = s +func (w responseWriter) WriteHeader(s int) { + w.wroteStatus = s w.ResponseWriter.WriteHeader(s) } -func (w ResponseWriter) Write(data []byte) (n int, err error) { +func (w responseWriter) Write(data []byte) (n int, err error) { n, err = w.ResponseWriter.Write(data) - *w.wroteBodyBytes += n - *w.err = err + w.wroteBodyBytes += n + w.err = err return } -func (w ResponseWriter) WroteStatus() int { - return *w.wroteStatus +func (w responseWriter) WroteStatus() int { + return w.wroteStatus } -func (w ResponseWriter) WroteBodyBytes() int { - return *w.wroteBodyBytes +func (w responseWriter) WroteBodyBytes() int { + return w.wroteBodyBytes } -func (w ResponseWriter) Err() error { - return *w.err +func (w responseWriter) Err() error { + return w.err }