modelRT/client/manualsync/init.go

34 lines
752 B
Go

package manualsync
import (
"context"
"fmt"
"sync"
"modelRT/orm"
)
var (
defaultSyncerMu sync.RWMutex
defaultSyncer Syncer
)
// SetDefaultSyncer sets the process-wide manual measurement syncer.
// Passing nil clears the current default.
func SetDefaultSyncer(syncer Syncer) {
defaultSyncerMu.Lock()
defer defaultSyncerMu.Unlock()
defaultSyncer = syncer
}
// Sync uses the process-wide manual measurement syncer.
func Sync(ctx context.Context, dataSource orm.JSONMap, mode int16, sample *SyntheticData) error {
defaultSyncerMu.RLock()
syncer := defaultSyncer
defaultSyncerMu.RUnlock()
if syncer == nil {
return fmt.Errorf("manual measurement sync client is not initialized")
}
return syncer.Sync(ctx, dataSource, mode, sample)
}