/
githubmirror
/
xorm
Обзор
Документация
Войти
/
githubmirror
/
xorm
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
caches/memory_store.go
49 строк
1 KB
Lunny Xiao
Add leveldb cache store (#1545)
25 фев 2020, 15:22
25 фев 2020, 15:22
049a28c
Код
Авторство
О чём код?
// Copyright 2015 The Xorm Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package caches import ( "sync" ) var _ CacheStore = NewMemoryStore() // MemoryStore represents in-memory store type MemoryStore struct { store map[interface{}]interface{} mutex sync.RWMutex } // NewMemoryStore creates a new store in memory func NewMemoryStore() *MemoryStore { return &MemoryStore{store: make(map[interface{}]interface{})} } // Put puts object into store func (s *MemoryStore) Put(key string, value interface{}) error { s.mutex.Lock() defer s.mutex.Unlock() s.store[key] = value return nil } // Get gets object from store func (s *MemoryStore) Get(key string) (interface{}, error) { s.mutex.RLock() defer s.mutex.RUnlock() if v, ok := s.store[key]; ok { return v, nil } return nil, ErrNotExist } // Del deletes object func (s *MemoryStore) Del(key string) error { s.mutex.Lock() defer s.mutex.Unlock() delete(s.store, key) return nil }