This repository has been archived on 2019-07-12. You can view files and clone it, but cannot push or open issues or pull requests.
httpsession/session.go
商讯在线 a7f90702cf update
Signed-off-by: 商讯在线 <swhbox@foxmail.com>
2014-08-05 23:12:49 +08:00

49 lines
1002 B
Go

package httpsession
import (
"net/http"
"time"
)
type Session struct {
id Id
maxAge time.Duration
manager *Manager
}
func (session *Session) Id() Id {
return session.id
}
func (session *Session) SetId(id Id) {
session.id = id
}
func (session *Session) Get(key string) interface{} {
return session.manager.store.Get(session.id, key)
}
func (session *Session) Set(key string, value interface{}) {
session.manager.store.Set(session.id, key, value)
}
func (session *Session) Del(key string) bool {
return session.manager.store.Del(session.id, key)
}
func (session *Session) Invalidate(rw http.ResponseWriter) {
session.manager.Invalidate(rw, session)
}
func (session *Session) IsValid() bool {
return session.manager.generator.IsValid(session.id)
}
func (session *Session) SetMaxAge(maxAge time.Duration) {
session.maxAge = maxAge
}
func NewSession(id Id, maxAge time.Duration, manager *Manager) *Session {
return &Session{id: id, maxAge: manager.maxAge, manager: manager}
}