diff options
author | Marc Pervaz Boocha <marcpervaz@qburst.com> | 2025-02-17 18:39:54 +0530 |
---|---|---|
committer | Marc Pervaz Boocha <marcpervaz@qburst.com> | 2025-02-17 18:39:54 +0530 |
commit | 6c6535120ca43a57d31b60ae386c34339b44fa10 (patch) | |
tree | b3387a3ed7d096ec0eef60941293397e4201dced /encoding.go | |
parent | First Commit (diff) | |
download | cache-6c6535120ca43a57d31b60ae386c34339b44fa10.tar cache-6c6535120ca43a57d31b60ae386c34339b44fa10.tar.gz cache-6c6535120ca43a57d31b60ae386c34339b44fa10.tar.bz2 cache-6c6535120ca43a57d31b60ae386c34339b44fa10.tar.lz cache-6c6535120ca43a57d31b60ae386c34339b44fa10.tar.xz cache-6c6535120ca43a57d31b60ae386c34339b44fa10.tar.zst cache-6c6535120ca43a57d31b60ae386c34339b44fa10.zip |
Bootstraped code for housekeeping operations
Diffstat (limited to 'encoding.go')
-rw-r--r-- | encoding.go | 14 |
1 files changed, 14 insertions, 0 deletions
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 |