lookup

package
v2.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Pathify

func Pathify(id string, depth, width int) string

Pathify segments the beginning of a string into depth segments of width length Pathify("aabbccdd", 3, 1) will return "a/a/b/bccdd"

Types

type IDCache added in v2.20.0

type IDCache interface {
	Get(ctx context.Context, spaceID, nodeID string) (string, bool)
	GetByPath(ctx context.Context, path string) (string, string, bool)

	Set(ctx context.Context, spaceID, nodeID, val string) error

	Delete(ctx context.Context, spaceID, nodeID string) error
	DeleteByPath(ctx context.Context, path string) error

	DeletePath(ctx context.Context, path string) error
}

IDCache is a cache for node ids

type Lookup

type Lookup struct {
	Options *options.Options

	IDCache IDCache
	// contains filtered or unexported fields
}

Lookup implements transformations from filepath to node and back

func New

New returns a new Lookup instance

func (*Lookup) CacheID added in v2.20.0

func (lu *Lookup) CacheID(ctx context.Context, spaceID, nodeID, val string) error

CacheID caches the path for the given space and node id

func (*Lookup) CopyMetadata

func (lu *Lookup) CopyMetadata(ctx context.Context, src, target string, filter func(attributeName string, value []byte) (newValue []byte, copy bool), acquireTargetLock bool) (err error)

CopyMetadata copies all extended attributes from source to target. The optional filter function can be used to filter by attribute name, e.g. by checking a prefix For the source file, a shared lock is acquired. NOTE: target resource will be write locked!

func (*Lookup) CopyMetadataWithSourceLock

func (lu *Lookup) CopyMetadataWithSourceLock(ctx context.Context, sourcePath, targetPath string, filter func(attributeName string, value []byte) (newValue []byte, copy bool), lockedSource *lockedfile.File, acquireTargetLock bool) (err error)

CopyMetadataWithSourceLock copies all extended attributes from source to target. The optional filter function can be used to filter by attribute name, e.g. by checking a prefix For the source file, a matching lockedfile is required. NOTE: target resource will be write locked!

func (*Lookup) GenerateSpaceID

func (lu *Lookup) GenerateSpaceID(spaceType string, owner *user.User) (string, error)

GenerateSpaceID generates a space id for the given space type and owner

func (*Lookup) GetCachedID added in v2.20.0

func (lu *Lookup) GetCachedID(ctx context.Context, spaceID, nodeID string) (string, bool)

GetCachedID returns the cached path for the given space and node id

func (*Lookup) IDsForPath added in v2.21.0

func (lu *Lookup) IDsForPath(ctx context.Context, path string) (string, string, error)

IDsForPath returns the space and opaque id for the given path

func (*Lookup) InternalPath

func (lu *Lookup) InternalPath(spaceID, nodeID string) string

InternalPath returns the internal path for a given ID

func (*Lookup) InternalRoot

func (lu *Lookup) InternalRoot() string

InternalRoot returns the internal storage root directory

func (*Lookup) MetadataBackend

func (lu *Lookup) MetadataBackend() metadata.Backend

MetadataBackend returns the metadata backend

func (*Lookup) NodeFromID

func (lu *Lookup) NodeFromID(ctx context.Context, id *provider.ResourceId) (n *node.Node, err error)

NodeFromID returns the internal path for the id

func (*Lookup) NodeFromResource

func (lu *Lookup) NodeFromResource(ctx context.Context, ref *provider.Reference) (*node.Node, error)

NodeFromResource takes in a request path or request id and converts it to a Node

func (*Lookup) NodeFromSpaceID

func (lu *Lookup) NodeFromSpaceID(ctx context.Context, spaceID string) (n *node.Node, err error)

NodeFromSpaceID converts a resource id into a Node

func (*Lookup) NodeIDFromParentAndName added in v2.20.0

func (lu *Lookup) NodeIDFromParentAndName(ctx context.Context, parent *node.Node, name string) (string, error)

NodeFromPath returns the node for the given path

func (*Lookup) Path

func (lu *Lookup) Path(ctx context.Context, n *node.Node, hasPermission node.PermissionFunc) (p string, err error)

Path returns the path for node

func (*Lookup) ReadBlobIDAttr

func (lu *Lookup) ReadBlobIDAttr(ctx context.Context, path string) (string, error)

ReadBlobIDAttr reads the blobsize from the xattrs

func (*Lookup) ReadBlobSizeAttr

func (lu *Lookup) ReadBlobSizeAttr(ctx context.Context, path string) (int64, error)

ReadBlobSizeAttr reads the blobsize from the xattrs

func (*Lookup) TypeFromPath

func (lu *Lookup) TypeFromPath(ctx context.Context, path string) provider.ResourceType

TypeFromPath returns the type of the node at the given path

func (*Lookup) WalkPath

func (lu *Lookup) WalkPath(ctx context.Context, r *node.Node, p string, followReferences bool, f func(ctx context.Context, n *node.Node) error) (*node.Node, error)

WalkPath calls n.Child(segment) on every path segment in p starting at the node r. If a function f is given it will be executed for every segment node, but not the root node r. If followReferences is given the current visited reference node is replaced by the referenced node.

type StoreIDCache added in v2.20.0

type StoreIDCache struct {
	// contains filtered or unexported fields
}

func NewStoreIDCache added in v2.20.0

func NewStoreIDCache(o *options.Options) *StoreIDCache

NewMemoryIDCache returns a new MemoryIDCache

func (*StoreIDCache) Delete added in v2.21.0

func (c *StoreIDCache) Delete(_ context.Context, spaceID, nodeID string) error

Delete removes an entry from the cache

func (*StoreIDCache) DeleteByPath added in v2.21.0

func (c *StoreIDCache) DeleteByPath(ctx context.Context, path string) error

DeleteByPath removes an entry from the cache

func (*StoreIDCache) DeletePath added in v2.21.0

func (c *StoreIDCache) DeletePath(ctx context.Context, path string) error

DeletePath removes only the path entry from the cache

func (*StoreIDCache) Get added in v2.20.0

func (c *StoreIDCache) Get(_ context.Context, spaceID, nodeID string) (string, bool)

Get returns the value for a given key

func (*StoreIDCache) GetByPath added in v2.21.0

func (c *StoreIDCache) GetByPath(_ context.Context, val string) (string, string, bool)

GetByPath returns the key for a given value

func (*StoreIDCache) Set added in v2.20.0

func (c *StoreIDCache) Set(_ context.Context, spaceID, nodeID, val string) error

Add adds a new entry to the cache

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL