ceremonyclient/types/hypergraph/sync.go
2025-09-30 02:46:49 -05:00

32 lines
517 B
Go

package hypergraph
import (
"sync/atomic"
"time"
)
type SyncController struct {
isSyncing atomic.Bool
SyncStatus map[string]*SyncInfo
}
func (s *SyncController) TryEstablishSyncSession() bool {
return !s.isSyncing.Swap(true)
}
func (s *SyncController) EndSyncSession() {
s.isSyncing.Store(false)
}
type SyncInfo struct {
Unreachable bool
LastSynced time.Time
}
func NewSyncController() *SyncController {
return &SyncController{
isSyncing: atomic.Bool{},
SyncStatus: map[string]*SyncInfo{},
}
}