mirror of
https://github.com/anyproto/anytype-heart.git
synced 2025-06-08 05:47:07 +09:00
159 lines
4.3 KiB
Go
159 lines
4.3 KiB
Go
package clientspace
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/anyproto/any-sync/accountservice"
|
|
"github.com/anyproto/any-sync/commonspace"
|
|
"github.com/anyproto/any-sync/commonspace/acl/aclclient"
|
|
"github.com/anyproto/any-sync/commonspace/headsync"
|
|
"github.com/anyproto/any-sync/commonspace/object/acl/syncacl"
|
|
"github.com/anyproto/any-sync/commonspace/object/keyvalue/kvinterfaces"
|
|
"github.com/anyproto/any-sync/commonspace/object/treesyncer"
|
|
"github.com/anyproto/any-sync/commonspace/objecttreebuilder"
|
|
"github.com/anyproto/any-sync/commonspace/spacestorage"
|
|
"github.com/anyproto/any-sync/commonspace/spacesyncproto"
|
|
"github.com/anyproto/any-sync/commonspace/sync/objectsync/objectmessages"
|
|
"github.com/anyproto/any-sync/commonspace/syncstatus"
|
|
"github.com/anyproto/any-sync/net/peer"
|
|
"storj.io/drpc"
|
|
|
|
"github.com/anyproto/anytype-heart/core/block/object/objectcache"
|
|
"github.com/anyproto/anytype-heart/core/domain"
|
|
)
|
|
|
|
type VirtualSpaceDeps struct {
|
|
ObjectFactory objectcache.ObjectFactory
|
|
AccountService accountservice.Service
|
|
PersonalSpaceId string
|
|
Indexer spaceIndexer
|
|
Installer bundledObjectsInstaller
|
|
TypePrefix string
|
|
RelationPrefix string
|
|
}
|
|
|
|
type VirtualSpace struct {
|
|
*space
|
|
TypePrefix, RelationPrefix string
|
|
}
|
|
|
|
func NewVirtualSpace(spaceId string, deps VirtualSpaceDeps) *VirtualSpace {
|
|
vs := &VirtualSpace{
|
|
space: &space{
|
|
indexer: deps.Indexer,
|
|
installer: deps.Installer,
|
|
common: newVirtualCommonSpace(spaceId),
|
|
loadMandatoryObjectsCh: make(chan struct{}),
|
|
personalSpaceId: deps.PersonalSpaceId,
|
|
},
|
|
TypePrefix: deps.TypePrefix,
|
|
RelationPrefix: deps.RelationPrefix,
|
|
}
|
|
vs.space.Cache = objectcache.New(deps.AccountService, deps.ObjectFactory, deps.PersonalSpaceId, vs)
|
|
return vs
|
|
}
|
|
|
|
func (vs *VirtualSpace) GetRelationIdByKey(ctx context.Context, key domain.RelationKey) (id string, err error) {
|
|
return vs.RelationPrefix + key.String(), nil
|
|
}
|
|
|
|
func (vs *VirtualSpace) GetTypeIdByKey(ctx context.Context, key domain.TypeKey) (id string, err error) {
|
|
return vs.TypePrefix + key.String(), nil
|
|
}
|
|
|
|
func newVirtualCommonSpace(spaceId string) commonspace.Space {
|
|
return &virtualCommonSpace{spaceId: spaceId}
|
|
}
|
|
|
|
type virtualCommonSpace struct {
|
|
spaceId string
|
|
}
|
|
|
|
func (c *virtualCommonSpace) HandleMessage(ctx context.Context, msg *objectmessages.HeadUpdate) (err error) {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) HandleStreamSyncRequest(ctx context.Context, req *spacesyncproto.ObjectSyncMessage, stream drpc.Stream) (err error) {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) HandleStream(stream spacesyncproto.DRPCSpaceSync_ObjectSyncStreamStream) error {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) AclClient() aclclient.AclSpaceClient {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) IsPersonal() bool {
|
|
return false
|
|
}
|
|
|
|
func (c *virtualCommonSpace) Id() string {
|
|
return c.spaceId
|
|
}
|
|
|
|
func (c *virtualCommonSpace) Init(ctx context.Context) error {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) Acl() syncacl.SyncAcl {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) StoredIds() []string {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) DebugAllHeads() []headsync.TreeHeads {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) Description(ctx context.Context) (desc commonspace.SpaceDescription, err error) {
|
|
return
|
|
}
|
|
|
|
func (c *virtualCommonSpace) TreeBuilder() objecttreebuilder.TreeBuilder {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) TreeSyncer() treesyncer.TreeSyncer {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) SyncStatus() syncstatus.StatusUpdater {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) Storage() spacestorage.SpaceStorage {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) DeleteTree(ctx context.Context, id string) (err error) {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) GetNodePeers(ctx context.Context) (peer []peer.Peer, err error) {
|
|
return
|
|
}
|
|
|
|
func (c *virtualCommonSpace) HandleRangeRequest(ctx context.Context, req *spacesyncproto.HeadSyncRequest) (resp *spacesyncproto.HeadSyncResponse, err error) {
|
|
return
|
|
}
|
|
|
|
func (c *virtualCommonSpace) TryClose(objectTTL time.Duration) (close bool, err error) {
|
|
return
|
|
}
|
|
|
|
func (c *virtualCommonSpace) Close() error {
|
|
return nil
|
|
}
|
|
|
|
func (c *virtualCommonSpace) IsReadOnly() bool {
|
|
return false
|
|
}
|
|
|
|
func (c *virtualCommonSpace) KeyValue() kvinterfaces.KeyValueService {
|
|
return nil
|
|
}
|