diff --git a/storage/session.go b/storage/session.go index 608068472b49517922d6a84a8a57d90f9dc0054f..6c16c6e2fe6ad395607d65bf4737a57e9fe8e604 100644 --- a/storage/session.go +++ b/storage/session.go @@ -10,6 +10,7 @@ package storage import ( + "gitlab.com/elixxir/client/storage/rounds" "sync" "testing" @@ -62,6 +63,7 @@ type Session struct { garbledMessages *utility.MeteredCmixMessageBuffer reception *reception.Store clientVersion *clientVersion.Store + uncheckedRounds *rounds.UncheckedRoundStore } // Initialize a new Session object @@ -141,6 +143,10 @@ func New(baseDir, password string, u userInterface.User, currentVersion version. return nil, errors.WithMessage(err, "Failed to create client version store.") } + s.uncheckedRounds, err = rounds.NewUncheckedStore(s.kv) + if err != nil { + return nil, errors.WithMessage(err, "Failed to create unchecked round store") + } return s, nil } @@ -212,6 +218,11 @@ func Load(baseDir, password string, currentVersion version.Version, s.reception = reception.LoadStore(s.kv) + s.uncheckedRounds, err = rounds.LoadUncheckedStore(s.kv) + if err != nil { + return nil, errors.WithMessage(err, "Failed to load unchecked round store") + } + return s, nil } @@ -282,6 +293,12 @@ func (s *Session) Partition() *partition.Store { return s.partition } +func (s *Session) UncheckedRounds() *rounds.UncheckedRoundStore { + s.mux.RLock() + defer s.mux.RUnlock() + return s.uncheckedRounds +} + // Get an object from the session func (s *Session) Get(key string) (*versioned.Object, error) { return s.kv.Get(key, currentSessionVersion)