mimecache.go 506 B

1234567891011121314151617181920212223242526272829303132333435
  1. package webdavd
  2. import "sync"
  3. type mimeCache struct {
  4. maxSize int
  5. sync.RWMutex
  6. mimeTypes map[string]string
  7. }
  8. var mimeTypeCache mimeCache
  9. func (c *mimeCache) addMimeToCache(key, value string) {
  10. c.Lock()
  11. defer c.Unlock()
  12. if key == "" || value == "" {
  13. return
  14. }
  15. if len(c.mimeTypes) >= c.maxSize {
  16. return
  17. }
  18. c.mimeTypes[key] = value
  19. }
  20. func (c *mimeCache) getMimeFromCache(key string) string {
  21. c.RLock()
  22. defer c.RUnlock()
  23. if val, ok := c.mimeTypes[key]; ok {
  24. return val
  25. }
  26. return ""
  27. }