diff --git a/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go b/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go index 1ca1e659..3c4a8ae7 100644 --- a/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go +++ b/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go @@ -9,6 +9,7 @@ import ( reflect "reflect" objecttree "github.com/anytypeio/any-sync/commonspace/object/tree/objecttree" + updatelistener "github.com/anytypeio/any-sync/commonspace/object/tree/synctree/updatelistener" treechangeproto "github.com/anytypeio/any-sync/commonspace/object/tree/treechangeproto" treestorage "github.com/anytypeio/any-sync/commonspace/object/tree/treestorage" spacesyncproto "github.com/anytypeio/any-sync/commonspace/spacesyncproto" @@ -415,6 +416,18 @@ func (mr *MockSyncTreeMockRecorder) Root() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Root", reflect.TypeOf((*MockSyncTree)(nil).Root)) } +// SetListener mocks base method. +func (m *MockSyncTree) SetListener(arg0 updatelistener.UpdateListener) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetListener", arg0) +} + +// SetListener indicates an expected call of SetListener. +func (mr *MockSyncTreeMockRecorder) SetListener(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetListener", reflect.TypeOf((*MockSyncTree)(nil).SetListener), arg0) +} + // SnapshotPath mocks base method. func (m *MockSyncTree) SnapshotPath() []string { m.ctrl.T.Helper() diff --git a/commonspace/object/tree/synctree/synctree.go b/commonspace/object/tree/synctree/synctree.go index c0f4c462..23dc5298 100644 --- a/commonspace/object/tree/synctree/synctree.go +++ b/commonspace/object/tree/synctree/synctree.go @@ -30,9 +30,14 @@ type HeadNotifiable interface { UpdateHeads(id string, heads []string) } +type ListenerSetter interface { + SetListener(listener updatelistener.UpdateListener) +} + type SyncTree interface { objecttree.ObjectTree synchandler.SyncHandler + ListenerSetter Ping() (err error) } @@ -218,6 +223,11 @@ func buildSyncTree(ctx context.Context, isFirstBuild bool, deps BuildDeps) (t Sy return } +func (s *syncTree) SetListener(listener updatelistener.UpdateListener) { + // this should be called under lock + s.listener = listener +} + func (s *syncTree) IterateFrom(id string, convert objecttree.ChangeConvertFunc, iterate objecttree.ChangeIterateFunc) (err error) { if err = s.checkAlive(); err != nil { return