Select Git revision
manager_test.go
session.go 1.18 KiB
////////////////////////////////////////////////////////////////////////////////
// Copyright © 2020 Privategrity Corporation /
// /
// All rights reserved. /
////////////////////////////////////////////////////////////////////////////////
package storage
import "gitlab.com/elixxir/ekv"
type Session struct {
kv *VersionedKV
}
func Init(baseDir, password string) (*Session, error) {
fs, err := ekv.NewFilestore(baseDir, password)
var s *Session
if err == nil {
s = &Session{
kv: NewVersionedKV(fs),
}
}
return s, err
}
func (s *Session) Get(key string) (*VersionedObject, error) {
return s.kv.Get(key)
}
func (s *Session) Set(key string, object *VersionedObject) error {
return s.kv.Set(key, object)
}
// Obtain the LastMessageID from the Session
func (s *Session) GetLastMessageId() (string, error) {
v, err := s.kv.Get("LastMessageID")
return string(v.Data), err
}
// Set the LastMessageID in the Session
func (s *Session) SetLastMessageId(object *VersionedObject) error {
return s.kv.Set("LastMessageID", object)
}