MCPcopy Create free account
hub / github.com/cloud-native-go/examples / Restore

Method Restore

ch08/hexarch/core/core.go:77–110  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

75}
76
77func (store *KeyValueStore) Restore() error {
78 var err error
79
80 events, errors := store.transact.ReadEvents()
81 count, ok, e := 0, true, Event{}
82
83 for ok && err == nil {
84 select {
85 case err, ok = <-errors:
86
87 case e, ok = <-events:
88 switch e.EventType {
89 case EventDelete: // Got a DELETE event!
90 err = store.Delete(e.Key)
91 count++
92 case EventPut: // Got a PUT event!
93 err = store.Put(e.Key, e.Value)
94 count++
95 }
96 }
97 }
98
99 log.Printf("%d events replayed\n", count)
100
101 store.transact.Run()
102
103 go func() {
104 for err := range store.transact.Err() {
105 log.Print(err)
106 }
107 }()
108
109 return err
110}
111
112type ZeroTransactionLogger struct{}
113

Callers 1

mainFunction · 0.80

Calls 5

DeleteMethod · 0.95
PutMethod · 0.95
ReadEventsMethod · 0.65
RunMethod · 0.65
ErrMethod · 0.65

Tested by

no test coverage detected