forked from golang/hotime
75 lines
1.2 KiB
Go
75 lines
1.2 KiB
Go
package hotime
|
|
|
|
|
|
type SessionIns struct {
|
|
ShortCache CacheIns
|
|
LongCache CacheIns
|
|
SessionId string
|
|
Map
|
|
Error
|
|
}
|
|
|
|
func (this *SessionIns)set(){
|
|
|
|
if this.ShortCache!=nil{
|
|
this.ShortCache.Cache(SESSION_TYPE+this.SessionId,this.Map)
|
|
}
|
|
if this.LongCache!=nil{
|
|
this.LongCache.Cache(SESSION_TYPE+this.SessionId,this.Map)
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
func(this *SessionIns)Session(key string,data ...interface{})*Obj{
|
|
|
|
if this.Map==nil{
|
|
this.get()
|
|
}
|
|
|
|
if len(data)!=0{
|
|
if data[0]==nil{
|
|
delete(this.Map,key)
|
|
this.set()
|
|
}else{
|
|
this.Map[key]=data[0]
|
|
this.set()
|
|
}
|
|
return &Obj{Data:nil}
|
|
}
|
|
|
|
return &Obj{Data:this.Map.Get(key)}
|
|
|
|
}
|
|
|
|
func (this *SessionIns)get(){
|
|
|
|
if this.ShortCache!=nil{
|
|
this.Map=this.ShortCache.Cache(SESSION_TYPE+this.SessionId).ToMap()
|
|
if this.Map!=nil{
|
|
return
|
|
}
|
|
}
|
|
|
|
if this.LongCache!=nil{
|
|
this.Map=this.LongCache.Cache(SESSION_TYPE+this.SessionId).ToMap()
|
|
if this.Map!=nil{
|
|
if this.ShortCache!=nil{
|
|
this.ShortCache.Cache(SESSION_TYPE+this.SessionId,this.Map)
|
|
}
|
|
return
|
|
}
|
|
}
|
|
this.Map=Map{}
|
|
this.ShortCache.Cache(SESSION_TYPE+this.SessionId,this.Map)
|
|
|
|
return
|
|
}
|
|
|
|
|
|
|
|
func (this *SessionIns)Init(short CacheIns, long CacheIns){
|
|
this.ShortCache=short
|
|
this.LongCache=long
|
|
} |