forked from golang/hotime
57 lines
956 B
Go
57 lines
956 B
Go
|
package hotime
|
||
|
|
||
|
import (
|
||
|
. "code.hoteas.com/golang/hotime/cache"
|
||
|
. "code.hoteas.com/golang/hotime/common"
|
||
|
)
|
||
|
|
||
|
//session对象
|
||
|
type SessionIns struct {
|
||
|
*HoTimeCache
|
||
|
SessionId string
|
||
|
Map
|
||
|
ContextBase
|
||
|
}
|
||
|
|
||
|
func (that *SessionIns) set() {
|
||
|
that.HoTimeCache.Session(HEAD_SESSION_ADD+that.SessionId, that.Map)
|
||
|
}
|
||
|
|
||
|
func (that *SessionIns) Session(key string, data ...interface{}) *Obj {
|
||
|
|
||
|
if that.Map == nil {
|
||
|
that.get()
|
||
|
}
|
||
|
|
||
|
if len(data) != 0 {
|
||
|
if data[0] == nil {
|
||
|
delete(that.Map, key)
|
||
|
that.set()
|
||
|
} else {
|
||
|
that.Map[key] = data[0]
|
||
|
that.set()
|
||
|
}
|
||
|
return &Obj{Data: nil}
|
||
|
}
|
||
|
|
||
|
return &Obj{Data: that.Map.Get(key)}
|
||
|
|
||
|
}
|
||
|
|
||
|
func (that *SessionIns) get() {
|
||
|
|
||
|
that.Map = that.HoTimeCache.Session(HEAD_SESSION_ADD + that.SessionId).ToMap()
|
||
|
if that.Map != nil {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
that.Map = Map{}
|
||
|
that.HoTimeCache.Session(HEAD_SESSION_ADD+that.SessionId, that.Map)
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func (that *SessionIns) Init(cache *HoTimeCache) {
|
||
|
that.HoTimeCache = cache
|
||
|
}
|