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) 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 config.Map) 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)
	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
type IndexSQL ¶
IndexSQL implementation
func (*IndexSQL) AddNode ¶
AddNode to the mysql database
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) DelNode ¶
DelNode from database
func (*IndexSQL) DeleteCommits ¶
DeleteCommits removes the commit versions of the node
func (*IndexSQL) Flush ¶
Flush the database in case of cached inserts
func (*IndexSQL) GetNode ¶
GetNode from path
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) GetNodeFirstAvailableChildIndex ¶
GetNodeFirstAvailableChildIndex from path
func (*IndexSQL) GetNodeLastChild ¶
GetNodeLastChild from path
func (*IndexSQL) GetNodeTree ¶
GetNodeTree List from the path
func (*IndexSQL) GetNodes ¶
GetNodes List
func (*IndexSQL) Init ¶
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) Path ¶
func (*IndexSQL) PushCommit ¶
PushCommit adds a commit version to the node
func (*IndexSQL) ResyncDirtyEtags ¶
ResyncDirtyEtags ensures that etags are rightly calculated
func (*IndexSQL) SetNode ¶
SetNode in replacement of previous node
      
      Source Files
      ¶
    
- cache.go
 - dao.go
 - sql.go
 - todo.go