graph

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2016 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AsyncClient

type AsyncClient struct {
	Addr       string
	Port       int
	Path       string
	AuthClient *shttp.AuthenticationClient
	// contains filtered or unexported fields
}

func NewAsyncClient

func NewAsyncClient(addr string, port int, path string, authClient *shttp.AuthenticationClient) *AsyncClient

func (*AsyncClient) AddListener

func (c *AsyncClient) AddListener(l EventListener)

func (*AsyncClient) Connect

func (c *AsyncClient) Connect()

func (*AsyncClient) Disconnect

func (c *AsyncClient) Disconnect()

func (*AsyncClient) IsConnected

func (c *AsyncClient) IsConnected() bool

func (*AsyncClient) SendWSMessage

func (c *AsyncClient) SendWSMessage(m WSMessage)

type DefaultGraphListener added in v0.3.0

type DefaultGraphListener struct {
}

default implementation of a graph listener, can be used when not implementing the whole set of callbacks

func (*DefaultGraphListener) OnEdgeAdded added in v0.3.0

func (c *DefaultGraphListener) OnEdgeAdded(e *Edge)

func (*DefaultGraphListener) OnEdgeDeleted added in v0.3.0

func (c *DefaultGraphListener) OnEdgeDeleted(e *Edge)

func (*DefaultGraphListener) OnEdgeUpdated added in v0.3.0

func (c *DefaultGraphListener) OnEdgeUpdated(e *Edge)

func (*DefaultGraphListener) OnNodeAdded added in v0.3.0

func (c *DefaultGraphListener) OnNodeAdded(n *Node)

func (*DefaultGraphListener) OnNodeDeleted added in v0.3.0

func (c *DefaultGraphListener) OnNodeDeleted(n *Node)

func (*DefaultGraphListener) OnNodeUpdated added in v0.3.0

func (d *DefaultGraphListener) OnNodeUpdated(n *Node)

type Edge

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

func (*Edge) MarshalJSON

func (e *Edge) MarshalJSON() ([]byte, error)

func (*Edge) Metadata added in v0.2.0

func (e *Edge) Metadata() Metadata

func (*Edge) String

func (e *Edge) String() string

type EdgeValidator added in v0.3.0

type EdgeValidator func(e *Edge) bool

type EventListener

type EventListener interface {
	OnConnected()
	OnDisconnected()
}

type Forwarder

type Forwarder struct {
	Client *AsyncClient
	Graph  *Graph
}

func NewForwarder

func NewForwarder(c *AsyncClient, g *Graph) *Forwarder

func (*Forwarder) OnConnected

func (c *Forwarder) OnConnected()

func (*Forwarder) OnDisconnected

func (c *Forwarder) OnDisconnected()

func (*Forwarder) OnEdgeAdded

func (c *Forwarder) OnEdgeAdded(e *Edge)

func (*Forwarder) OnEdgeDeleted

func (c *Forwarder) OnEdgeDeleted(e *Edge)

func (*Forwarder) OnEdgeUpdated

func (c *Forwarder) OnEdgeUpdated(e *Edge)

func (*Forwarder) OnNodeAdded

func (c *Forwarder) OnNodeAdded(n *Node)

func (*Forwarder) OnNodeDeleted

func (c *Forwarder) OnNodeDeleted(n *Node)

func (*Forwarder) OnNodeUpdated

func (c *Forwarder) OnNodeUpdated(n *Node)

type Graph

type Graph struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewGraph

func NewGraph(b GraphBackend) (*Graph, error)

func (*Graph) AddEdge

func (g *Graph) AddEdge(e *Edge) bool

func (*Graph) AddEventListener

func (g *Graph) AddEventListener(l GraphEventListener)

func (*Graph) AddMetadata added in v0.2.0

func (g *Graph) AddMetadata(e interface{}, k string, v interface{})

func (*Graph) AddNode

func (g *Graph) AddNode(n *Node) bool

func (*Graph) AreLinked

func (g *Graph) AreLinked(n1 *Node, n2 *Node) bool

func (*Graph) DelEdge

func (g *Graph) DelEdge(e *Edge)

func (*Graph) DelNode

func (g *Graph) DelNode(n *Node)

func (*Graph) DelSubGraph

func (g *Graph) DelSubGraph(n *Node)

func (*Graph) GetEdge

func (g *Graph) GetEdge(i Identifier) *Edge

func (*Graph) GetEdgeNodes added in v0.3.0

func (g *Graph) GetEdgeNodes(e *Edge) (*Node, *Node)

func (*Graph) GetEdges

func (g *Graph) GetEdges() []*Edge

func (*Graph) GetNode

func (g *Graph) GetNode(i Identifier) *Node

func (*Graph) GetNodes

func (g *Graph) GetNodes() []*Node
func (g *Graph) Link(n1 *Node, n2 *Node, m ...Metadata)

func (*Graph) LookupChildren

func (g *Graph) LookupChildren(n *Node, f Metadata) []*Node

func (*Graph) LookupFirstChild added in v0.2.0

func (g *Graph) LookupFirstChild(n *Node, f Metadata) *Node

func (*Graph) LookupFirstNode

func (g *Graph) LookupFirstNode(m Metadata) *Node

func (*Graph) LookupNodes

func (g *Graph) LookupNodes(m Metadata) []*Node

func (*Graph) LookupNodesFromKey

func (g *Graph) LookupNodesFromKey(key string) []*Node

func (*Graph) LookupParentNodes

func (g *Graph) LookupParentNodes(n *Node, f Metadata) []*Node

func (*Graph) LookupShortestPath added in v0.3.0

func (g *Graph) LookupShortestPath(n *Node, m Metadata, ev ...EdgeValidator) []*Node

func (*Graph) MarshalJSON

func (g *Graph) MarshalJSON() ([]byte, error)

func (*Graph) NewEdge

func (g *Graph) NewEdge(i Identifier, p *Node, c *Node, m Metadata) *Edge

func (*Graph) NewNode

func (g *Graph) NewNode(i Identifier, m Metadata) *Node

func (*Graph) NotifyEdgeAdded

func (g *Graph) NotifyEdgeAdded(e *Edge)

func (*Graph) NotifyEdgeDeleted

func (g *Graph) NotifyEdgeDeleted(e *Edge)

func (*Graph) NotifyEdgeUpdated

func (g *Graph) NotifyEdgeUpdated(e *Edge)

func (*Graph) NotifyNodeAdded

func (g *Graph) NotifyNodeAdded(n *Node)

func (*Graph) NotifyNodeDeleted

func (g *Graph) NotifyNodeDeleted(n *Node)

func (*Graph) NotifyNodeUpdated

func (g *Graph) NotifyNodeUpdated(n *Node)

func (*Graph) RemoveEventListener added in v0.3.0

func (g *Graph) RemoveEventListener(l GraphEventListener)

func (*Graph) Replace

func (g *Graph) Replace(o *Node, n *Node) *Node

func (*Graph) SetMetadata

func (g *Graph) SetMetadata(e interface{}, m Metadata)

func (*Graph) StartMetadataTransaction added in v0.3.0

func (g *Graph) StartMetadataTransaction(i interface{}) *MetadataTransaction

func (*Graph) String

func (g *Graph) String() string
func (g *Graph) Unlink(n1 *Node, n2 *Node)

type GraphBackend

type GraphBackend interface {
	AddNode(n *Node) bool
	DelNode(n *Node) bool
	GetNode(i Identifier) *Node
	GetNodeEdges(n *Node) []*Edge

	AddEdge(e *Edge) bool
	DelEdge(e *Edge) bool
	GetEdge(i Identifier) *Edge
	GetEdgeNodes(e *Edge) (*Node, *Node)

	AddMetadata(e interface{}, k string, v interface{}) bool
	SetMetadata(e interface{}, m Metadata) bool

	GetNodes() []*Node
	GetEdges() []*Edge
}

func BackendFromConfig

func BackendFromConfig() (GraphBackend, error)

type GraphEventListener

type GraphEventListener interface {
	OnNodeUpdated(n *Node)
	OnNodeAdded(n *Node)
	OnNodeDeleted(n *Node)
	OnEdgeUpdated(e *Edge)
	OnEdgeAdded(e *Edge)
	OnEdgeDeleted(e *Edge)
}

type GremlinBackend

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

func NewGremlinBackend

func NewGremlinBackend(endpoint string) (*GremlinBackend, error)

func (GremlinBackend) AddEdge

func (g GremlinBackend) AddEdge(e *Edge) bool

func (GremlinBackend) AddMetadata added in v0.2.0

func (g GremlinBackend) AddMetadata(i interface{}, k string, v interface{}) bool

func (GremlinBackend) AddNode

func (g GremlinBackend) AddNode(n *Node) bool

func (GremlinBackend) DelEdge

func (g GremlinBackend) DelEdge(e *Edge) bool

func (GremlinBackend) DelNode

func (g GremlinBackend) DelNode(n *Node) bool

func (GremlinBackend) GetEdge

func (g GremlinBackend) GetEdge(i Identifier) *Edge

func (GremlinBackend) GetEdgeNodes

func (g GremlinBackend) GetEdgeNodes(e *Edge) (*Node, *Node)

func (GremlinBackend) GetEdges

func (g GremlinBackend) GetEdges() []*Edge

func (GremlinBackend) GetNode

func (g GremlinBackend) GetNode(i Identifier) *Node

func (GremlinBackend) GetNodeEdges

func (g GremlinBackend) GetNodeEdges(n *Node) []*Edge

func (GremlinBackend) GetNodes

func (g GremlinBackend) GetNodes() []*Node

func (GremlinBackend) SetMetadata

func (g GremlinBackend) SetMetadata(i interface{}, meta Metadata) bool

type Identifier

type Identifier string

func GenID

func GenID() Identifier

type MemoryBackend

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

func NewMemoryBackend

func NewMemoryBackend() (*MemoryBackend, error)

func (MemoryBackend) AddEdge

func (m MemoryBackend) AddEdge(e *Edge) bool

func (MemoryBackend) AddMetadata added in v0.2.0

func (m MemoryBackend) AddMetadata(i interface{}, k string, v interface{}) bool

func (MemoryBackend) AddNode

func (m MemoryBackend) AddNode(n *Node) bool

func (MemoryBackend) DelEdge

func (m MemoryBackend) DelEdge(e *Edge) bool

func (MemoryBackend) DelNode

func (m MemoryBackend) DelNode(n *Node) bool

func (MemoryBackend) GetEdge

func (m MemoryBackend) GetEdge(i Identifier) *Edge

func (MemoryBackend) GetEdgeNodes

func (m MemoryBackend) GetEdgeNodes(e *Edge) (*Node, *Node)

func (MemoryBackend) GetEdges

func (m MemoryBackend) GetEdges() []*Edge

func (MemoryBackend) GetNode

func (m MemoryBackend) GetNode(i Identifier) *Node

func (MemoryBackend) GetNodeEdges

func (m MemoryBackend) GetNodeEdges(n *Node) []*Edge

func (MemoryBackend) GetNodes

func (m MemoryBackend) GetNodes() []*Node

func (MemoryBackend) SetMetadata

func (m MemoryBackend) SetMetadata(i interface{}, meta Metadata) bool

type MemoryBackendEdge

type MemoryBackendEdge struct {
	*Edge
}

func (MemoryBackendEdge) Metadata added in v0.2.0

func (e MemoryBackendEdge) Metadata() Metadata

func (MemoryBackendEdge) String

func (e MemoryBackendEdge) String() string

type MemoryBackendNode

type MemoryBackendNode struct {
	*Node
	// contains filtered or unexported fields
}

func (MemoryBackendNode) Metadata added in v0.2.0

func (e MemoryBackendNode) Metadata() Metadata

func (MemoryBackendNode) String

func (e MemoryBackendNode) String() string

type Metadata added in v0.2.0

type Metadata map[string]interface{}

func (*Metadata) String added in v0.2.0

func (m *Metadata) String() string

type MetadataTransaction added in v0.3.0

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

func (*MetadataTransaction) AddMetadata added in v0.3.0

func (t *MetadataTransaction) AddMetadata(k string, v interface{})

func (*MetadataTransaction) Commit added in v0.3.0

func (t *MetadataTransaction) Commit()

type Node

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

func (*Node) MarshalJSON

func (n *Node) MarshalJSON() ([]byte, error)

func (*Node) Metadata added in v0.2.0

func (e *Node) Metadata() Metadata

func (*Node) String

func (e *Node) String() string

type Server

type Server struct {
	Graph *Graph

	Host string
	// contains filtered or unexported fields
}

func NewServer

func NewServer(g *Graph, server *shttp.Server, pongWait time.Duration) *Server

func NewServerFromConfig

func NewServerFromConfig(g *Graph, server *shttp.Server) (*Server, error)

func (*Server) ListenAndServe

func (s *Server) ListenAndServe()

func (*Server) OnEdgeAdded

func (s *Server) OnEdgeAdded(e *Edge)

func (*Server) OnEdgeDeleted

func (s *Server) OnEdgeDeleted(e *Edge)

func (*Server) OnEdgeUpdated

func (s *Server) OnEdgeUpdated(e *Edge)

func (*Server) OnNodeAdded

func (s *Server) OnNodeAdded(n *Node)

func (*Server) OnNodeDeleted

func (s *Server) OnNodeDeleted(n *Node)

func (*Server) OnNodeUpdated

func (s *Server) OnNodeUpdated(n *Node)

func (*Server) Stop

func (s *Server) Stop()

type TitangraphBackend added in v0.3.0

type TitangraphBackend struct {
	GremlinBackend
}

func NewTitangraphBackend added in v0.3.0

func NewTitangraphBackend(endpoint string) (*TitangraphBackend, error)

type WSClient

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

type WSMessage

type WSMessage struct {
	Type string
	Obj  interface{}
}

func UnmarshalWSMessage

func UnmarshalWSMessage(b []byte) (WSMessage, error)

func (WSMessage) Marshal

func (g WSMessage) Marshal() []byte

func (WSMessage) String

func (g WSMessage) String() string

type WSServer

type WSServer struct {
	Graph *Graph
	// contains filtered or unexported fields
}

func (*WSServer) ListenAndServe

func (s *WSServer) ListenAndServe()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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