/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */package thriftimport ()// NewThriftHandlerFunc is a function that create a ready to use Apache Thrift Handler functionfunc ( TProcessor, , TProtocolFactory) func( http.ResponseWriter, *http.Request) {returngz(func( http.ResponseWriter, *http.Request) { .Header().Add("Content-Type", "application/x-thrift") := NewStreamTransport(.Body, ) .Process(.Context(), .GetProtocol(), .GetProtocol()) })}// gz transparently compresses the HTTP response if the client supports it.func gz( http.HandlerFunc) http.HandlerFunc { := newPool(func() *gzip.Writer {returngzip.NewWriter(nil) }, nil)returnfunc( http.ResponseWriter, *http.Request) {if !strings.Contains(.Header.Get("Accept-Encoding"), "gzip") { (, )return } .Header().Set("Content-Encoding", "gzip") := .get() .Reset()deferfunc() { .Close() .put(&) }() := gzipResponseWriter{Writer: , ResponseWriter: } (, ) }}type gzipResponseWriter struct {io.Writerhttp.ResponseWriter}func ( gzipResponseWriter) ( []byte) (int, error) {return .Writer.Write()}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.