1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 14:07:02 +09:00
any-sync/commonspace/object/tree/synctree/syncclient.go
2024-06-17 23:23:28 +02:00

42 lines
1.3 KiB
Go

package synctree
import (
"context"
"github.com/anyproto/any-sync/commonspace/sync"
"github.com/anyproto/any-sync/commonspace/sync/objectsync/objectmessages"
"github.com/anyproto/any-sync/commonspace/sync/syncdeps"
)
type SyncClient interface {
RequestFactory
Broadcast(ctx context.Context, headUpdate *objectmessages.HeadUpdate) error
SendTreeRequest(ctx context.Context, req syncdeps.Request, collector syncdeps.ResponseCollector) (err error)
QueueRequest(ctx context.Context, req syncdeps.Request) (err error)
}
type syncClient struct {
RequestFactory
syncService sync.SyncService
spaceId string
}
func NewSyncClient(spaceId string, syncService sync.SyncService) SyncClient {
return &syncClient{
RequestFactory: NewRequestFactory(spaceId),
spaceId: spaceId,
syncService: syncService,
}
}
func (s *syncClient) Broadcast(ctx context.Context, headUpdate *objectmessages.HeadUpdate) error {
return s.syncService.BroadcastMessage(ctx, headUpdate)
}
func (s *syncClient) SendTreeRequest(ctx context.Context, req syncdeps.Request, collector syncdeps.ResponseCollector) (err error) {
return s.syncService.SendRequest(ctx, req, collector)
}
func (s *syncClient) QueueRequest(ctx context.Context, req syncdeps.Request) (err error) {
return s.syncService.QueueRequest(ctx, req)
}