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:
parent
43383853e1
commit
7ce669d85d
11 changed files with 93 additions and 133 deletions
65
commonspace/sync/synctest/countersynchandler.go
Normal file
65
commonspace/sync/synctest/countersynchandler.go
Normal 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{}
|
||||
}
|
|
@ -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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue