|
|
|
@ -11,7 +11,7 @@ import ( |
|
|
|
) |
|
|
|
|
|
|
|
var ( |
|
|
|
mutex sync.Mutex |
|
|
|
mutex sync.RWMutex |
|
|
|
data = make(map[*http.Request]map[interface{}]interface{}) |
|
|
|
datat = make(map[*http.Request]int64) |
|
|
|
) |
|
|
|
@ -29,8 +29,8 @@ func Set(r *http.Request, key, val interface{}) { |
|
|
|
|
|
|
|
// Get returns a value stored for a given key in a given request.
|
|
|
|
func Get(r *http.Request, key interface{}) interface{} { |
|
|
|
mutex.Lock() |
|
|
|
defer mutex.Unlock() |
|
|
|
mutex.RLock() |
|
|
|
defer mutex.RUnlock() |
|
|
|
if data[r] != nil { |
|
|
|
return data[r][key] |
|
|
|
} |
|
|
|
@ -39,8 +39,8 @@ func Get(r *http.Request, key interface{}) interface{} { |
|
|
|
|
|
|
|
// GetOk returns stored value and presence state like multi-value return of map access.
|
|
|
|
func GetOk(r *http.Request, key interface{}) (interface{}, bool) { |
|
|
|
mutex.Lock() |
|
|
|
defer mutex.Unlock() |
|
|
|
mutex.RLock() |
|
|
|
defer mutex.RUnlock() |
|
|
|
if _, ok := data[r]; ok { |
|
|
|
value, ok := data[r][key] |
|
|
|
return value, ok |
|
|
|
@ -50,8 +50,8 @@ func GetOk(r *http.Request, key interface{}) (interface{}, bool) { |
|
|
|
|
|
|
|
// GetAll returns all stored values for the request as a map. Nil is returned for invalid requests.
|
|
|
|
func GetAll(r *http.Request) map[interface{}]interface{} { |
|
|
|
mutex.Lock() |
|
|
|
defer mutex.Unlock() |
|
|
|
mutex.RLock() |
|
|
|
defer mutex.RUnlock() |
|
|
|
|
|
|
|
if context, ok := data[r]; ok { |
|
|
|
return context |
|
|
|
@ -62,8 +62,8 @@ func GetAll(r *http.Request) map[interface{}]interface{} { |
|
|
|
// GetAllOk returns all stored values for the request as a map. It returns not
|
|
|
|
// ok if the request was never registered.
|
|
|
|
func GetAllOk(r *http.Request) (map[interface{}]interface{}, bool) { |
|
|
|
mutex.Lock() |
|
|
|
defer mutex.Unlock() |
|
|
|
mutex.RLock() |
|
|
|
defer mutex.RUnlock() |
|
|
|
|
|
|
|
context, ok := data[r] |
|
|
|
return context, ok |
|
|
|
|