1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-09 09:35:03 +09:00

Simplify deps

This commit is contained in:
mcrakhman 2024-06-08 13:16:12 +02:00
parent 43383853e1
commit 7ce669d85d
No known key found for this signature in database
GPG key ID: DED12CFEF5B8396B
11 changed files with 93 additions and 133 deletions

View file

@ -0,0 +1,65 @@
package synctest
import (
"context"
"github.com/cheggaaa/mb/v3"
"github.com/gogo/protobuf/proto"
"storj.io/drpc"
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/commonspace/sync/syncdeps"
)
type CounterSyncHandler struct {
requestHandler *CounterRequestHandler
requestSender *CounterRequestSender
responseHandler *CounterResponseHandler
updateHandler *CounterUpdateHandler
}
func NewCounterSyncHandler() syncdeps.SyncHandler {
return &CounterSyncHandler{}
}
func (c *CounterSyncHandler) HandleHeadUpdate(ctx context.Context, headUpdate drpc.Message) (syncdeps.Request, error) {
return c.updateHandler.HandleHeadUpdate(ctx, headUpdate)
}
func (c *CounterSyncHandler) TryAddMessage(ctx context.Context, msg drpc.Message, q *mb.MB[drpc.Message]) error {
return q.TryAdd(msg)
}
func (c *CounterSyncHandler) HandleStreamRequest(ctx context.Context, rq syncdeps.Request, send func(resp proto.Message) error) (syncdeps.Request, error) {
return c.requestHandler.HandleStreamRequest(ctx, rq, send)
}
func (c *CounterSyncHandler) SendStreamRequest(ctx context.Context, rq syncdeps.Request, receive func(stream drpc.Stream) error) (err error) {
return c.requestSender.SendStreamRequest(ctx, rq, receive)
}
func (c *CounterSyncHandler) HandleResponse(ctx context.Context, peerId, objectId string, resp syncdeps.Response) error {
return c.responseHandler.HandleResponse(ctx, peerId, objectId, resp)
}
func (c *CounterSyncHandler) NewResponse() syncdeps.Response {
return c.responseHandler.NewResponse()
}
func (c *CounterSyncHandler) Init(a *app.App) (err error) {
counter := a.MustComponent(CounterName).(*Counter)
peerProvider := a.MustComponent(PeerName).(*PeerProvider)
c.requestHandler = &CounterRequestHandler{counter: counter}
c.requestSender = &CounterRequestSender{peerProvider: a.MustComponent(PeerName).(*PeerProvider)}
c.responseHandler = &CounterResponseHandler{counter: counter}
c.updateHandler = &CounterUpdateHandler{counter: counter, peerProvider: peerProvider}
return nil
}
func (c *CounterSyncHandler) Name() (name string) {
return syncdeps.CName
}
func (c *CounterSyncHandler) NewMessage() drpc.Message {
return &CounterUpdate{}
}

View file

@ -1,49 +0,0 @@
package synctest
import (
"context"
"github.com/cheggaaa/mb/v3"
"storj.io/drpc"
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/commonspace/sync/syncdeps"
)
type CounterSyncDepsFactory struct {
syncDeps syncdeps.SyncDeps
}
func NewCounterSyncDepsFactory() syncdeps.SyncDepsFactory {
return &CounterSyncDepsFactory{}
}
func (c *CounterSyncDepsFactory) Init(a *app.App) (err error) {
counter := a.MustComponent(CounterName).(*Counter)
peerProvider := a.MustComponent(PeerName).(*PeerProvider)
requestHandler := &CounterRequestHandler{counter: counter}
requestSender := &CounterRequestSender{peerProvider: a.MustComponent(PeerName).(*PeerProvider)}
responseHandler := &CounterResponseHandler{counter: counter}
updateHandler := &CounterUpdateHandler{counter: counter, peerProvider: peerProvider}
c.syncDeps = syncdeps.SyncDeps{
HeadUpdateHandler: updateHandler,
ResponseHandler: responseHandler,
RequestHandler: requestHandler,
RequestSender: requestSender,
MergeFilter: func(ctx context.Context, msg drpc.Message, q *mb.MB[drpc.Message]) error {
return q.TryAdd(msg)
},
ReadMessageConstructor: func() drpc.Message {
return &CounterUpdate{}
},
}
return nil
}
func (c *CounterSyncDepsFactory) Name() (name string) {
return syncdeps.CName
}
func (c *CounterSyncDepsFactory) SyncDeps() syncdeps.SyncDeps {
return c.syncDeps
}