Documentation ¶
Overview ¶
Package index provides ready-to-use tables and DAOs for storing hierarchical data using the nested sets pattern
- Copyright (c) 2018. Abstrium SAS <team (at) pydio.com>
- This file is part of Pydio Cells. *
- Pydio Cells is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version. *
- Pydio Cells is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details. *
- You should have received a copy of the GNU Affero General Public License
- along with Pydio Cells. If not, see <http://www.gnu.org/licenses/>. *
- The latest code can be found at <https://pydio.com>.
Index ¶
- func NewDAO(o dao.DAO, rootNodeId string) dao.DAO
- func NewNode(treeNode *tree.Node, path utils.MPath, filenames []string) *utils.TreeNode
- type BatchSend
- type DAO
- type DAOWrapper
- type IndexSQL
- func (dao *IndexSQL) AddNode(node *utils.TreeNode) error
- func (dao *IndexSQL) AddNodeStream(max int) (chan *utils.TreeNode, chan error)
- func (dao *IndexSQL) CleanResourcesOnDeletion() (error, string)
- func (dao *IndexSQL) DelNode(node *utils.TreeNode) error
- func (dao *IndexSQL) DeleteCommits(node *utils.TreeNode) error
- func (dao *IndexSQL) Flush(final bool) error
- func (dao *IndexSQL) GetNode(path utils.MPath) (*utils.TreeNode, error)
- func (dao *IndexSQL) GetNodeByUUID(uuid string) (*utils.TreeNode, error)
- func (dao *IndexSQL) GetNodeChild(reqPath utils.MPath, reqName string) (*utils.TreeNode, error)
- func (dao *IndexSQL) GetNodeChildren(path utils.MPath) chan *utils.TreeNode
- func (dao *IndexSQL) GetNodeChildrenCount(path utils.MPath) int
- func (dao *IndexSQL) GetNodeFirstAvailableChildIndex(reqPath utils.MPath) (uint64, error)
- func (dao *IndexSQL) GetNodeLastChild(reqPath utils.MPath) (*utils.TreeNode, error)
- func (dao *IndexSQL) GetNodeTree(path utils.MPath) chan *utils.TreeNode
- func (dao *IndexSQL) GetNodes(mpathes ...utils.MPath) chan *utils.TreeNode
- func (dao *IndexSQL) Init(options common.ConfigValues) error
- func (dao *IndexSQL) ListCommits(node *utils.TreeNode) (commits []*tree.ChangeLog, err error)
- func (dao *IndexSQL) MoveNodeTree(nodeFrom *utils.TreeNode, nodeTo *utils.TreeNode) error
- func (dao *IndexSQL) Path(strpath string, create bool, reqNode ...*tree.Node) (utils.MPath, []*utils.TreeNode, error)
- func (dao *IndexSQL) PushCommit(node *utils.TreeNode) error
- func (dao *IndexSQL) ResyncDirtyEtags(rootNode *utils.TreeNode) error
- func (dao *IndexSQL) SetNode(node *utils.TreeNode) error
- func (dao *IndexSQL) SetNodes(etag string, deltaSize int64) sql.BatchSender
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BatchSend ¶
type BatchSend struct {
// contains filtered or unexported fields
}
BatchSend sql structure
type DAO ¶
type DAO interface { Path(strpath string, create bool, reqNode ...*tree.Node) (utils.MPath, []*utils.TreeNode, error) // Simple Add / Set / Delete AddNode(*utils.TreeNode) error SetNode(*utils.TreeNode) error DelNode(*utils.TreeNode) error // Simple Add / Set / Delete AddNodeStream(int) (chan *utils.TreeNode, chan error) Flush(bool) error // Batch Add / Set / Delete GetNodes(...utils.MPath) chan *utils.TreeNode SetNodes(string, int64) sql.BatchSender // Getters GetNode(utils.MPath) (*utils.TreeNode, error) GetNodeByUUID(string) (*utils.TreeNode, error) GetNodeChild(utils.MPath, string) (*utils.TreeNode, error) GetNodeLastChild(utils.MPath) (*utils.TreeNode, error) GetNodeFirstAvailableChildIndex(utils.MPath) (uint64, error) GetNodeChildrenCount(utils.MPath) int GetNodeChildren(utils.MPath) chan *utils.TreeNode GetNodeTree(utils.MPath) chan *utils.TreeNode MoveNodeTree(nodeFrom *utils.TreeNode, nodeTo *utils.TreeNode) error PushCommit(node *utils.TreeNode) error DeleteCommits(node *utils.TreeNode) error ListCommits(node *utils.TreeNode) ([]*tree.ChangeLog, error) CleanResourcesOnDeletion() (error, string) }
DAO interface
func GetDAOCache ¶
GetDAOCache returns the cache based on the session name
func NewDAOCache ¶
NewDAOCache wraps a cache around the dao
type DAOWrapper ¶
type IndexSQL ¶
IndexSQL implementation
func (*IndexSQL) AddNodeStream ¶
AddNodeStream creates a channel to write to the database to the mysql database
func (*IndexSQL) CleanResourcesOnDeletion ¶
CleanResourcesOnDeletion revert the creation of the table for a datasource
func (*IndexSQL) DeleteCommits ¶
DeleteCommits removes the commit versions of the node
func (*IndexSQL) GetNodeByUUID ¶
GetNodeByUUID returns the node stored with the unique uuid
func (*IndexSQL) GetNodeChild ¶
GetNodeChild from node path whose name matches
func (*IndexSQL) GetNodeChildren ¶
GetNodeChildren List
func (*IndexSQL) GetNodeChildrenCount ¶ added in v1.2.0
GetNodeChildrenCount List
func (*IndexSQL) GetNodeFirstAvailableChildIndex ¶
GetNodeFirstAvailableChildIndex from path
func (*IndexSQL) GetNodeLastChild ¶
GetNodeLastChild from path
func (*IndexSQL) GetNodeTree ¶
GetNodeTree List from the path
func (*IndexSQL) Init ¶
func (dao *IndexSQL) Init(options common.ConfigValues) error
Init handles the db version migration and prepare the statements
func (*IndexSQL) ListCommits ¶
ListCommits returns a list of all commit versions for a node
func (*IndexSQL) MoveNodeTree ¶
MoveNodeTree move all the nodes belonging to a tree by calculating the new mpathes
func (*IndexSQL) PushCommit ¶
PushCommit adds a commit version to the node
func (*IndexSQL) ResyncDirtyEtags ¶
ResyncDirtyEtags ensures that etags are rightly calculated