25 lines
764 B
Go
25 lines
764 B
Go
package commonspace
|
|
|
|
import (
|
|
"context"
|
|
"github.com/anytypeio/any-sync/commonspace/spacesyncproto"
|
|
)
|
|
|
|
type RpcHandler interface {
|
|
HeadSync(ctx context.Context, req *spacesyncproto.HeadSyncRequest) (*spacesyncproto.HeadSyncResponse, error)
|
|
Stream(stream spacesyncproto.DRPCSpaceSync_ObjectSyncStreamStream) error
|
|
}
|
|
|
|
type rpcHandler struct {
|
|
s *space
|
|
}
|
|
|
|
func (r *rpcHandler) HeadSync(ctx context.Context, req *spacesyncproto.HeadSyncRequest) (*spacesyncproto.HeadSyncResponse, error) {
|
|
return r.s.HeadSync().HandleRangeRequest(ctx, req)
|
|
}
|
|
|
|
func (r *rpcHandler) Stream(stream spacesyncproto.DRPCSpaceSync_ObjectSyncStreamStream) (err error) {
|
|
// TODO: if needed we can launch full sync here
|
|
return r.s.ObjectSync().StreamPool().AddAndReadStreamSync(stream)
|
|
}
|