iris/cache/entry/entry.go
2023-09-26 21:14:57 +03:00

54 lines
1.4 KiB
Go

package entry
import (
"time"
"github.com/kataras/iris/v12/core/memstore"
)
// Entry is the cache entry
// contains the expiration datetime and the response
type Entry struct {
// ExpiresAt is the time which this cache will not be available
lifeTime *memstore.LifeTime
// when `Reset` this value is reseting to time.Now(),
// it's used to send the "Last-Modified" header,
// some clients may need it.
LastModified time.Time
// Response the response should be served to the client
response *Response
// but we need the key to invalidate manually...xmm
// let's see for that later, maybe we make a slice instead
// of store map
}
// reset called each time a new entry is acquired from the pool.
func (e *Entry) reset(lt *memstore.LifeTime, r *Response) {
e.response = r
e.LastModified = lt.Begun
}
// Response returns the cached response as it's.
func (e *Entry) Response() *Response {
return e.response
}
// // Response gets the cache response contents
// // if it's valid returns them with a true value
// // otherwise returns nil, false
// func (e *Entry) Response() (*Response, bool) {
// if !e.isValid() {
// // it has been expired
// return nil, false
// }
// return e.response, true
// }
// // isValid reports whether this entry's response is still valid or expired.
// // If the entry exists in the store then it should be valid anyways.
// func (e *Entry) isValid() bool {
// return !e.lifeTime.HasExpired()
// }