1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-08 05:47:07 +09:00
anytype-heart/space/clientspace/virtualspace.go
2025-04-07 18:29:45 +02:00

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
}