30 lines
929 B
Go
30 lines
929 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model"
|
|
)
|
|
|
|
// ISimStatusQueue publishes the additive status-sync queue protocol. It is
|
|
// deliberately separate from the existing synchronous status service.
|
|
type ISimStatusQueue interface {
|
|
StartFullSync(context.Context) error
|
|
StartFullSyncRun(context.Context) (string, error)
|
|
// StartFullSyncRunScoped narrows the run to a channel whitelist; a nil or
|
|
// empty scope is a full sync.
|
|
StartFullSyncRunScoped(context.Context, *model.SyncScope) (string, error)
|
|
EnqueueCard(context.Context, model.SimStatusQueueTaskMessage) error
|
|
}
|
|
|
|
var localSimStatusQueue ISimStatusQueue
|
|
|
|
func SimStatusQueue() ISimStatusQueue {
|
|
if localSimStatusQueue == nil {
|
|
panic("implement not found for interface ISimStatusQueue, forgot register?")
|
|
}
|
|
return localSimStatusQueue
|
|
}
|
|
|
|
func RegisterSimStatusQueue(i ISimStatusQueue) { localSimStatusQueue = i }
|