graphdb

package
v1.8.2-ros Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2015 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsNonUniqueNameError added in v0.9.0

func IsNonUniqueNameError(err error) bool

IsNonUniqueNameError processes the error to check if it's caused by a constraint violation. This is necessary because the error isn't the same across various sqlite versions.

func PathDepth

func PathDepth(p string) int

PathDepth returns the depth or number of / in a given path

Types

type Database

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

Database is a graph database for storing entities and their relationships

func NewDatabase

func NewDatabase(conn *sql.DB) (*Database, error)

NewDatabase creates a new graph database initialized with a root entity

func NewSqliteConn

func NewSqliteConn(root string) (*Database, error)

NewSqliteConn opens a connection to a sqlite database.

func (*Database) Children

func (db *Database) Children(name string, depth int) ([]WalkMeta, error)

Children returns the children of the specified entity

func (*Database) Close

func (db *Database) Close() error

Close the underlying connection to the database

func (*Database) Delete

func (db *Database) Delete(name string) error

Delete the reference to an entity at a given path

func (*Database) Exists

func (db *Database) Exists(name string) bool

Exists returns true if a name already exists in the database

func (*Database) Get

func (db *Database) Get(name string) *Entity

Get returns the entity for a given path

func (*Database) List

func (db *Database) List(name string, depth int) Entities

List all entities by from the name The key will be the full path of the entity

func (*Database) Parents added in v1.3.0

func (db *Database) Parents(name string) ([]string, error)

Parents returns the parents of a specified entity

func (*Database) Purge

func (db *Database) Purge(id string) (int, error)

Purge removes the entity with the specified id Walk the graph to make sure all references to the entity are removed and return the number of references removed

func (*Database) RefPaths

func (db *Database) RefPaths(id string) Edges

RefPaths returns all the id's path references

func (*Database) Refs

func (db *Database) Refs(id string) int

Refs returns the refrence count for a specified id

func (*Database) Rename

func (db *Database) Rename(currentName, newName string) error

Rename an edge for a given path

func (*Database) RootEntity

func (db *Database) RootEntity() *Entity

RootEntity returns the root "/" entity for the database

func (*Database) Set

func (db *Database) Set(fullPath, id string) (*Entity, error)

Set the entity id for a given path

func (*Database) Walk

func (db *Database) Walk(name string, walkFunc WalkFunc, depth int) error

Walk through the child graph of an entity, calling walkFunc for each child entity. It is safe for walkFunc to call graph functions.

type Edge

type Edge struct {
	EntityID string
	Name     string
	ParentID string
}

An Edge connects two entities together

type Edges

type Edges []*Edge

Edges stores the relationships between entities

type Entities

type Entities map[string]*Entity

Entities stores the list of entities

func (Entities) Paths

func (e Entities) Paths() []string

Paths returns the paths sorted by depth

type Entity

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

Entity with a unique id

func (*Entity) ID

func (e *Entity) ID() string

ID returns the id used to reference this entity

type WalkFunc

type WalkFunc func(fullPath string, entity *Entity) error

WalkFunc is a function invoked to process an individual entity

type WalkMeta

type WalkMeta struct {
	Parent   *Entity
	Entity   *Entity
	FullPath string
	Edge     *Edge
}

Jump to

Keyboard shortcuts

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