diff --git a/files/file.go b/files/file.go index fe18286..9435016 100644 --- a/files/file.go +++ b/files/file.go @@ -1,5 +1,45 @@ -// Package file implements sessions saved into files which contains gob data -package file +// Package files implements sessions saved into filesystem persistently encoded using gob +package files + +import ( + "fmt" + "sync" +) + +const ( + sessDir string = "go-session" + sessExt string = "gsd" +) + +func init() { + +} + +// ProviderFiles implement filesystem session provider +type ProviderFiles struct { + sessPath string + lock sync.Mutex +} + +func (pder *ProviderFiles) ckdir() string { + return pder.sessPath + sessDir +} + +// SetParams for files session provider set base path in filesystem for save sessions +func (pder *ProviderFiles) SetParams(p any) (err error) { + if p != nil { + if s, ok := p.(string); ok { + pder.sessPath = s + return + } + return fmt.Errorf("Parameter for files session provider is not string") + } + return fmt.Errorf("Parameter for files session provider must not be nil") +} + +// Init create session file if not exists and retturn *Session +func (pder *ProviderFiles) Init(sid string) (err error) { + //sessdir := sid + sessExt + return +} -// SessionFile implement manager.Session interface -type SessionFile struct{}