visedriver/storage/storage.go

51 lines
991 B
Go
Raw Normal View History

2024-09-12 04:30:23 +02:00
package storage
import (
2025-01-19 10:04:37 +01:00
"context"
"git.defalsify.org/vise.git/db"
"git.defalsify.org/vise.git/persist"
)
const (
DATATYPE_EXTEND = 128
)
type Storage struct {
Persister *persist.Persister
UserdataDb db.Db
}
type StorageProvider interface {
Get(sessionId string) (*Storage, error)
Put(sessionId string, storage *Storage) error
2025-01-19 10:04:37 +01:00
Close(ctx context.Context) error
}
type SimpleStorageProvider struct {
*Storage
}
func NewSimpleStorageProvider(stateStore db.Db, userdataStore db.Db) StorageProvider {
pe := persist.NewPersister(stateStore)
pe = pe.WithFlush()
return &SimpleStorageProvider{
Storage: &Storage{
Persister: pe,
UserdataDb: userdataStore,
},
}
}
func (p *SimpleStorageProvider) Get(sessionId string) (*Storage, error) {
return p.Storage, nil
}
func (p *SimpleStorageProvider) Put(sessionId string, storage *Storage) error {
return nil
}
2025-01-19 10:04:37 +01:00
func (p *SimpleStorageProvider) Close(ctx context.Context) error {
return p.Storage.UserdataDb.Close(ctx)
}