aboutsummaryrefslogtreecommitdiffstats
path: root/util/lamport/persisted_lamport.go
diff options
context:
space:
mode:
Diffstat (limited to 'util/lamport/persisted_lamport.go')
-rw-r--r--util/lamport/persisted_lamport.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/util/lamport/persisted_lamport.go b/util/lamport/persisted_lamport.go
index 22b23dcb..ab4b93b1 100644
--- a/util/lamport/persisted_lamport.go
+++ b/util/lamport/persisted_lamport.go
@@ -12,6 +12,7 @@ type Persisted struct {
filePath string
}
+// NewPersisted create a new persisted Lamport clock
func NewPersisted(filePath string) (*Persisted, error) {
clock := &Persisted{
Clock: NewClock(),
@@ -27,6 +28,7 @@ func NewPersisted(filePath string) (*Persisted, error) {
return clock, nil
}
+// LoadPersisted load a persisted Lamport clock from a file
func LoadPersisted(filePath string) (*Persisted, error) {
clock := &Persisted{
filePath: filePath,
@@ -40,11 +42,14 @@ func LoadPersisted(filePath string) (*Persisted, error) {
return clock, nil
}
+// Increment is used to return the value of the lamport clock and increment it afterwards
func (c *Persisted) Increment() (Time, error) {
time := c.Clock.Increment()
return time, c.Write()
}
+// Witness is called to update our local clock if necessary after
+// witnessing a clock value received from another process
func (c *Persisted) Witness(time Time) error {
// TODO: rework so that we write only when the clock was actually updated
c.Clock.Witness(time)