...

Source file src/github.com/emicklei/go-restful/v3/compressors.go

Documentation: github.com/emicklei/go-restful/v3

     1  package restful
     2  
     3  // Copyright 2015 Ernest Micklei. All rights reserved.
     4  // Use of this source code is governed by a license
     5  // that can be found in the LICENSE file.
     6  
     7  import (
     8  	"compress/gzip"
     9  	"compress/zlib"
    10  )
    11  
    12  // CompressorProvider describes a component that can provider compressors for the std methods.
    13  type CompressorProvider interface {
    14  	// Returns a *gzip.Writer which needs to be released later.
    15  	// Before using it, call Reset().
    16  	AcquireGzipWriter() *gzip.Writer
    17  
    18  	// Releases an acquired *gzip.Writer.
    19  	ReleaseGzipWriter(w *gzip.Writer)
    20  
    21  	// Returns a *gzip.Reader which needs to be released later.
    22  	AcquireGzipReader() *gzip.Reader
    23  
    24  	// Releases an acquired *gzip.Reader.
    25  	ReleaseGzipReader(w *gzip.Reader)
    26  
    27  	// Returns a *zlib.Writer which needs to be released later.
    28  	// Before using it, call Reset().
    29  	AcquireZlibWriter() *zlib.Writer
    30  
    31  	// Releases an acquired *zlib.Writer.
    32  	ReleaseZlibWriter(w *zlib.Writer)
    33  }
    34  
    35  // DefaultCompressorProvider is the actual provider of compressors (zlib or gzip).
    36  var currentCompressorProvider CompressorProvider
    37  
    38  func init() {
    39  	currentCompressorProvider = NewSyncPoolCompessors()
    40  }
    41  
    42  // CurrentCompressorProvider returns the current CompressorProvider.
    43  // It is initialized using a SyncPoolCompessors.
    44  func CurrentCompressorProvider() CompressorProvider {
    45  	return currentCompressorProvider
    46  }
    47  
    48  // SetCompressorProvider sets the actual provider of compressors (zlib or gzip).
    49  func SetCompressorProvider(p CompressorProvider) {
    50  	if p == nil {
    51  		panic("cannot set compressor provider to nil")
    52  	}
    53  	currentCompressorProvider = p
    54  }
    55  

View as plain text