From 6c6535120ca43a57d31b60ae386c34339b44fa10 Mon Sep 17 00:00:00 2001 From: Marc Pervaz Boocha Date: Mon, 17 Feb 2025 18:39:54 +0530 Subject: Bootstraped code for housekeeping operations --- encoding.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'encoding.go') diff --git a/encoding.go b/encoding.go index ff07d2d..bd2d4b7 100644 --- a/encoding.go +++ b/encoding.go @@ -140,6 +140,8 @@ func (s *Store) Snapshot(w io.WriteSeeker) error { w.Seek(0, io.SeekStart) wr := NewEncoder(w) + wr.EncodeUint64(s.maxCost) + wr.EncodeUint64(uint64(s.strategy.Type)) wr.EncodeUint64(s.lenght) for v := s.evict.EvictNext; v != &s.evict; v = v.EvictNext { @@ -155,6 +157,18 @@ func (s *Store) LoadSnapshot(r io.ReadSeeker) error { r.Seek(0, io.SeekStart) rr := NewDecoder(r) + maxCost, err := rr.DecodeUint64() + if err != nil { + return err + } + s.maxCost = maxCost + + policy, err := rr.DecodeUint64() + if err != nil { + return err + } + s.strategy.SetPolicy(EvictionPolicyType(policy)) + lenght, err := rr.DecodeUint64() if err != nil { return err -- cgit v1.2.3-70-g09d2