34 lines
752 B
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)
|
|
}
|