Merge pull request #28 from anytypeio/middleware-compatibility
This commit is contained in:
commit
4aa8c9ac09
@ -10,6 +10,7 @@ import (
|
|||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ocache"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ocache"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/objecttree"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/objecttree"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/treegetter"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/treegetter"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"time"
|
"time"
|
||||||
@ -20,7 +21,10 @@ var ErrCacheObjectWithoutTree = errors.New("cache object contains no tree")
|
|||||||
|
|
||||||
type ctxKey int
|
type ctxKey int
|
||||||
|
|
||||||
const spaceKey ctxKey = 0
|
const (
|
||||||
|
spaceKey ctxKey = iota
|
||||||
|
treeCreateKey
|
||||||
|
)
|
||||||
|
|
||||||
type treeCache struct {
|
type treeCache struct {
|
||||||
gcttl int
|
gcttl int
|
||||||
@ -32,6 +36,7 @@ type treeCache struct {
|
|||||||
type TreeCache interface {
|
type TreeCache interface {
|
||||||
treegetter.TreeGetter
|
treegetter.TreeGetter
|
||||||
GetDocument(ctx context.Context, spaceId, id string) (doc textdocument.TextDocument, err error)
|
GetDocument(ctx context.Context, spaceId, id string) (doc textdocument.TextDocument, err error)
|
||||||
|
CreateDocument(ctx context.Context, spaceId string, payload objecttree.ObjectTreeCreatePayload) (ot textdocument.TextDocument, err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type updateListener struct {
|
type updateListener struct {
|
||||||
@ -75,6 +80,10 @@ func (c *treeCache) Init(a *app.App) (err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
createPayload, exists := ctx.Value(treeCreateKey).(treestorage.TreeStorageCreatePayload)
|
||||||
|
if exists {
|
||||||
|
return textdocument.CreateTextDocument(ctx, space, createPayload, &updateListener{}, c.account)
|
||||||
|
}
|
||||||
return textdocument.NewTextDocument(ctx, space, id, &updateListener{}, c.account)
|
return textdocument.NewTextDocument(ctx, space, id, &updateListener{}, c.account)
|
||||||
},
|
},
|
||||||
ocache.WithLogger(log.Sugar()),
|
ocache.WithLogger(log.Sugar()),
|
||||||
@ -108,6 +117,24 @@ func (c *treeCache) GetTree(ctx context.Context, spaceId, id string) (tr objectt
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *treeCache) CreateDocument(ctx context.Context, spaceId string, payload objecttree.ObjectTreeCreatePayload) (ot textdocument.TextDocument, err error) {
|
||||||
|
space, err := c.clientService.GetSpace(ctx, spaceId)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
create, err := space.CreateTree(context.Background(), payload)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx = context.WithValue(ctx, spaceKey, spaceId)
|
||||||
|
ctx = context.WithValue(ctx, treeCreateKey, create)
|
||||||
|
v, err := c.cache.Get(ctx, create.RootRawChange.Id)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return v.(textdocument.TextDocument), nil
|
||||||
|
}
|
||||||
|
|
||||||
func (c *treeCache) DeleteTree(ctx context.Context, spaceId, treeId string) (err error) {
|
func (c *treeCache) DeleteTree(ctx context.Context, spaceId, treeId string) (err error) {
|
||||||
tr, err := c.GetTree(ctx, spaceId, treeId)
|
tr, err := c.GetTree(ctx, spaceId, treeId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -4,11 +4,11 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/clientspace"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/clientspace"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/clientspace/clientcache"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/clientspace/clientcache"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/document/textdocument"
|
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/headsync"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/headsync"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/objecttree"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/treegetter"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/treegetter"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -53,7 +53,17 @@ func (s *service) CreateDocument(spaceId string) (id string, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return textdocument.CreateTextDocument(context.Background(), space, s.account)
|
payload := objecttree.ObjectTreeCreatePayload{
|
||||||
|
SignKey: s.account.Account().SignKey,
|
||||||
|
SpaceId: space.Id(),
|
||||||
|
Identity: s.account.Account().Identity,
|
||||||
|
}
|
||||||
|
doc, err := s.cache.CreateDocument(context.Background(), space.Id(), payload)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
id = doc.Id()
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *service) DeleteDocument(spaceId, documentId string) (err error) {
|
func (s *service) DeleteDocument(spaceId, documentId string) (err error) {
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/objecttree"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/objecttree"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/synctree/updatelistener"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/synctree/updatelistener"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage"
|
||||||
"github.com/gogo/protobuf/proto"
|
"github.com/gogo/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -27,18 +28,17 @@ type textDocument struct {
|
|||||||
func CreateTextDocument(
|
func CreateTextDocument(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
space commonspace.Space,
|
space commonspace.Space,
|
||||||
account accountservice.Service) (id string, err error) {
|
payload treestorage.TreeStorageCreatePayload,
|
||||||
payload := objecttree.ObjectTreeCreatePayload{
|
listener updatelistener.UpdateListener,
|
||||||
SignKey: account.Account().SignKey,
|
account accountservice.Service) (doc TextDocument, err error) {
|
||||||
SpaceId: space.Id(),
|
t, err := space.PutTree(ctx, payload, listener)
|
||||||
Identity: account.Account().Identity,
|
|
||||||
}
|
|
||||||
obj, err := space.CreateTree(ctx, payload)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
id = obj.Id()
|
return &textDocument{
|
||||||
return
|
ObjectTree: t,
|
||||||
|
account: account,
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTextDocument(ctx context.Context, space commonspace.Space, id string, listener updatelistener.UpdateListener, account accountservice.Service) (doc TextDocument, err error) {
|
func NewTextDocument(ctx context.Context, space commonspace.Space, id string, listener updatelistener.UpdateListener, account accountservice.Service) (doc TextDocument, err error) {
|
||||||
@ -90,7 +90,7 @@ func (t *textDocument) Text() (text string, err error) {
|
|||||||
t.RLock()
|
t.RLock()
|
||||||
defer t.RUnlock()
|
defer t.RUnlock()
|
||||||
|
|
||||||
err = t.Iterate(
|
err = t.IterateRoot(
|
||||||
func(decrypted []byte) (any, error) {
|
func(decrypted []byte) (any, error) {
|
||||||
textChange := &textchange.TextData{}
|
textChange := &textchange.TextData{}
|
||||||
err = proto.Unmarshal(decrypted, textChange)
|
err = proto.Unmarshal(decrypted, textChange)
|
||||||
|
|||||||
@ -173,6 +173,22 @@ func (s *spaceStorage) TreeDeletedStatus(id string) (status string, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *spaceStorage) TreeRoot(id string) (root *treechangeproto.RawTreeChangeWithId, err error) {
|
||||||
|
keys := newTreeKeys(s.spaceId, id)
|
||||||
|
err = s.objDb.View(func(txn *badger.Txn) error {
|
||||||
|
bytes, err := getTxn(txn, keys.RawChangeKey(id))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
root = &treechangeproto.RawTreeChangeWithId{
|
||||||
|
RawChange: bytes,
|
||||||
|
Id: id,
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (s *spaceStorage) Close() (err error) {
|
func (s *spaceStorage) Close() (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -128,6 +128,19 @@ func (app *App) MustComponent(name string) Component {
|
|||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MustComponent - generic version of app.MustComponent
|
||||||
|
func MustComponent[i any](app *App) i {
|
||||||
|
app.mu.RLock()
|
||||||
|
defer app.mu.RUnlock()
|
||||||
|
for _, s := range app.components {
|
||||||
|
if v, ok := s.(i); ok {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
empty := new(i)
|
||||||
|
panic(fmt.Errorf("component with interface %T is not found", empty))
|
||||||
|
}
|
||||||
|
|
||||||
// ComponentNames returns all registered names
|
// ComponentNames returns all registered names
|
||||||
func (app *App) ComponentNames() (names []string) {
|
func (app *App) ComponentNames() (names []string) {
|
||||||
app.mu.RLock()
|
app.mu.RLock()
|
||||||
|
|||||||
@ -74,6 +74,7 @@ type Object interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ObjectLocker interface {
|
type ObjectLocker interface {
|
||||||
|
Object
|
||||||
Locked() bool
|
Locked() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,9 +88,9 @@ type entry struct {
|
|||||||
refCount uint32
|
refCount uint32
|
||||||
isClosing bool
|
isClosing bool
|
||||||
load chan struct{}
|
load chan struct{}
|
||||||
loadErr error
|
loadErr error
|
||||||
value Object
|
value Object
|
||||||
close chan struct{}
|
close chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *entry) locked() bool {
|
func (e *entry) locked() bool {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
//go:generate mockgen -destination mock_confconnector/mock_confconnector.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector ConfConnector
|
||||||
package confconnector
|
package confconnector
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|||||||
@ -0,0 +1,96 @@
|
|||||||
|
// Code generated by MockGen. DO NOT EDIT.
|
||||||
|
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector (interfaces: ConfConnector)
|
||||||
|
|
||||||
|
// Package mock_confconnector is a generated GoMock package.
|
||||||
|
package mock_confconnector
|
||||||
|
|
||||||
|
import (
|
||||||
|
context "context"
|
||||||
|
reflect "reflect"
|
||||||
|
|
||||||
|
peer "github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
|
||||||
|
pool "github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"
|
||||||
|
nodeconf "github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
|
||||||
|
gomock "github.com/golang/mock/gomock"
|
||||||
|
)
|
||||||
|
|
||||||
|
// MockConfConnector is a mock of ConfConnector interface.
|
||||||
|
type MockConfConnector struct {
|
||||||
|
ctrl *gomock.Controller
|
||||||
|
recorder *MockConfConnectorMockRecorder
|
||||||
|
}
|
||||||
|
|
||||||
|
// MockConfConnectorMockRecorder is the mock recorder for MockConfConnector.
|
||||||
|
type MockConfConnectorMockRecorder struct {
|
||||||
|
mock *MockConfConnector
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewMockConfConnector creates a new mock instance.
|
||||||
|
func NewMockConfConnector(ctrl *gomock.Controller) *MockConfConnector {
|
||||||
|
mock := &MockConfConnector{ctrl: ctrl}
|
||||||
|
mock.recorder = &MockConfConnectorMockRecorder{mock}
|
||||||
|
return mock
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||||
|
func (m *MockConfConnector) EXPECT() *MockConfConnectorMockRecorder {
|
||||||
|
return m.recorder
|
||||||
|
}
|
||||||
|
|
||||||
|
// Configuration mocks base method.
|
||||||
|
func (m *MockConfConnector) Configuration() nodeconf.Configuration {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "Configuration")
|
||||||
|
ret0, _ := ret[0].(nodeconf.Configuration)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Configuration indicates an expected call of Configuration.
|
||||||
|
func (mr *MockConfConnectorMockRecorder) Configuration() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Configuration", reflect.TypeOf((*MockConfConnector)(nil).Configuration))
|
||||||
|
}
|
||||||
|
|
||||||
|
// DialInactiveResponsiblePeers mocks base method.
|
||||||
|
func (m *MockConfConnector) DialInactiveResponsiblePeers(arg0 context.Context, arg1 string, arg2 []string) ([]peer.Peer, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "DialInactiveResponsiblePeers", arg0, arg1, arg2)
|
||||||
|
ret0, _ := ret[0].([]peer.Peer)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// DialInactiveResponsiblePeers indicates an expected call of DialInactiveResponsiblePeers.
|
||||||
|
func (mr *MockConfConnectorMockRecorder) DialInactiveResponsiblePeers(arg0, arg1, arg2 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DialInactiveResponsiblePeers", reflect.TypeOf((*MockConfConnector)(nil).DialInactiveResponsiblePeers), arg0, arg1, arg2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetResponsiblePeers mocks base method.
|
||||||
|
func (m *MockConfConnector) GetResponsiblePeers(arg0 context.Context, arg1 string) ([]peer.Peer, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "GetResponsiblePeers", arg0, arg1)
|
||||||
|
ret0, _ := ret[0].([]peer.Peer)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetResponsiblePeers indicates an expected call of GetResponsiblePeers.
|
||||||
|
func (mr *MockConfConnectorMockRecorder) GetResponsiblePeers(arg0, arg1 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResponsiblePeers", reflect.TypeOf((*MockConfConnector)(nil).GetResponsiblePeers), arg0, arg1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pool mocks base method.
|
||||||
|
func (m *MockConfConnector) Pool() pool.Pool {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "Pool")
|
||||||
|
ret0, _ := ret[0].(pool.Pool)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pool indicates an expected call of Pool.
|
||||||
|
func (mr *MockConfConnectorMockRecorder) Pool() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Pool", reflect.TypeOf((*MockConfConnector)(nil).Pool))
|
||||||
|
}
|
||||||
@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ldiff"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ldiff"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ldiff/mock_ldiff"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ldiff/mock_ldiff"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector/mock_confconnector"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/acl/aclrecordproto"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/acl/aclrecordproto"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
|
||||||
mock_treestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage/mock_treestorage"
|
mock_treestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage/mock_treestorage"
|
||||||
@ -16,7 +17,6 @@ import (
|
|||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto/mock_spacesyncproto"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto/mock_spacesyncproto"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/syncstatus"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/syncstatus"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf/mock_nodeconf"
|
|
||||||
"github.com/golang/mock/gomock"
|
"github.com/golang/mock/gomock"
|
||||||
"github.com/libp2p/go-libp2p/core/sec"
|
"github.com/libp2p/go-libp2p/core/sec"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
@ -98,7 +98,7 @@ func TestDiffSyncer_Sync(t *testing.T) {
|
|||||||
defer ctrl.Finish()
|
defer ctrl.Finish()
|
||||||
|
|
||||||
diffMock := mock_ldiff.NewMockDiff(ctrl)
|
diffMock := mock_ldiff.NewMockDiff(ctrl)
|
||||||
connectorMock := mock_nodeconf.NewMockConfConnector(ctrl)
|
connectorMock := mock_confconnector.NewMockConfConnector(ctrl)
|
||||||
cacheMock := mock_treegetter.NewMockTreeGetter(ctrl)
|
cacheMock := mock_treegetter.NewMockTreeGetter(ctrl)
|
||||||
stMock := mock_spacestorage.NewMockSpaceStorage(ctrl)
|
stMock := mock_spacestorage.NewMockSpaceStorage(ctrl)
|
||||||
clientMock := mock_spacesyncproto.NewMockDRPCSpaceSyncClient(ctrl)
|
clientMock := mock_spacesyncproto.NewMockDRPCSpaceSyncClient(ctrl)
|
||||||
|
|||||||
@ -185,20 +185,6 @@ func (mr *MockObjectTreeMockRecorder) Id() *gomock.Call {
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockObjectTree)(nil).Id))
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockObjectTree)(nil).Id))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Iterate mocks base method.
|
|
||||||
func (m *MockObjectTree) Iterate(arg0 func([]byte) (interface{}, error), arg1 func(*objecttree.Change) bool) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Iterate", arg0, arg1)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Iterate indicates an expected call of Iterate.
|
|
||||||
func (mr *MockObjectTreeMockRecorder) Iterate(arg0, arg1 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Iterate", reflect.TypeOf((*MockObjectTree)(nil).Iterate), arg0, arg1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// IterateFrom mocks base method.
|
// IterateFrom mocks base method.
|
||||||
func (m *MockObjectTree) IterateFrom(arg0 string, arg1 func([]byte) (interface{}, error), arg2 func(*objecttree.Change) bool) error {
|
func (m *MockObjectTree) IterateFrom(arg0 string, arg1 func([]byte) (interface{}, error), arg2 func(*objecttree.Change) bool) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -213,6 +199,20 @@ func (mr *MockObjectTreeMockRecorder) IterateFrom(arg0, arg1, arg2 interface{})
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IterateFrom", reflect.TypeOf((*MockObjectTree)(nil).IterateFrom), arg0, arg1, arg2)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IterateFrom", reflect.TypeOf((*MockObjectTree)(nil).IterateFrom), arg0, arg1, arg2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IterateRoot mocks base method.
|
||||||
|
func (m *MockObjectTree) IterateRoot(arg0 func([]byte) (interface{}, error), arg1 func(*objecttree.Change) bool) error {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "IterateRoot", arg0, arg1)
|
||||||
|
ret0, _ := ret[0].(error)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// IterateRoot indicates an expected call of IterateRoot.
|
||||||
|
func (mr *MockObjectTreeMockRecorder) IterateRoot(arg0, arg1 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IterateRoot", reflect.TypeOf((*MockObjectTree)(nil).IterateRoot), arg0, arg1)
|
||||||
|
}
|
||||||
|
|
||||||
// Lock mocks base method.
|
// Lock mocks base method.
|
||||||
func (m *MockObjectTree) Lock() {
|
func (m *MockObjectTree) Lock() {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -302,3 +302,17 @@ func (mr *MockObjectTreeMockRecorder) Unlock() *gomock.Call {
|
|||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unlock", reflect.TypeOf((*MockObjectTree)(nil).Unlock))
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unlock", reflect.TypeOf((*MockObjectTree)(nil).Unlock))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnmarshalledHeader mocks base method.
|
||||||
|
func (m *MockObjectTree) UnmarshalledHeader() *objecttree.Change {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "UnmarshalledHeader")
|
||||||
|
ret0, _ := ret[0].(*objecttree.Change)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalledHeader indicates an expected call of UnmarshalledHeader.
|
||||||
|
func (mr *MockObjectTreeMockRecorder) UnmarshalledHeader() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnmarshalledHeader", reflect.TypeOf((*MockObjectTree)(nil).UnmarshalledHeader))
|
||||||
|
}
|
||||||
|
|||||||
@ -48,12 +48,13 @@ type ObjectTree interface {
|
|||||||
|
|
||||||
Id() string
|
Id() string
|
||||||
Header() *treechangeproto.RawTreeChangeWithId
|
Header() *treechangeproto.RawTreeChangeWithId
|
||||||
|
UnmarshalledHeader() *Change
|
||||||
Heads() []string
|
Heads() []string
|
||||||
Root() *Change
|
Root() *Change
|
||||||
HasChanges(...string) bool
|
HasChanges(...string) bool
|
||||||
DebugDump() (string, error)
|
DebugDump() (string, error)
|
||||||
|
|
||||||
Iterate(convert ChangeConvertFunc, iterate ChangeIterateFunc) error
|
IterateRoot(convert ChangeConvertFunc, iterate ChangeIterateFunc) error
|
||||||
IterateFrom(id string, convert ChangeConvertFunc, iterate ChangeIterateFunc) error
|
IterateFrom(id string, convert ChangeConvertFunc, iterate ChangeIterateFunc) error
|
||||||
|
|
||||||
SnapshotPath() []string
|
SnapshotPath() []string
|
||||||
@ -76,9 +77,10 @@ type objectTree struct {
|
|||||||
treeBuilder *treeBuilder
|
treeBuilder *treeBuilder
|
||||||
aclList list2.AclList
|
aclList list2.AclList
|
||||||
|
|
||||||
id string
|
id string
|
||||||
root *treechangeproto.RawTreeChangeWithId
|
rawRoot *treechangeproto.RawTreeChangeWithId
|
||||||
tree *Tree
|
root *Change
|
||||||
|
tree *Tree
|
||||||
|
|
||||||
keys map[uint64]*symmetric.Key
|
keys map[uint64]*symmetric.Key
|
||||||
|
|
||||||
@ -142,6 +144,10 @@ func (ot *objectTree) Id() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ot *objectTree) Header() *treechangeproto.RawTreeChangeWithId {
|
func (ot *objectTree) Header() *treechangeproto.RawTreeChangeWithId {
|
||||||
|
return ot.rawRoot
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ot *objectTree) UnmarshalledHeader() *Change {
|
||||||
return ot.root
|
return ot.root
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,7 +458,7 @@ func (ot *objectTree) createAddResult(oldHeads []string, mode Mode, treeChangesA
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ot *objectTree) Iterate(convert ChangeConvertFunc, iterate ChangeIterateFunc) (err error) {
|
func (ot *objectTree) IterateRoot(convert ChangeConvertFunc, iterate ChangeIterateFunc) (err error) {
|
||||||
return ot.IterateFrom(ot.tree.RootId(), convert, iterate)
|
return ot.IterateFrom(ot.tree.RootId(), convert, iterate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -133,7 +133,7 @@ func prepareTreeContext(t *testing.T, aclList list.AclList) testTreeContext {
|
|||||||
|
|
||||||
// check tree iterate
|
// check tree iterate
|
||||||
var iterChangesId []string
|
var iterChangesId []string
|
||||||
err = objTree.Iterate(nil, func(change *Change) bool {
|
err = objTree.IterateRoot(nil, func(change *Change) bool {
|
||||||
iterChangesId = append(iterChangesId, change.Id)
|
iterChangesId = append(iterChangesId, change.Id)
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
@ -179,7 +179,7 @@ func TestObjectTree(t *testing.T) {
|
|||||||
|
|
||||||
// check tree iterate
|
// check tree iterate
|
||||||
var iterChangesId []string
|
var iterChangesId []string
|
||||||
err = objTree.Iterate(nil, func(change *Change) bool {
|
err = objTree.IterateRoot(nil, func(change *Change) bool {
|
||||||
iterChangesId = append(iterChangesId, change.Id)
|
iterChangesId = append(iterChangesId, change.Id)
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
@ -277,7 +277,7 @@ func TestObjectTree(t *testing.T) {
|
|||||||
|
|
||||||
// check tree iterate
|
// check tree iterate
|
||||||
var iterChangesId []string
|
var iterChangesId []string
|
||||||
err = objTree.Iterate(nil, func(change *Change) bool {
|
err = objTree.IterateRoot(nil, func(change *Change) bool {
|
||||||
iterChangesId = append(iterChangesId, change.Id)
|
iterChangesId = append(iterChangesId, change.Id)
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
@ -523,7 +523,7 @@ func TestObjectTree(t *testing.T) {
|
|||||||
|
|
||||||
// check tree iterate
|
// check tree iterate
|
||||||
var iterChangesId []string
|
var iterChangesId []string
|
||||||
err = objTree.Iterate(nil, func(change *Change) bool {
|
err = objTree.IterateRoot(nil, func(change *Change) bool {
|
||||||
iterChangesId = append(iterChangesId, change.Id)
|
iterChangesId = append(iterChangesId, change.Id)
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
|||||||
@ -150,18 +150,17 @@ func buildObjectTree(deps objectTreeDeps) (ObjectTree, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
objTree.id = objTree.treeStorage.Id()
|
objTree.id = objTree.treeStorage.Id()
|
||||||
|
objTree.rawRoot, err = objTree.treeStorage.Root()
|
||||||
objTree.id = objTree.treeStorage.Id()
|
|
||||||
objTree.root, err = objTree.treeStorage.Root()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// verifying root
|
// verifying root
|
||||||
_, err = objTree.changeBuilder.ConvertFromRaw(objTree.root, true)
|
header, err := objTree.changeBuilder.ConvertFromRaw(objTree.rawRoot, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
objTree.root = header
|
||||||
|
|
||||||
return objTree, nil
|
return objTree, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,8 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func ValidateRawTree(payload treestorage.TreeStorageCreatePayload, aclList list.AclList) (err error) {
|
func ValidateRawTree(payload treestorage.TreeStorageCreatePayload, aclList list.AclList) (err error) {
|
||||||
provider := treestorage.NewInMemoryTreeStorageProvider()
|
treeStorage, err := treestorage.NewInMemoryTreeStorage(payload.RootRawChange, payload.Heads, payload.Changes)
|
||||||
treeStorage, err := provider.CreateTreeStorage(payload)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@ -323,20 +323,6 @@ func (mr *MockSyncTreeMockRecorder) Id() *gomock.Call {
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockSyncTree)(nil).Id))
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockSyncTree)(nil).Id))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Iterate mocks base method.
|
|
||||||
func (m *MockSyncTree) Iterate(arg0 func([]byte) (interface{}, error), arg1 func(*objecttree.Change) bool) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Iterate", arg0, arg1)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Iterate indicates an expected call of Iterate.
|
|
||||||
func (mr *MockSyncTreeMockRecorder) Iterate(arg0, arg1 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Iterate", reflect.TypeOf((*MockSyncTree)(nil).Iterate), arg0, arg1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// IterateFrom mocks base method.
|
// IterateFrom mocks base method.
|
||||||
func (m *MockSyncTree) IterateFrom(arg0 string, arg1 func([]byte) (interface{}, error), arg2 func(*objecttree.Change) bool) error {
|
func (m *MockSyncTree) IterateFrom(arg0 string, arg1 func([]byte) (interface{}, error), arg2 func(*objecttree.Change) bool) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -351,6 +337,20 @@ func (mr *MockSyncTreeMockRecorder) IterateFrom(arg0, arg1, arg2 interface{}) *g
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IterateFrom", reflect.TypeOf((*MockSyncTree)(nil).IterateFrom), arg0, arg1, arg2)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IterateFrom", reflect.TypeOf((*MockSyncTree)(nil).IterateFrom), arg0, arg1, arg2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IterateRoot mocks base method.
|
||||||
|
func (m *MockSyncTree) IterateRoot(arg0 func([]byte) (interface{}, error), arg1 func(*objecttree.Change) bool) error {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "IterateRoot", arg0, arg1)
|
||||||
|
ret0, _ := ret[0].(error)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// IterateRoot indicates an expected call of IterateRoot.
|
||||||
|
func (mr *MockSyncTreeMockRecorder) IterateRoot(arg0, arg1 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IterateRoot", reflect.TypeOf((*MockSyncTree)(nil).IterateRoot), arg0, arg1)
|
||||||
|
}
|
||||||
|
|
||||||
// Lock mocks base method.
|
// Lock mocks base method.
|
||||||
func (m *MockSyncTree) Lock() {
|
func (m *MockSyncTree) Lock() {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -455,6 +455,20 @@ func (mr *MockSyncTreeMockRecorder) Unlock() *gomock.Call {
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unlock", reflect.TypeOf((*MockSyncTree)(nil).Unlock))
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unlock", reflect.TypeOf((*MockSyncTree)(nil).Unlock))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnmarshalledHeader mocks base method.
|
||||||
|
func (m *MockSyncTree) UnmarshalledHeader() *objecttree.Change {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "UnmarshalledHeader")
|
||||||
|
ret0, _ := ret[0].(*objecttree.Change)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalledHeader indicates an expected call of UnmarshalledHeader.
|
||||||
|
func (mr *MockSyncTreeMockRecorder) UnmarshalledHeader() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnmarshalledHeader", reflect.TypeOf((*MockSyncTree)(nil).UnmarshalledHeader))
|
||||||
|
}
|
||||||
|
|
||||||
// MockReceiveQueue is a mock of ReceiveQueue interface.
|
// MockReceiveQueue is a mock of ReceiveQueue interface.
|
||||||
type MockReceiveQueue struct {
|
type MockReceiveQueue struct {
|
||||||
ctrl *gomock.Controller
|
ctrl *gomock.Controller
|
||||||
|
|||||||
@ -200,11 +200,11 @@ func (s *syncTree) IterateFrom(id string, convert objecttree.ChangeConvertFunc,
|
|||||||
return s.ObjectTree.IterateFrom(id, convert, iterate)
|
return s.ObjectTree.IterateFrom(id, convert, iterate)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *syncTree) Iterate(convert objecttree.ChangeConvertFunc, iterate objecttree.ChangeIterateFunc) (err error) {
|
func (s *syncTree) IterateRoot(convert objecttree.ChangeConvertFunc, iterate objecttree.ChangeIterateFunc) (err error) {
|
||||||
if err = s.checkAlive(); err != nil {
|
if err = s.checkAlive(); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return s.ObjectTree.Iterate(convert, iterate)
|
return s.ObjectTree.IterateRoot(convert, iterate)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *syncTree) AddContent(ctx context.Context, content objecttree.SignableChangeContent) (res objecttree.AddResult, err error) {
|
func (s *syncTree) AddContent(ctx context.Context, content objecttree.SignableChangeContent) (res objecttree.AddResult, err error) {
|
||||||
|
|||||||
@ -89,35 +89,3 @@ func (t *inMemoryTreeStorage) GetRawChange(ctx context.Context, changeId string)
|
|||||||
func (t *inMemoryTreeStorage) Delete() error {
|
func (t *inMemoryTreeStorage) Delete() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type inMemoryStorageProvider struct {
|
|
||||||
objects map[string]TreeStorage
|
|
||||||
sync.RWMutex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *inMemoryStorageProvider) TreeStorage(id string) (TreeStorage, error) {
|
|
||||||
i.RLock()
|
|
||||||
defer i.RUnlock()
|
|
||||||
if tree, exists := i.objects[id]; exists {
|
|
||||||
return tree, nil
|
|
||||||
}
|
|
||||||
return nil, ErrUnknownTreeId
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *inMemoryStorageProvider) CreateTreeStorage(payload TreeStorageCreatePayload) (TreeStorage, error) {
|
|
||||||
i.Lock()
|
|
||||||
defer i.Unlock()
|
|
||||||
res, err := NewInMemoryTreeStorage(payload.RootRawChange, payload.Heads, payload.Changes)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
i.objects[payload.RootRawChange.Id] = res
|
|
||||||
return res, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewInMemoryTreeStorageProvider() Provider {
|
|
||||||
return &inMemoryStorageProvider{
|
|
||||||
objects: make(map[string]TreeStorage),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -1,23 +0,0 @@
|
|||||||
package treestorage
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
ErrUnknownTreeId = errors.New("tree does not exist")
|
|
||||||
ErrTreeExists = errors.New("tree already exists")
|
|
||||||
ErrUnknownChange = errors.New("change doesn't exist")
|
|
||||||
)
|
|
||||||
|
|
||||||
type TreeStorageCreatePayload struct {
|
|
||||||
RootRawChange *treechangeproto.RawTreeChangeWithId
|
|
||||||
Changes []*treechangeproto.RawTreeChangeWithId
|
|
||||||
Heads []string
|
|
||||||
}
|
|
||||||
|
|
||||||
type Provider interface {
|
|
||||||
TreeStorage(id string) (TreeStorage, error)
|
|
||||||
CreateTreeStorage(payload TreeStorageCreatePayload) (TreeStorage, error)
|
|
||||||
}
|
|
||||||
@ -2,9 +2,24 @@ package treestorage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrUnknownTreeId = errors.New("tree does not exist")
|
||||||
|
ErrTreeExists = errors.New("tree already exists")
|
||||||
|
ErrUnknownChange = errors.New("change doesn't exist")
|
||||||
|
)
|
||||||
|
|
||||||
|
type TreeStorageCreatePayload struct {
|
||||||
|
RootRawChange *treechangeproto.RawTreeChangeWithId
|
||||||
|
Changes []*treechangeproto.RawTreeChangeWithId
|
||||||
|
Heads []string
|
||||||
|
}
|
||||||
|
|
||||||
|
type TreeStorageCreatorFunc = func(payload TreeStorageCreatePayload) (TreeStorage, error)
|
||||||
|
|
||||||
type TreeStorage interface {
|
type TreeStorage interface {
|
||||||
Id() string
|
Id() string
|
||||||
Root() (*treechangeproto.RawTreeChangeWithId, error)
|
Root() (*treechangeproto.RawTreeChangeWithId, error)
|
||||||
@ -16,5 +31,3 @@ type TreeStorage interface {
|
|||||||
HasChange(ctx context.Context, id string) (bool, error)
|
HasChange(ctx context.Context, id string) (bool, error)
|
||||||
Delete() error
|
Delete() error
|
||||||
}
|
}
|
||||||
|
|
||||||
type TreeStorageCreatorFunc = func(payload TreeStorageCreatePayload) (TreeStorage, error)
|
|
||||||
|
|||||||
@ -31,7 +31,10 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ErrSpaceClosed = errors.New("space is closed")
|
var (
|
||||||
|
ErrSpaceClosed = errors.New("space is closed")
|
||||||
|
ErrPutNotImplemented = errors.New("put tree is not implemented")
|
||||||
|
)
|
||||||
|
|
||||||
type SpaceCreatePayload struct {
|
type SpaceCreatePayload struct {
|
||||||
// SigningKey is the signing key of the owner
|
// SigningKey is the signing key of the owner
|
||||||
@ -46,10 +49,6 @@ type SpaceCreatePayload struct {
|
|||||||
ReplicationKey uint64
|
ReplicationKey uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type spaceCtxKey int
|
|
||||||
|
|
||||||
const treePayloadKey spaceCtxKey = 0
|
|
||||||
|
|
||||||
const SpaceTypeDerived = "derived.space"
|
const SpaceTypeDerived = "derived.space"
|
||||||
|
|
||||||
type SpaceDerivePayload struct {
|
type SpaceDerivePayload struct {
|
||||||
@ -82,12 +81,14 @@ type Space interface {
|
|||||||
|
|
||||||
SpaceSyncRpc() RpcHandler
|
SpaceSyncRpc() RpcHandler
|
||||||
|
|
||||||
DeriveTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (objecttree.ObjectTree, error)
|
DeriveTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error)
|
||||||
CreateTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (objecttree.ObjectTree, error)
|
CreateTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error)
|
||||||
|
PutTree(ctx context.Context, payload treestorage.TreeStorageCreatePayload, listener updatelistener.UpdateListener) (t objecttree.ObjectTree, err error)
|
||||||
BuildTree(ctx context.Context, id string, listener updatelistener.UpdateListener) (objecttree.ObjectTree, error)
|
BuildTree(ctx context.Context, id string, listener updatelistener.UpdateListener) (objecttree.ObjectTree, error)
|
||||||
DeleteTree(ctx context.Context, id string) (err error)
|
DeleteTree(ctx context.Context, id string) (err error)
|
||||||
|
|
||||||
SyncStatus() syncstatus.StatusUpdater
|
SyncStatus() syncstatus.StatusUpdater
|
||||||
|
Storage() spacestorage.SpaceStorage
|
||||||
|
|
||||||
Close() error
|
Close() error
|
||||||
}
|
}
|
||||||
@ -217,6 +218,10 @@ func (s *space) SyncStatus() syncstatus.StatusUpdater {
|
|||||||
return s.syncStatus
|
return s.syncStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *space) Storage() spacestorage.SpaceStorage {
|
||||||
|
return s.storage
|
||||||
|
}
|
||||||
|
|
||||||
func (s *space) StoredIds() []string {
|
func (s *space) StoredIds() []string {
|
||||||
return s.headSync.AllIds()
|
return s.headSync.AllIds()
|
||||||
}
|
}
|
||||||
@ -225,7 +230,7 @@ func (s *space) DebugAllHeads() []headsync.TreeHeads {
|
|||||||
return s.headSync.DebugAllHeads()
|
return s.headSync.DebugAllHeads()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) DeriveTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (t objecttree.ObjectTree, err error) {
|
func (s *space) DeriveTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error) {
|
||||||
if s.isClosed.Load() {
|
if s.isClosed.Load() {
|
||||||
err = ErrSpaceClosed
|
err = ErrSpaceClosed
|
||||||
return
|
return
|
||||||
@ -234,18 +239,15 @@ func (s *space) DeriveTree(ctx context.Context, payload objecttree.ObjectTreeCre
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
res := treestorage.TreeStorageCreatePayload{
|
res = treestorage.TreeStorageCreatePayload{
|
||||||
RootRawChange: root,
|
RootRawChange: root,
|
||||||
Changes: []*treechangeproto.RawTreeChangeWithId{root},
|
Changes: []*treechangeproto.RawTreeChangeWithId{root},
|
||||||
Heads: []string{root.Id},
|
Heads: []string{root.Id},
|
||||||
}
|
}
|
||||||
ctx = context.WithValue(ctx, treePayloadKey, res)
|
return
|
||||||
// here we must be sure that the object is created synchronously,
|
|
||||||
// so there won't be any conflicts, therefore we do it through cache
|
|
||||||
return s.cache.GetTree(ctx, s.id, root.Id)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) CreateTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (t objecttree.ObjectTree, err error) {
|
func (s *space) CreateTree(ctx context.Context, payload objecttree.ObjectTreeCreatePayload) (res treestorage.TreeStorageCreatePayload, err error) {
|
||||||
if s.isClosed.Load() {
|
if s.isClosed.Load() {
|
||||||
err = ErrSpaceClosed
|
err = ErrSpaceClosed
|
||||||
return
|
return
|
||||||
@ -255,13 +257,36 @@ func (s *space) CreateTree(ctx context.Context, payload objecttree.ObjectTreeCre
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
res := treestorage.TreeStorageCreatePayload{
|
res = treestorage.TreeStorageCreatePayload{
|
||||||
RootRawChange: root,
|
RootRawChange: root,
|
||||||
Changes: []*treechangeproto.RawTreeChangeWithId{root},
|
Changes: []*treechangeproto.RawTreeChangeWithId{root},
|
||||||
Heads: []string{root.Id},
|
Heads: []string{root.Id},
|
||||||
}
|
}
|
||||||
ctx = context.WithValue(ctx, treePayloadKey, res)
|
return
|
||||||
return s.cache.GetTree(ctx, s.id, root.Id)
|
}
|
||||||
|
|
||||||
|
func (s *space) PutTree(ctx context.Context, payload treestorage.TreeStorageCreatePayload, listener updatelistener.UpdateListener) (t objecttree.ObjectTree, err error) {
|
||||||
|
if s.isClosed.Load() {
|
||||||
|
err = ErrSpaceClosed
|
||||||
|
return
|
||||||
|
}
|
||||||
|
deps := synctree.BuildDeps{
|
||||||
|
SpaceId: s.id,
|
||||||
|
ObjectSync: s.objectSync,
|
||||||
|
Configuration: s.configuration,
|
||||||
|
HeadNotifiable: s.headSync,
|
||||||
|
Listener: listener,
|
||||||
|
AclList: s.aclList,
|
||||||
|
SpaceStorage: s.storage,
|
||||||
|
TreeUsage: &s.treesUsed,
|
||||||
|
SyncStatus: s.syncStatus,
|
||||||
|
}
|
||||||
|
t, err = synctree.PutSyncTree(ctx, payload, deps)
|
||||||
|
// this can happen only for derived trees, when we've synced same tree already
|
||||||
|
if err == treestorage.ErrTreeExists {
|
||||||
|
return synctree.BuildSyncTreeOrGetRemote(ctx, payload.RootRawChange.Id, deps)
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) BuildTree(ctx context.Context, id string, listener updatelistener.UpdateListener) (t objecttree.ObjectTree, err error) {
|
func (s *space) BuildTree(ctx context.Context, id string, listener updatelistener.UpdateListener) (t objecttree.ObjectTree, err error) {
|
||||||
@ -269,9 +294,6 @@ func (s *space) BuildTree(ctx context.Context, id string, listener updatelistene
|
|||||||
err = ErrSpaceClosed
|
err = ErrSpaceClosed
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if payload, exists := ctx.Value(treePayloadKey).(treestorage.TreeStorageCreatePayload); exists {
|
|
||||||
return s.putTree(ctx, payload, listener)
|
|
||||||
}
|
|
||||||
|
|
||||||
deps := synctree.BuildDeps{
|
deps := synctree.BuildDeps{
|
||||||
SpaceId: s.id,
|
SpaceId: s.id,
|
||||||
@ -319,27 +341,3 @@ func (s *space) Close() error {
|
|||||||
|
|
||||||
return mError.Err()
|
return mError.Err()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) putTree(ctx context.Context, payload treestorage.TreeStorageCreatePayload, listener updatelistener.UpdateListener) (t objecttree.ObjectTree, err error) {
|
|
||||||
if s.isClosed.Load() {
|
|
||||||
err = ErrSpaceClosed
|
|
||||||
return
|
|
||||||
}
|
|
||||||
deps := synctree.BuildDeps{
|
|
||||||
SpaceId: s.id,
|
|
||||||
ObjectSync: s.objectSync,
|
|
||||||
Configuration: s.configuration,
|
|
||||||
HeadNotifiable: s.headSync,
|
|
||||||
Listener: listener,
|
|
||||||
AclList: s.aclList,
|
|
||||||
SpaceStorage: s.storage,
|
|
||||||
TreeUsage: &s.treesUsed,
|
|
||||||
SyncStatus: s.syncStatus,
|
|
||||||
}
|
|
||||||
t, err = synctree.PutSyncTree(ctx, payload, deps)
|
|
||||||
// this can happen only for derived trees, when we've synced same tree already
|
|
||||||
if err == treestorage.ErrTreeExists {
|
|
||||||
return synctree.BuildSyncTreeOrGetRemote(ctx, payload.RootRawChange.Id, deps)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|||||||
@ -68,6 +68,9 @@ func (s *spaceService) CreateSpace(ctx context.Context, payload SpaceCreatePaylo
|
|||||||
}
|
}
|
||||||
store, err := s.storageProvider.CreateSpaceStorage(storageCreate)
|
store, err := s.storageProvider.CreateSpaceStorage(storageCreate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if err == spacestorage.ErrSpaceStorageExists {
|
||||||
|
return storageCreate.SpaceHeaderWithId.Id, nil
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +84,9 @@ func (s *spaceService) DeriveSpace(ctx context.Context, payload SpaceDerivePaylo
|
|||||||
}
|
}
|
||||||
store, err := s.storageProvider.CreateSpaceStorage(storageCreate)
|
store, err := s.storageProvider.CreateSpaceStorage(storageCreate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if err == spacestorage.ErrSpaceStorageExists {
|
||||||
|
return storageCreate.SpaceHeaderWithId.Id, nil
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// Code generated by MockGen. DO NOT EDIT.
|
// Code generated by MockGen. DO NOT EDIT.
|
||||||
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage (interfaces: SpaceStorageProvider,SpaceStorage)
|
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage (interfaces: SpaceStorage)
|
||||||
|
|
||||||
// Package mock_spacestorage is a generated GoMock package.
|
// Package mock_spacestorage is a generated GoMock package.
|
||||||
package mock_spacestorage
|
package mock_spacestorage
|
||||||
@ -7,95 +7,13 @@ package mock_spacestorage
|
|||||||
import (
|
import (
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
|
|
||||||
app "github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
|
|
||||||
liststorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/acl/liststorage"
|
liststorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/acl/liststorage"
|
||||||
|
treechangeproto "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
|
||||||
treestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage"
|
treestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage"
|
||||||
spacestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
|
|
||||||
spacesyncproto "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
|
spacesyncproto "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
|
||||||
gomock "github.com/golang/mock/gomock"
|
gomock "github.com/golang/mock/gomock"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MockSpaceStorageProvider is a mock of SpaceStorageProvider interface.
|
|
||||||
type MockSpaceStorageProvider struct {
|
|
||||||
ctrl *gomock.Controller
|
|
||||||
recorder *MockSpaceStorageProviderMockRecorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockSpaceStorageProviderMockRecorder is the mock recorder for MockSpaceStorageProvider.
|
|
||||||
type MockSpaceStorageProviderMockRecorder struct {
|
|
||||||
mock *MockSpaceStorageProvider
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMockSpaceStorageProvider creates a new mock instance.
|
|
||||||
func NewMockSpaceStorageProvider(ctrl *gomock.Controller) *MockSpaceStorageProvider {
|
|
||||||
mock := &MockSpaceStorageProvider{ctrl: ctrl}
|
|
||||||
mock.recorder = &MockSpaceStorageProviderMockRecorder{mock}
|
|
||||||
return mock
|
|
||||||
}
|
|
||||||
|
|
||||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
|
||||||
func (m *MockSpaceStorageProvider) EXPECT() *MockSpaceStorageProviderMockRecorder {
|
|
||||||
return m.recorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateSpaceStorage mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) CreateSpaceStorage(arg0 spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "CreateSpaceStorage", arg0)
|
|
||||||
ret0, _ := ret[0].(spacestorage.SpaceStorage)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateSpaceStorage indicates an expected call of CreateSpaceStorage.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) CreateSpaceStorage(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSpaceStorage", reflect.TypeOf((*MockSpaceStorageProvider)(nil).CreateSpaceStorage), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Init mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) Init(arg0 *app.App) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Init", arg0)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Init indicates an expected call of Init.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) Init(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init", reflect.TypeOf((*MockSpaceStorageProvider)(nil).Init), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Name mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) Name() string {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Name")
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Name indicates an expected call of Name.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) Name() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Name", reflect.TypeOf((*MockSpaceStorageProvider)(nil).Name))
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceStorage mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) SpaceStorage(arg0 string) (spacestorage.SpaceStorage, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "SpaceStorage", arg0)
|
|
||||||
ret0, _ := ret[0].(spacestorage.SpaceStorage)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceStorage indicates an expected call of SpaceStorage.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) SpaceStorage(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpaceStorage", reflect.TypeOf((*MockSpaceStorageProvider)(nil).SpaceStorage), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockSpaceStorage is a mock of SpaceStorage interface.
|
// MockSpaceStorage is a mock of SpaceStorage interface.
|
||||||
type MockSpaceStorage struct {
|
type MockSpaceStorage struct {
|
||||||
ctrl *gomock.Controller
|
ctrl *gomock.Controller
|
||||||
@ -250,6 +168,21 @@ func (mr *MockSpaceStorageMockRecorder) TreeDeletedStatus(arg0 interface{}) *gom
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeDeletedStatus", reflect.TypeOf((*MockSpaceStorage)(nil).TreeDeletedStatus), arg0)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeDeletedStatus", reflect.TypeOf((*MockSpaceStorage)(nil).TreeDeletedStatus), arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TreeRoot mocks base method.
|
||||||
|
func (m *MockSpaceStorage) TreeRoot(arg0 string) (*treechangeproto.RawTreeChangeWithId, error) {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "TreeRoot", arg0)
|
||||||
|
ret0, _ := ret[0].(*treechangeproto.RawTreeChangeWithId)
|
||||||
|
ret1, _ := ret[1].(error)
|
||||||
|
return ret0, ret1
|
||||||
|
}
|
||||||
|
|
||||||
|
// TreeRoot indicates an expected call of TreeRoot.
|
||||||
|
func (mr *MockSpaceStorageMockRecorder) TreeRoot(arg0 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeRoot", reflect.TypeOf((*MockSpaceStorage)(nil).TreeRoot), arg0)
|
||||||
|
}
|
||||||
|
|
||||||
// TreeStorage mocks base method.
|
// TreeStorage mocks base method.
|
||||||
func (m *MockSpaceStorage) TreeStorage(arg0 string) (treestorage.TreeStorage, error) {
|
func (m *MockSpaceStorage) TreeStorage(arg0 string) (treestorage.TreeStorage, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -1,266 +0,0 @@
|
|||||||
// Code generated by MockGen. DO NOT EDIT.
|
|
||||||
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage (interfaces: SpaceStorageProvider,SpaceStorage)
|
|
||||||
|
|
||||||
// Package mock_storage is a generated GoMock package.
|
|
||||||
package mock_spacestorage
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/acl/liststorage"
|
|
||||||
storage3 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treestorage"
|
|
||||||
reflect "reflect"
|
|
||||||
|
|
||||||
app "github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
|
|
||||||
storage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
|
|
||||||
spacesyncproto "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
|
|
||||||
gomock "github.com/golang/mock/gomock"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MockSpaceStorageProvider is a mock of SpaceStorageProvider interface.
|
|
||||||
type MockSpaceStorageProvider struct {
|
|
||||||
ctrl *gomock.Controller
|
|
||||||
recorder *MockSpaceStorageProviderMockRecorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockSpaceStorageProviderMockRecorder is the mock recorder for MockSpaceStorageProvider.
|
|
||||||
type MockSpaceStorageProviderMockRecorder struct {
|
|
||||||
mock *MockSpaceStorageProvider
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMockSpaceStorageProvider creates a new mock instance.
|
|
||||||
func NewMockSpaceStorageProvider(ctrl *gomock.Controller) *MockSpaceStorageProvider {
|
|
||||||
mock := &MockSpaceStorageProvider{ctrl: ctrl}
|
|
||||||
mock.recorder = &MockSpaceStorageProviderMockRecorder{mock}
|
|
||||||
return mock
|
|
||||||
}
|
|
||||||
|
|
||||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
|
||||||
func (m *MockSpaceStorageProvider) EXPECT() *MockSpaceStorageProviderMockRecorder {
|
|
||||||
return m.recorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateSpaceStorage mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) CreateSpaceStorage(arg0 storage.SpaceStorageCreatePayload) (storage.SpaceStorage, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "CreateSpaceStorage", arg0)
|
|
||||||
ret0, _ := ret[0].(storage.SpaceStorage)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateSpaceStorage indicates an expected call of CreateSpaceStorage.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) CreateSpaceStorage(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSpaceStorage", reflect.TypeOf((*MockSpaceStorageProvider)(nil).CreateSpaceStorage), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Init mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) Init(arg0 *app.App) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Init", arg0)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Init indicates an expected call of Init.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) Init(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Init", reflect.TypeOf((*MockSpaceStorageProvider)(nil).Init), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Name mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) Name() string {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Name")
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Name indicates an expected call of Name.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) Name() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Name", reflect.TypeOf((*MockSpaceStorageProvider)(nil).Name))
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceStorage mocks base method.
|
|
||||||
func (m *MockSpaceStorageProvider) SpaceStorage(arg0 string) (storage.SpaceStorage, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "SpaceStorage", arg0)
|
|
||||||
ret0, _ := ret[0].(storage.SpaceStorage)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceStorage indicates an expected call of SpaceStorage.
|
|
||||||
func (mr *MockSpaceStorageProviderMockRecorder) SpaceStorage(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpaceStorage", reflect.TypeOf((*MockSpaceStorageProvider)(nil).SpaceStorage), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockSpaceStorage is a mock of SpaceStorage interface.
|
|
||||||
type MockSpaceStorage struct {
|
|
||||||
ctrl *gomock.Controller
|
|
||||||
recorder *MockSpaceStorageMockRecorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockSpaceStorageMockRecorder is the mock recorder for MockSpaceStorage.
|
|
||||||
type MockSpaceStorageMockRecorder struct {
|
|
||||||
mock *MockSpaceStorage
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMockSpaceStorage creates a new mock instance.
|
|
||||||
func NewMockSpaceStorage(ctrl *gomock.Controller) *MockSpaceStorage {
|
|
||||||
mock := &MockSpaceStorage{ctrl: ctrl}
|
|
||||||
mock.recorder = &MockSpaceStorageMockRecorder{mock}
|
|
||||||
return mock
|
|
||||||
}
|
|
||||||
|
|
||||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
|
||||||
func (m *MockSpaceStorage) EXPECT() *MockSpaceStorageMockRecorder {
|
|
||||||
return m.recorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// AclStorage mocks base method.
|
|
||||||
func (m *MockSpaceStorage) AclStorage() (liststorage.ListStorage, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "AclStorage")
|
|
||||||
ret0, _ := ret[0].(liststorage.ListStorage)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// AclStorage indicates an expected call of AclStorage.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) AclStorage() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AclStorage", reflect.TypeOf((*MockSpaceStorage)(nil).AclStorage))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close mocks base method.
|
|
||||||
func (m *MockSpaceStorage) Close() error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Close")
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close indicates an expected call of Close.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) Close() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockSpaceStorage)(nil).Close))
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateTreeStorage mocks base method.
|
|
||||||
func (m *MockSpaceStorage) CreateTreeStorage(arg0 storage3.TreeStorageCreatePayload) (storage3.TreeStorage, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "CreateTreeStorage", arg0)
|
|
||||||
ret0, _ := ret[0].(storage3.TreeStorage)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateTreeStorage indicates an expected call of CreateTreeStorage.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) CreateTreeStorage(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTreeStorage", reflect.TypeOf((*MockSpaceStorage)(nil).CreateTreeStorage), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Id mocks base method.
|
|
||||||
func (m *MockSpaceStorage) Id() string {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Id")
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Id indicates an expected call of Id.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) Id() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Id", reflect.TypeOf((*MockSpaceStorage)(nil).Id))
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetTreeDeletedStatus mocks base method.
|
|
||||||
func (m *MockSpaceStorage) SetTreeDeletedStatus(arg0, arg1 string) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "SetTreeDeletedStatus", arg0, arg1)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetTreeDeletedStatus indicates an expected call of SetTreeDeletedStatus.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) SetTreeDeletedStatus(arg0, arg1 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTreeDeletedStatus", reflect.TypeOf((*MockSpaceStorage)(nil).SetTreeDeletedStatus), arg0, arg1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceHeader mocks base method.
|
|
||||||
func (m *MockSpaceStorage) SpaceHeader() (*spacesyncproto.RawSpaceHeaderWithId, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "SpaceHeader")
|
|
||||||
ret0, _ := ret[0].(*spacesyncproto.RawSpaceHeaderWithId)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceHeader indicates an expected call of SpaceHeader.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) SpaceHeader() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpaceHeader", reflect.TypeOf((*MockSpaceStorage)(nil).SpaceHeader))
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceSettingsId mocks base method.
|
|
||||||
func (m *MockSpaceStorage) SpaceSettingsId() string {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "SpaceSettingsId")
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpaceSettingsId indicates an expected call of SpaceSettingsId.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) SpaceSettingsId() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpaceSettingsId", reflect.TypeOf((*MockSpaceStorage)(nil).SpaceSettingsId))
|
|
||||||
}
|
|
||||||
|
|
||||||
// StoredIds mocks base method.
|
|
||||||
func (m *MockSpaceStorage) StoredIds() ([]string, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "StoredIds")
|
|
||||||
ret0, _ := ret[0].([]string)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// StoredIds indicates an expected call of StoredIds.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) StoredIds() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StoredIds", reflect.TypeOf((*MockSpaceStorage)(nil).StoredIds))
|
|
||||||
}
|
|
||||||
|
|
||||||
// TreeDeletedStatus mocks base method.
|
|
||||||
func (m *MockSpaceStorage) TreeDeletedStatus(arg0 string) (string, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "TreeDeletedStatus", arg0)
|
|
||||||
ret0, _ := ret[0].(string)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// TreeDeletedStatus indicates an expected call of TreeDeletedStatus.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) TreeDeletedStatus(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeDeletedStatus", reflect.TypeOf((*MockSpaceStorage)(nil).TreeDeletedStatus), arg0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// TreeStorage mocks base method.
|
|
||||||
func (m *MockSpaceStorage) TreeStorage(arg0 string) (storage3.TreeStorage, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "TreeStorage", arg0)
|
|
||||||
ret0, _ := ret[0].(storage3.TreeStorage)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// TreeStorage indicates an expected call of TreeStorage.
|
|
||||||
func (mr *MockSpaceStorageMockRecorder) TreeStorage(arg0 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TreeStorage", reflect.TypeOf((*MockSpaceStorage)(nil).TreeStorage), arg0)
|
|
||||||
}
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
//go:generate mockgen -destination mock_storage/mock_storage.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage SpaceStorageProvider,SpaceStorage
|
//go:generate mockgen -destination mock_spacestorage/mock_spacestorage.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage SpaceStorage
|
||||||
package spacestorage
|
package spacestorage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -27,7 +27,6 @@ const (
|
|||||||
|
|
||||||
// TODO: consider moving to some file with all common interfaces etc
|
// TODO: consider moving to some file with all common interfaces etc
|
||||||
type SpaceStorage interface {
|
type SpaceStorage interface {
|
||||||
treestorage.Provider
|
|
||||||
Id() string
|
Id() string
|
||||||
SetTreeDeletedStatus(id, state string) error
|
SetTreeDeletedStatus(id, state string) error
|
||||||
TreeDeletedStatus(id string) (string, error)
|
TreeDeletedStatus(id string) (string, error)
|
||||||
@ -36,6 +35,9 @@ type SpaceStorage interface {
|
|||||||
SpaceHeader() (*spacesyncproto.RawSpaceHeaderWithId, error)
|
SpaceHeader() (*spacesyncproto.RawSpaceHeaderWithId, error)
|
||||||
StoredIds() ([]string, error)
|
StoredIds() ([]string, error)
|
||||||
Close() error
|
Close() error
|
||||||
|
TreeRoot(id string) (*treechangeproto.RawTreeChangeWithId, error)
|
||||||
|
TreeStorage(id string) (treestorage.TreeStorage, error)
|
||||||
|
CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (treestorage.TreeStorage, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type SpaceStorageCreatePayload struct {
|
type SpaceStorageCreatePayload struct {
|
||||||
@ -7,7 +7,7 @@ require (
|
|||||||
github.com/anytypeio/go-chash v0.0.0-20220629194632-4ad1154fe232
|
github.com/anytypeio/go-chash v0.0.0-20220629194632-4ad1154fe232
|
||||||
github.com/awalterschulze/gographviz v2.0.3+incompatible
|
github.com/awalterschulze/gographviz v2.0.3+incompatible
|
||||||
github.com/cespare/xxhash v1.1.0
|
github.com/cespare/xxhash v1.1.0
|
||||||
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c
|
github.com/cheggaaa/mb/v3 v3.0.0
|
||||||
github.com/goccy/go-graphviz v0.0.9
|
github.com/goccy/go-graphviz v0.0.9
|
||||||
github.com/gogo/protobuf v1.3.2
|
github.com/gogo/protobuf v1.3.2
|
||||||
github.com/golang/mock v1.6.0
|
github.com/golang/mock v1.6.0
|
||||||
|
|||||||
@ -60,8 +60,8 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf
|
|||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c h1:+bD75daSbsxyTzkKpNplC4xls+7/tGwty+zruzOnOmk=
|
github.com/cheggaaa/mb/v3 v3.0.0 h1:+FkV4fAefQfJSsfMtWC9cnSrVYKd3TXcerPTwRuWWfE=
|
||||||
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c/go.mod h1:zCt2QeYukhd/g0bIdNqF+b/kKz1hnLFNDkP49qN5kqI=
|
github.com/cheggaaa/mb/v3 v3.0.0/go.mod h1:zCt2QeYukhd/g0bIdNqF+b/kKz1hnLFNDkP49qN5kqI=
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
//go:generate mockgen -destination mock_nodeconf/mock_nodeconf.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf Service,Configuration,ConfConnector
|
//go:generate mockgen -destination mock_nodeconf/mock_nodeconf.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf Service,Configuration
|
||||||
package nodeconf
|
package nodeconf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|||||||
@ -1,16 +1,13 @@
|
|||||||
// Code generated by MockGen. DO NOT EDIT.
|
// Code generated by MockGen. DO NOT EDIT.
|
||||||
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf (interfaces: Service,Configuration,ConfConnector)
|
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf (interfaces: Service,Configuration)
|
||||||
|
|
||||||
// Package mock_nodeconf is a generated GoMock package.
|
// Package mock_nodeconf is a generated GoMock package.
|
||||||
package mock_nodeconf
|
package mock_nodeconf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
context "context"
|
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
|
|
||||||
app "github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
|
app "github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
|
||||||
peer "github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
|
|
||||||
pool "github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"
|
|
||||||
nodeconf "github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
|
nodeconf "github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
|
||||||
gomock "github.com/golang/mock/gomock"
|
gomock "github.com/golang/mock/gomock"
|
||||||
)
|
)
|
||||||
@ -117,6 +114,20 @@ func (m *MockConfiguration) EXPECT() *MockConfigurationMockRecorder {
|
|||||||
return m.recorder
|
return m.recorder
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Addresses mocks base method.
|
||||||
|
func (m *MockConfiguration) Addresses() map[string][]string {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "Addresses")
|
||||||
|
ret0, _ := ret[0].(map[string][]string)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Addresses indicates an expected call of Addresses.
|
||||||
|
func (mr *MockConfigurationMockRecorder) Addresses() *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Addresses", reflect.TypeOf((*MockConfiguration)(nil).Addresses))
|
||||||
|
}
|
||||||
|
|
||||||
// ConsensusPeers mocks base method.
|
// ConsensusPeers mocks base method.
|
||||||
func (m *MockConfiguration) ConsensusPeers() []string {
|
func (m *MockConfiguration) ConsensusPeers() []string {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@ -186,84 +197,3 @@ func (mr *MockConfigurationMockRecorder) NodeIds(arg0 interface{}) *gomock.Call
|
|||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NodeIds", reflect.TypeOf((*MockConfiguration)(nil).NodeIds), arg0)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NodeIds", reflect.TypeOf((*MockConfiguration)(nil).NodeIds), arg0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MockConfConnector is a mock of ConfConnector interface.
|
|
||||||
type MockConfConnector struct {
|
|
||||||
ctrl *gomock.Controller
|
|
||||||
recorder *MockConfConnectorMockRecorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// MockConfConnectorMockRecorder is the mock recorder for MockConfConnector.
|
|
||||||
type MockConfConnectorMockRecorder struct {
|
|
||||||
mock *MockConfConnector
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMockConfConnector creates a new mock instance.
|
|
||||||
func NewMockConfConnector(ctrl *gomock.Controller) *MockConfConnector {
|
|
||||||
mock := &MockConfConnector{ctrl: ctrl}
|
|
||||||
mock.recorder = &MockConfConnectorMockRecorder{mock}
|
|
||||||
return mock
|
|
||||||
}
|
|
||||||
|
|
||||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
|
||||||
func (m *MockConfConnector) EXPECT() *MockConfConnectorMockRecorder {
|
|
||||||
return m.recorder
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configuration mocks base method.
|
|
||||||
func (m *MockConfConnector) Configuration() nodeconf.Configuration {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Configuration")
|
|
||||||
ret0, _ := ret[0].(nodeconf.Configuration)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configuration indicates an expected call of Configuration.
|
|
||||||
func (mr *MockConfConnectorMockRecorder) Configuration() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Configuration", reflect.TypeOf((*MockConfConnector)(nil).Configuration))
|
|
||||||
}
|
|
||||||
|
|
||||||
// DialInactiveResponsiblePeers mocks base method.
|
|
||||||
func (m *MockConfConnector) DialInactiveResponsiblePeers(arg0 context.Context, arg1 string, arg2 []string) ([]peer.Peer, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "DialInactiveResponsiblePeers", arg0, arg1, arg2)
|
|
||||||
ret0, _ := ret[0].([]peer.Peer)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// DialInactiveResponsiblePeers indicates an expected call of DialInactiveResponsiblePeers.
|
|
||||||
func (mr *MockConfConnectorMockRecorder) DialInactiveResponsiblePeers(arg0, arg1, arg2 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DialInactiveResponsiblePeers", reflect.TypeOf((*MockConfConnector)(nil).DialInactiveResponsiblePeers), arg0, arg1, arg2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetResponsiblePeers mocks base method.
|
|
||||||
func (m *MockConfConnector) GetResponsiblePeers(arg0 context.Context, arg1 string) ([]peer.Peer, error) {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "GetResponsiblePeers", arg0, arg1)
|
|
||||||
ret0, _ := ret[0].([]peer.Peer)
|
|
||||||
ret1, _ := ret[1].(error)
|
|
||||||
return ret0, ret1
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetResponsiblePeers indicates an expected call of GetResponsiblePeers.
|
|
||||||
func (mr *MockConfConnectorMockRecorder) GetResponsiblePeers(arg0, arg1 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetResponsiblePeers", reflect.TypeOf((*MockConfConnector)(nil).GetResponsiblePeers), arg0, arg1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pool mocks base method.
|
|
||||||
func (m *MockConfConnector) Pool() pool.Pool {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "Pool")
|
|
||||||
ret0, _ := ret[0].(pool.Pool)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pool indicates an expected call of Pool.
|
|
||||||
func (mr *MockConfConnectorMockRecorder) Pool() *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Pool", reflect.TypeOf((*MockConfConnector)(nil).Pool))
|
|
||||||
}
|
|
||||||
|
|||||||
@ -178,6 +178,10 @@ func (s *spaceStorage) TreeStorage(id string) (treestorage.TreeStorage, error) {
|
|||||||
return newTreeStorage(s.objDb, id)
|
return newTreeStorage(s.objDb, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *spaceStorage) TreeRoot(id string) (*treechangeproto.RawTreeChangeWithId, error) {
|
||||||
|
panic("should not be implemented")
|
||||||
|
}
|
||||||
|
|
||||||
func (s *spaceStorage) CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (ts treestorage.TreeStorage, err error) {
|
func (s *spaceStorage) CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (ts treestorage.TreeStorage, err error) {
|
||||||
return createTreeStorage(s.objDb, payload)
|
return createTreeStorage(s.objDb, payload)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user