aboutsummaryrefslogtreecommitdiffstats
path: root/encoding.go
diff options
context:
space:
mode:
authorMarc Pervaz Boocha <marcpervaz@qburst.com>2025-02-17 18:39:54 +0530
committerMarc Pervaz Boocha <marcpervaz@qburst.com>2025-02-17 18:39:54 +0530
commit6c6535120ca43a57d31b60ae386c34339b44fa10 (patch)
treeb3387a3ed7d096ec0eef60941293397e4201dced /encoding.go
parentFirst Commit (diff)
downloadcache-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.go14
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