Further components rearrange
This commit is contained in:
parent
eeb87dd144
commit
796b66478b
@ -73,7 +73,7 @@ func (h *headSync) Init(a *app.App) (err error) {
|
|||||||
h.syncPeriod = cfg.GetSpace().SyncPeriod
|
h.syncPeriod = cfg.GetSpace().SyncPeriod
|
||||||
h.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
h.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
||||||
h.log = log.With(zap.String("spaceId", h.spaceId))
|
h.log = log.With(zap.String("spaceId", h.spaceId))
|
||||||
h.storage = a.MustComponent("spacestorage").(spacestorage.SpaceStorage)
|
h.storage = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||||
h.diff = ldiff.New(16, 16)
|
h.diff = ldiff.New(16, 16)
|
||||||
h.peerManager = a.MustComponent(peermanager.CName).(peermanager.PeerManager)
|
h.peerManager = a.MustComponent(peermanager.CName).(peermanager.PeerManager)
|
||||||
h.credentialProvider = a.MustComponent(credentialprovider.CName).(credentialprovider.CredentialProvider)
|
h.credentialProvider = a.MustComponent(credentialprovider.CName).(credentialprovider.CredentialProvider)
|
||||||
|
|||||||
@ -1,18 +1,39 @@
|
|||||||
package syncacl
|
package syncacl
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/anyproto/any-sync/accountservice"
|
||||||
|
"github.com/anyproto/any-sync/app"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
"github.com/anyproto/any-sync/commonspace/objectsync/synchandler"
|
"github.com/anyproto/any-sync/commonspace/spacestorage"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/spacesyncproto"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const CName = "common.acl.syncacl"
|
||||||
|
|
||||||
|
func New() *SyncAcl {
|
||||||
|
return &SyncAcl{}
|
||||||
|
}
|
||||||
|
|
||||||
type SyncAcl struct {
|
type SyncAcl struct {
|
||||||
list.AclList
|
list.AclList
|
||||||
synchandler.SyncHandler
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSyncAcl(aclList list.AclList) *SyncAcl {
|
func (s *SyncAcl) HandleMessage(ctx context.Context, senderId string, request *spacesyncproto.ObjectSyncMessage) (err error) {
|
||||||
return &SyncAcl{
|
return nil
|
||||||
AclList: aclList,
|
|
||||||
SyncHandler: nil,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SyncAcl) Init(a *app.App) (err error) {
|
||||||
|
storage := a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||||
|
aclStorage, err := storage.AclStorage()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
acc := a.MustComponent(accountservice.CName).(accountservice.Service)
|
||||||
|
s.AclList, err = list.BuildAclListWithIdentity(acc.Account(), aclStorage)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *SyncAcl) Name() (name string) {
|
||||||
|
return CName
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,9 +3,11 @@ package commonspace
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/anyproto/any-sync/app"
|
"github.com/anyproto/any-sync/app"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/syncacl"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/syncobjectgetter"
|
"github.com/anyproto/any-sync/commonspace/object/syncobjectgetter"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/treemanager"
|
"github.com/anyproto/any-sync/commonspace/object/treemanager"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/settings"
|
||||||
"github.com/anyproto/any-sync/commonspace/spacestate"
|
"github.com/anyproto/any-sync/commonspace/spacestate"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
)
|
)
|
||||||
@ -29,37 +31,41 @@ func NewObjectManager(manager treemanager.TreeManager) ObjectManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *objectManager) Init(a *app.App) (err error) {
|
func (o *objectManager) Init(a *app.App) (err error) {
|
||||||
state := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
state := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
||||||
c.spaceId = state.SpaceId
|
o.spaceId = state.SpaceId
|
||||||
c.spaceIsClosed = state.SpaceIsClosed
|
o.spaceIsClosed = state.SpaceIsClosed
|
||||||
|
settingsObject := a.MustComponent(settings.CName).(settings.Settings).SettingsObject()
|
||||||
|
acl := a.MustComponent(syncacl.CName).(*syncacl.SyncAcl)
|
||||||
|
o.AddObject(settingsObject)
|
||||||
|
o.AddObject(acl)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *objectManager) Run(ctx context.Context) (err error) {
|
func (o *objectManager) Run(ctx context.Context) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *objectManager) Close(ctx context.Context) (err error) {
|
func (o *objectManager) Close(ctx context.Context) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *objectManager) AddObject(object syncobjectgetter.SyncObject) {
|
func (o *objectManager) AddObject(object syncobjectgetter.SyncObject) {
|
||||||
c.reservedObjects = append(c.reservedObjects, object)
|
o.reservedObjects = append(o.reservedObjects, object)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *objectManager) GetTree(ctx context.Context, spaceId, treeId string) (objecttree.ObjectTree, error) {
|
func (o *objectManager) GetTree(ctx context.Context, spaceId, treeId string) (objecttree.ObjectTree, error) {
|
||||||
if c.spaceIsClosed.Load() {
|
if o.spaceIsClosed.Load() {
|
||||||
return nil, ErrSpaceClosed
|
return nil, ErrSpaceClosed
|
||||||
}
|
}
|
||||||
if obj := c.getReservedObject(treeId); obj != nil {
|
if obj := o.getReservedObject(treeId); obj != nil {
|
||||||
return obj.(objecttree.ObjectTree), nil
|
return obj.(objecttree.ObjectTree), nil
|
||||||
}
|
}
|
||||||
return c.TreeManager.GetTree(ctx, spaceId, treeId)
|
return o.TreeManager.GetTree(ctx, spaceId, treeId)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *objectManager) getReservedObject(id string) syncobjectgetter.SyncObject {
|
func (o *objectManager) getReservedObject(id string) syncobjectgetter.SyncObject {
|
||||||
for _, obj := range c.reservedObjects {
|
for _, obj := range o.reservedObjects {
|
||||||
if obj != nil && obj.Id() == id {
|
if obj != nil && obj.Id() == id {
|
||||||
return obj
|
return obj
|
||||||
}
|
}
|
||||||
@ -67,14 +73,14 @@ func (c *objectManager) getReservedObject(id string) syncobjectgetter.SyncObject
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *objectManager) GetObject(ctx context.Context, objectId string) (obj syncobjectgetter.SyncObject, err error) {
|
func (o *objectManager) GetObject(ctx context.Context, objectId string) (obj syncobjectgetter.SyncObject, err error) {
|
||||||
if c.spaceIsClosed.Load() {
|
if o.spaceIsClosed.Load() {
|
||||||
return nil, ErrSpaceClosed
|
return nil, ErrSpaceClosed
|
||||||
}
|
}
|
||||||
if obj := c.getReservedObject(objectId); obj != nil {
|
if obj := o.getReservedObject(objectId); obj != nil {
|
||||||
return obj, nil
|
return obj, nil
|
||||||
}
|
}
|
||||||
t, err := c.TreeManager.GetTree(ctx, c.spaceId, objectId)
|
t, err := o.TreeManager.GetTree(ctx, o.spaceId, objectId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -69,6 +69,7 @@ type objectSync struct {
|
|||||||
|
|
||||||
func (s *objectSync) Init(a *app.App) (err error) {
|
func (s *objectSync) Init(a *app.App) (err error) {
|
||||||
s.syncClient = a.MustComponent(syncclient.CName).(syncclient.SyncClient)
|
s.syncClient = a.MustComponent(syncclient.CName).(syncclient.SyncClient)
|
||||||
|
s.spaceStorage = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||||
s.objectGetter = a.MustComponent(treemanager.CName).(treemanager.TreeManager).(syncobjectgetter.SyncObjectGetter)
|
s.objectGetter = a.MustComponent(treemanager.CName).(treemanager.TreeManager).(syncobjectgetter.SyncObjectGetter)
|
||||||
s.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
s.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
||||||
sharedData := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
sharedData := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/anyproto/any-sync/app/logger"
|
"github.com/anyproto/any-sync/app/logger"
|
||||||
"github.com/anyproto/any-sync/commonspace/headsync"
|
"github.com/anyproto/any-sync/commonspace/headsync"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anyproto/any-sync/commonspace/object/acl/syncacl"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/synctree"
|
"github.com/anyproto/any-sync/commonspace/object/tree/synctree"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/synctree/updatelistener"
|
"github.com/anyproto/any-sync/commonspace/object/tree/synctree/updatelistener"
|
||||||
@ -76,14 +77,13 @@ type treeBuilder struct {
|
|||||||
func (t *treeBuilder) Init(a *app.App) (err error) {
|
func (t *treeBuilder) Init(a *app.App) (err error) {
|
||||||
state := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
state := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
||||||
t.spaceId = state.SpaceId
|
t.spaceId = state.SpaceId
|
||||||
t.aclList = state.AclList
|
|
||||||
t.isClosed = state.SpaceIsClosed
|
t.isClosed = state.SpaceIsClosed
|
||||||
t.spaceStorage = state.SpaceStorage
|
|
||||||
t.treesUsed = state.TreesUsed
|
t.treesUsed = state.TreesUsed
|
||||||
t.builder = state.TreeBuilderFunc
|
t.builder = state.TreeBuilderFunc
|
||||||
|
t.aclList = a.MustComponent(syncacl.CName).(*syncacl.SyncAcl)
|
||||||
|
t.spaceStorage = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||||
t.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
t.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
||||||
t.headsNotifiable = a.MustComponent(headsync.CName).(headsync.HeadSync)
|
t.headsNotifiable = a.MustComponent(headsync.CName).(headsync.HeadSync)
|
||||||
t.spaceStorage = state.SpaceStorage
|
|
||||||
t.syncStatus = a.MustComponent(syncstatus.CName).(syncstatus.StatusUpdater)
|
t.syncStatus = a.MustComponent(syncstatus.CName).(syncstatus.StatusUpdater)
|
||||||
t.peerManager = a.MustComponent(peermanager.CName).(peermanager.PeerManager)
|
t.peerManager = a.MustComponent(peermanager.CName).(peermanager.PeerManager)
|
||||||
t.objectSync = a.MustComponent(objectsync.CName).(objectsync.ObjectSync)
|
t.objectSync = a.MustComponent(objectsync.CName).(objectsync.ObjectSync)
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import (
|
|||||||
const CName = "common.commonspace.peermanager"
|
const CName = "common.commonspace.peermanager"
|
||||||
|
|
||||||
type PeerManager interface {
|
type PeerManager interface {
|
||||||
|
app.Component
|
||||||
// SendPeer sends a message to a stream by peerId
|
// SendPeer sends a message to a stream by peerId
|
||||||
SendPeer(ctx context.Context, peerId string, msg *spacesyncproto.ObjectSyncMessage) (err error)
|
SendPeer(ctx context.Context, peerId string, msg *spacesyncproto.ObjectSyncMessage) (err error)
|
||||||
// Broadcast sends a message to all subscribed peers
|
// Broadcast sends a message to all subscribed peers
|
||||||
|
|||||||
@ -25,6 +25,7 @@ type Settings interface {
|
|||||||
DeleteTree(ctx context.Context, id string) (err error)
|
DeleteTree(ctx context.Context, id string) (err error)
|
||||||
SpaceDeleteRawChange(ctx context.Context) (raw *treechangeproto.RawTreeChangeWithId, err error)
|
SpaceDeleteRawChange(ctx context.Context) (raw *treechangeproto.RawTreeChangeWithId, err error)
|
||||||
DeleteSpace(ctx context.Context, deleteChange *treechangeproto.RawTreeChangeWithId) (err error)
|
DeleteSpace(ctx context.Context, deleteChange *treechangeproto.RawTreeChangeWithId) (err error)
|
||||||
|
SettingsObject() SettingsObject
|
||||||
app.ComponentRunnable
|
app.ComponentRunnable
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,7 +55,7 @@ func (s *settings) Init(a *app.App) (err error) {
|
|||||||
s.treeBuilder = a.MustComponent(objecttreebuilder.CName).(objecttreebuilder.TreeBuilderComponent)
|
s.treeBuilder = a.MustComponent(objecttreebuilder.CName).(objecttreebuilder.TreeBuilderComponent)
|
||||||
|
|
||||||
sharedState := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
sharedState := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
||||||
s.storage = sharedState.SpaceStorage
|
s.storage = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||||
s.spaceIsDeleted = sharedState.SpaceIsDeleted
|
s.spaceIsDeleted = sharedState.SpaceIsDeleted
|
||||||
|
|
||||||
deps := Deps{
|
deps := Deps{
|
||||||
@ -115,3 +116,7 @@ func (s *settings) onSpaceDelete() {
|
|||||||
}
|
}
|
||||||
s.spaceIsDeleted.Swap(true)
|
s.spaceIsDeleted.Swap(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *settings) SettingsObject() SettingsObject {
|
||||||
|
return s.settingsObject
|
||||||
|
}
|
||||||
|
|||||||
@ -89,6 +89,7 @@ type space struct {
|
|||||||
objectSync objectsync.ObjectSync
|
objectSync objectsync.ObjectSync
|
||||||
syncStatus syncstatus.StatusProvider
|
syncStatus syncstatus.StatusProvider
|
||||||
settings settings.Settings
|
settings settings.Settings
|
||||||
|
storage spacestorage.SpaceStorage
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) DeleteTree(ctx context.Context, id string) (err error) {
|
func (s *space) DeleteTree(ctx context.Context, id string) (err error) {
|
||||||
@ -125,19 +126,16 @@ func (s *space) Init(ctx context.Context) (err error) {
|
|||||||
s.syncStatus = s.app.MustComponent(syncstatus.CName).(syncstatus.StatusProvider)
|
s.syncStatus = s.app.MustComponent(syncstatus.CName).(syncstatus.StatusProvider)
|
||||||
s.settings = s.app.MustComponent(settings.CName).(settings.Settings)
|
s.settings = s.app.MustComponent(settings.CName).(settings.Settings)
|
||||||
s.objectSync = s.app.MustComponent(objectsync.CName).(objectsync.ObjectSync)
|
s.objectSync = s.app.MustComponent(objectsync.CName).(objectsync.ObjectSync)
|
||||||
|
s.storage = s.app.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) HeadSync() headsync.HeadSyncExternal {
|
|
||||||
return s.headSync
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *space) SyncStatus() syncstatus.StatusUpdater {
|
func (s *space) SyncStatus() syncstatus.StatusUpdater {
|
||||||
return s.syncStatus
|
return s.syncStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) Storage() spacestorage.SpaceStorage {
|
func (s *space) Storage() spacestorage.SpaceStorage {
|
||||||
return s.state.SpaceStorage
|
return s.storage
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *space) Close() error {
|
func (s *space) Close() error {
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import (
|
|||||||
"github.com/anyproto/any-sync/commonspace/deletionstate"
|
"github.com/anyproto/any-sync/commonspace/deletionstate"
|
||||||
"github.com/anyproto/any-sync/commonspace/headsync"
|
"github.com/anyproto/any-sync/commonspace/headsync"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/syncacl"
|
"github.com/anyproto/any-sync/commonspace/object/acl/syncacl"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
||||||
@ -159,22 +158,11 @@ func (s *spaceService) NewSpace(ctx context.Context, id string) (Space, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
spaceIsDeleted.Swap(isDeleted)
|
spaceIsDeleted.Swap(isDeleted)
|
||||||
aclStorage, err := st.AclStorage()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
aclList, err := list.BuildAclListWithIdentity(s.account.Account(), aclStorage)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
aclList = syncacl.NewSyncAcl(aclList)
|
|
||||||
state := &spacestate.SpaceState{
|
state := &spacestate.SpaceState{
|
||||||
SpaceId: st.Id(),
|
SpaceId: st.Id(),
|
||||||
SpaceIsDeleted: spaceIsDeleted,
|
SpaceIsDeleted: spaceIsDeleted,
|
||||||
SpaceIsClosed: spaceIsClosed,
|
SpaceIsClosed: spaceIsClosed,
|
||||||
TreesUsed: &atomic.Int32{},
|
TreesUsed: &atomic.Int32{},
|
||||||
AclList: aclList,
|
|
||||||
SpaceStorage: st,
|
|
||||||
}
|
}
|
||||||
if s.config.KeepTreeDataInMemory {
|
if s.config.KeepTreeDataInMemory {
|
||||||
state.TreeBuilderFunc = objecttree.BuildObjectTree
|
state.TreeBuilderFunc = objecttree.BuildObjectTree
|
||||||
@ -188,20 +176,21 @@ func (s *spaceService) NewSpace(ctx context.Context, id string) (Space, error) {
|
|||||||
} else {
|
} else {
|
||||||
syncStatus = syncstatus.NewNoOpSyncStatus()
|
syncStatus = syncstatus.NewNoOpSyncStatus()
|
||||||
}
|
}
|
||||||
//lastConfiguration := s.configurationService
|
peerManager, err := s.peermanagerProvider.NewPeerManager(ctx, id)
|
||||||
//
|
if err != nil {
|
||||||
//peerManager, err := s.peermanagerProvider.NewPeerManager(ctx, id)
|
return nil, err
|
||||||
//if err != nil {
|
}
|
||||||
// return nil, err
|
|
||||||
//}
|
|
||||||
spaceApp := s.app.ChildApp()
|
spaceApp := s.app.ChildApp()
|
||||||
spaceApp.Register(state).
|
spaceApp.Register(state).
|
||||||
|
Register(peerManager).
|
||||||
|
Register(newCommonStorage(st)).
|
||||||
|
Register(syncacl.New()).
|
||||||
Register(syncStatus).
|
Register(syncStatus).
|
||||||
Register(NewObjectManager(s.treeManager)).
|
|
||||||
Register(streamsender.New()).
|
Register(streamsender.New()).
|
||||||
Register(requestsender.New()).
|
Register(requestsender.New()).
|
||||||
Register(deletionstate.New()).
|
Register(deletionstate.New()).
|
||||||
Register(settings.New()).
|
Register(settings.New()).
|
||||||
|
Register(NewObjectManager(s.treeManager)).
|
||||||
Register(syncclient.New()).
|
Register(syncclient.New()).
|
||||||
Register(objecttreebuilder.New()).
|
Register(objecttreebuilder.New()).
|
||||||
Register(objectsync.New()).
|
Register(objectsync.New()).
|
||||||
|
|||||||
@ -2,21 +2,17 @@ package spacestate
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/anyproto/any-sync/app"
|
"github.com/anyproto/any-sync/app"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/list"
|
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
"github.com/anyproto/any-sync/commonspace/object/tree/objecttree"
|
||||||
"github.com/anyproto/any-sync/commonspace/spacestorage"
|
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
)
|
)
|
||||||
|
|
||||||
const CName = "common.commonspace.shareddata"
|
const CName = "common.commonspace.spacestate"
|
||||||
|
|
||||||
type SpaceState struct {
|
type SpaceState struct {
|
||||||
SpaceId string
|
SpaceId string
|
||||||
SpaceIsDeleted *atomic.Bool
|
SpaceIsDeleted *atomic.Bool
|
||||||
SpaceIsClosed *atomic.Bool
|
SpaceIsClosed *atomic.Bool
|
||||||
TreesUsed *atomic.Int32
|
TreesUsed *atomic.Int32
|
||||||
AclList list.AclList
|
|
||||||
SpaceStorage spacestorage.SpaceStorage
|
|
||||||
TreeBuilderFunc objecttree.BuildObjectTreeFunc
|
TreeBuilderFunc objecttree.BuildObjectTreeFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package spacestorage
|
package spacestorage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/anyproto/any-sync/app"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/acl/liststorage"
|
"github.com/anyproto/any-sync/commonspace/object/acl/liststorage"
|
||||||
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
"github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto"
|
||||||
@ -21,6 +22,14 @@ type InMemorySpaceStorage struct {
|
|||||||
sync.Mutex
|
sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (i *InMemorySpaceStorage) Init(a *app.App) (err error) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *InMemorySpaceStorage) Name() (name string) {
|
||||||
|
return CName
|
||||||
|
}
|
||||||
|
|
||||||
func NewInMemorySpaceStorage(payload SpaceStorageCreatePayload) (SpaceStorage, error) {
|
func NewInMemorySpaceStorage(payload SpaceStorageCreatePayload) (SpaceStorage, error) {
|
||||||
aclStorage, err := liststorage.NewInMemoryAclListStorage(payload.AclWithId.Id, []*aclrecordproto.RawAclRecordWithId{payload.AclWithId})
|
aclStorage, err := liststorage.NewInMemoryAclListStorage(payload.AclWithId.Id, []*aclrecordproto.RawAclRecordWithId{payload.AclWithId})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -27,8 +27,8 @@ const (
|
|||||||
TreeDeletedStatusDeleted = "deleted"
|
TreeDeletedStatusDeleted = "deleted"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: consider moving to some file with all common interfaces etc
|
|
||||||
type SpaceStorage interface {
|
type SpaceStorage interface {
|
||||||
|
app.Component
|
||||||
Id() string
|
Id() string
|
||||||
SetSpaceDeleted() error
|
SetSpaceDeleted() error
|
||||||
IsSpaceDeleted() (bool, error)
|
IsSpaceDeleted() (bool, error)
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
package spacestorage
|
|
||||||
@ -102,9 +102,9 @@ func (s *syncStatusProvider) Init(a *app.App) (err error) {
|
|||||||
sharedState := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
sharedState := a.MustComponent(spacestate.CName).(*spacestate.SpaceState)
|
||||||
s.updateIntervalSecs = syncUpdateInterval
|
s.updateIntervalSecs = syncUpdateInterval
|
||||||
s.updateTimeout = syncTimeout
|
s.updateTimeout = syncTimeout
|
||||||
s.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
|
||||||
s.storage = sharedState.SpaceStorage
|
|
||||||
s.spaceId = sharedState.SpaceId
|
s.spaceId = sharedState.SpaceId
|
||||||
|
s.configuration = a.MustComponent(nodeconf.CName).(nodeconf.NodeConf)
|
||||||
|
s.storage = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user