mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	c-go: Add dependencies for http-cache
This commit is contained in:
		
							
								
								
									
										28
									
								
								vendor/github.com/gregjones/httpcache/diskcache/BUILD
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/gregjones/httpcache/diskcache/BUILD
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
package(default_visibility = ["//visibility:public"])
 | 
			
		||||
 | 
			
		||||
licenses(["notice"])
 | 
			
		||||
 | 
			
		||||
load(
 | 
			
		||||
    "@io_bazel_rules_go//go:def.bzl",
 | 
			
		||||
    "go_library",
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
go_library(
 | 
			
		||||
    name = "go_default_library",
 | 
			
		||||
    srcs = ["diskcache.go"],
 | 
			
		||||
    tags = ["automanaged"],
 | 
			
		||||
    deps = ["//vendor/github.com/peterbourgon/diskv:go_default_library"],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
filegroup(
 | 
			
		||||
    name = "package-srcs",
 | 
			
		||||
    srcs = glob(["**"]),
 | 
			
		||||
    tags = ["automanaged"],
 | 
			
		||||
    visibility = ["//visibility:private"],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
filegroup(
 | 
			
		||||
    name = "all-srcs",
 | 
			
		||||
    srcs = [":package-srcs"],
 | 
			
		||||
    tags = ["automanaged"],
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										61
									
								
								vendor/github.com/gregjones/httpcache/diskcache/diskcache.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								vendor/github.com/gregjones/httpcache/diskcache/diskcache.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
// Package diskcache provides an implementation of httpcache.Cache that uses the diskv package
 | 
			
		||||
// to supplement an in-memory map with persistent storage
 | 
			
		||||
//
 | 
			
		||||
package diskcache
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"crypto/md5"
 | 
			
		||||
	"encoding/hex"
 | 
			
		||||
	"github.com/peterbourgon/diskv"
 | 
			
		||||
	"io"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Cache is an implementation of httpcache.Cache that supplements the in-memory map with persistent storage
 | 
			
		||||
type Cache struct {
 | 
			
		||||
	d *diskv.Diskv
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Get returns the response corresponding to key if present
 | 
			
		||||
func (c *Cache) Get(key string) (resp []byte, ok bool) {
 | 
			
		||||
	key = keyToFilename(key)
 | 
			
		||||
	resp, err := c.d.Read(key)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return []byte{}, false
 | 
			
		||||
	}
 | 
			
		||||
	return resp, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Set saves a response to the cache as key
 | 
			
		||||
func (c *Cache) Set(key string, resp []byte) {
 | 
			
		||||
	key = keyToFilename(key)
 | 
			
		||||
	c.d.WriteStream(key, bytes.NewReader(resp), true)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Delete removes the response with key from the cache
 | 
			
		||||
func (c *Cache) Delete(key string) {
 | 
			
		||||
	key = keyToFilename(key)
 | 
			
		||||
	c.d.Erase(key)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func keyToFilename(key string) string {
 | 
			
		||||
	h := md5.New()
 | 
			
		||||
	io.WriteString(h, key)
 | 
			
		||||
	return hex.EncodeToString(h.Sum(nil))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// New returns a new Cache that will store files in basePath
 | 
			
		||||
func New(basePath string) *Cache {
 | 
			
		||||
	return &Cache{
 | 
			
		||||
		d: diskv.New(diskv.Options{
 | 
			
		||||
			BasePath:     basePath,
 | 
			
		||||
			CacheSizeMax: 100 * 1024 * 1024, // 100MB
 | 
			
		||||
		}),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewWithDiskv returns a new Cache using the provided Diskv as underlying
 | 
			
		||||
// storage.
 | 
			
		||||
func NewWithDiskv(d *diskv.Diskv) *Cache {
 | 
			
		||||
	return &Cache{d}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user