This commit is contained in:
+75
@@ -0,0 +1,75 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user