Documentation ¶
Index ¶
- Constants
- Variables
- func NewFilterForEdge(parent Identifier, child Identifier) *filters.Filter
- func SortEdges(edges []*Edge, sortBy string, sortOrder common.SortOrder)
- func SortNodes(nodes []*Node, sortBy string, sortOrder common.SortOrder)
- func UnmarshalMessage(msg *ws.StructMessage) (string, interface{}, error)
- type CachedBackend
- func (c *CachedBackend) EdgeAdded(e *Edge) bool
- func (c *CachedBackend) EdgeDeleted(e *Edge) bool
- func (c *CachedBackend) GetEdge(i Identifier, t GraphContext) []*Edge
- func (c *CachedBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) ([]*Node, []*Node)
- func (c *CachedBackend) GetEdges(t GraphContext, m GraphElementMatcher) []*Edge
- func (c *CachedBackend) GetNode(i Identifier, t GraphContext) []*Node
- func (c *CachedBackend) GetNodeEdges(n *Node, t GraphContext, m GraphElementMatcher) (edges []*Edge)
- func (c *CachedBackend) GetNodes(t GraphContext, m GraphElementMatcher) []*Node
- func (c *CachedBackend) IsHistorySupported() bool
- func (c *CachedBackend) MetadataUpdated(i interface{}) bool
- func (c *CachedBackend) NodeAdded(n *Node) bool
- func (c *CachedBackend) NodeDeleted(n *Node) bool
- func (c *CachedBackend) SetMode(mode int)
- type DefaultGraphListener
- func (c *DefaultGraphListener) OnEdgeAdded(e *Edge)
- func (c *DefaultGraphListener) OnEdgeDeleted(e *Edge)
- func (c *DefaultGraphListener) OnEdgeUpdated(e *Edge)
- func (c *DefaultGraphListener) OnNodeAdded(n *Node)
- func (c *DefaultGraphListener) OnNodeDeleted(n *Node)
- func (c *DefaultGraphListener) OnNodeUpdated(n *Node)
- type DefaultLinker
- type Edge
- func (e *Edge) Decode(i interface{}) error
- func (e *Edge) GetChild() Identifier
- func (e *Edge) GetField(name string) (interface{}, error)
- func (e *Edge) GetFieldInt64(field string) (_ int64, err error)
- func (e *Edge) GetFieldString(field string) (_ string, err error)
- func (e *Edge) GetFieldStringList(name string) ([]string, error)
- func (e *Edge) GetFields() ([]string, error)
- func (e *Edge) GetParent() Identifier
- func (e *Edge) Host() string
- func (e *Edge) MarshalJSON() ([]byte, error)
- func (e *Edge) MatchMetadata(f GraphElementMatcher) bool
- func (e *Edge) Metadata() Metadata
- func (e *Edge) Origin() string
- func (e *Edge) SetOrigin(origin string)
- func (e *Edge) String() string
- type ElasticSearchBackend
- func (b *ElasticSearchBackend) EdgeAdded(e *Edge) bool
- func (b *ElasticSearchBackend) EdgeDeleted(e *Edge) bool
- func (b *ElasticSearchBackend) GetEdge(i Identifier, t GraphContext) []*Edge
- func (b *ElasticSearchBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) (parents []*Node, children []*Node)
- func (b *ElasticSearchBackend) GetEdges(t GraphContext, m GraphElementMatcher) []*Edge
- func (b *ElasticSearchBackend) GetNode(i Identifier, t GraphContext) []*Node
- func (b *ElasticSearchBackend) GetNodeEdges(n *Node, t GraphContext, m GraphElementMatcher) (edges []*Edge)
- func (b *ElasticSearchBackend) GetNodes(t GraphContext, m GraphElementMatcher) []*Node
- func (b *ElasticSearchBackend) IsHistorySupported() bool
- func (b *ElasticSearchBackend) MetadataUpdated(i interface{}) bool
- func (b *ElasticSearchBackend) NodeAdded(n *Node) bool
- func (b *ElasticSearchBackend) NodeDeleted(n *Node) bool
- func (b *ElasticSearchBackend) Query(typ string, tsq *TimedSearchQuery) (sr *elastic.SearchResult, _ error)
- type Graph
- func (g *Graph) AddEdge(e *Edge) bool
- func (g *Graph) AddEventListener(l GraphEventListener)
- func (g *Graph) AddMetadata(i interface{}, k string, v interface{}) bool
- func (g *Graph) AddNode(n *Node) bool
- func (g *Graph) AreLinked(n1 *Node, n2 *Node, m GraphElementMatcher) bool
- func (g *Graph) CloneWithContext(context GraphContext) (*Graph, error)
- func (g *Graph) CreateEdge(i Identifier, p *Node, c *Node, m Metadata, t time.Time, h ...string) *Edge
- func (g *Graph) CreateNode(i Identifier, m Metadata, t time.Time, h ...string) *Node
- func (g *Graph) DelEdge(e *Edge) bool
- func (g *Graph) DelMetadata(i interface{}, k string) bool
- func (g *Graph) DelNode(n *Node) bool
- func (g *Graph) DelOriginGraph(origin string)
- func (g *Graph) Diff(newGraph *Graph) (addedNodes []*Node, removedNodes []*Node, addedEdges []*Edge, ...)
- func (g *Graph) EdgeAdded(e *Edge) bool
- func (g *Graph) EdgeDeleted(e *Edge)
- func (g *Graph) EdgeUpdated(e *Edge) bool
- func (g *Graph) GetContext() GraphContext
- func (g *Graph) GetEdge(i Identifier) *Edge
- func (g *Graph) GetEdgeNodes(e *Edge, parentMetadata, childMetadata GraphElementMatcher) ([]*Node, []*Node)
- func (g *Graph) GetEdges(m GraphElementMatcher) []*Edge
- func (g *Graph) GetFirstLink(parent, child *Node, metadata Metadata) *Edge
- func (g *Graph) GetHost() string
- func (g *Graph) GetNode(i Identifier) *Node
- func (g *Graph) GetNodeEdges(n *Node, m GraphElementMatcher) []*Edge
- func (g *Graph) GetNodes(m GraphElementMatcher) []*Node
- func (g *Graph) GetNodesMap(t GraphContext) map[Identifier]*Node
- func (g *Graph) Link(n1 *Node, n2 *Node, m Metadata, h ...string) *Edge
- func (g *Graph) LookupChildren(n *Node, f GraphElementMatcher, em GraphElementMatcher) (nodes []*Node)
- func (g *Graph) LookupFirstChild(n *Node, f GraphElementMatcher) *Node
- func (g *Graph) LookupFirstNode(m GraphElementMatcher) *Node
- func (g *Graph) LookupParents(n *Node, f GraphElementMatcher, em GraphElementMatcher) (nodes []*Node)
- func (g *Graph) LookupShortestPath(n *Node, m GraphElementMatcher, em GraphElementMatcher) []*Node
- func (g *Graph) MarshalJSON() ([]byte, error)
- func (g *Graph) NewEdge(i Identifier, p *Node, c *Node, m Metadata, h ...string) *Edge
- func (g *Graph) NewNode(i Identifier, m Metadata, h ...string) *Node
- func (g *Graph) NodeAdded(n *Node) bool
- func (g *Graph) NodeDeleted(n *Node)
- func (g *Graph) NodeUpdated(n *Node) bool
- func (g *Graph) Origin() string
- func (g *Graph) RemoveEventListener(l GraphEventListener)
- func (g *Graph) SetMetadata(i interface{}, m Metadata) bool
- func (g *Graph) StartMetadataTransaction(i interface{}) *MetadataTransaction
- func (g *Graph) String() string
- func (g *Graph) Unlink(n1 *Node, n2 *Node)
- type GraphBackend
- type GraphContext
- type GraphElementFilter
- type GraphElementMatcher
- type GraphEventHandler
- type GraphEventListener
- type GraphIndexer
- func (i *GraphIndexer) AddEventListener(l GraphEventListener)
- func (i *GraphIndexer) FromHash(hash string) (nodes []*Node, values []interface{})
- func (i *GraphIndexer) OnNodeAdded(n *Node)
- func (i *GraphIndexer) OnNodeDeleted(n *Node)
- func (i *GraphIndexer) OnNodeUpdated(n *Node)
- func (i *GraphIndexer) RemoveEventListener(l GraphEventListener)
- func (i *GraphIndexer) Start()
- func (i *GraphIndexer) Stop()
- type GraphListenerHandler
- type HostNodeTIDMap
- type Identifier
- type Linker
- type MemoryBackend
- func (m *MemoryBackend) EdgeAdded(e *Edge) bool
- func (m *MemoryBackend) EdgeDeleted(e *Edge) bool
- func (m *MemoryBackend) GetEdge(i Identifier, t GraphContext) []*Edge
- func (m *MemoryBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) ([]*Node, []*Node)
- func (m MemoryBackend) GetEdges(t GraphContext, metadata GraphElementMatcher) (edges []*Edge)
- func (m *MemoryBackend) GetNode(i Identifier, t GraphContext) []*Node
- func (m *MemoryBackend) GetNodeEdges(n *Node, t GraphContext, meta GraphElementMatcher) []*Edge
- func (m MemoryBackend) GetNodes(t GraphContext, metadata GraphElementMatcher) (nodes []*Node)
- func (m *MemoryBackend) IsHistorySupported() bool
- func (m *MemoryBackend) MetadataUpdated(i interface{}) bool
- func (m *MemoryBackend) NodeAdded(n *Node) bool
- func (m *MemoryBackend) NodeDeleted(n *Node) (removed bool)
- type MemoryBackendEdge
- func (e MemoryBackendEdge) GetFieldInt64(field string) (_ int64, err error)
- func (e MemoryBackendEdge) GetFieldString(field string) (_ string, err error)
- func (e MemoryBackendEdge) GetFieldStringList(name string) ([]string, error)
- func (e MemoryBackendEdge) GetFields() ([]string, error)
- func (e MemoryBackendEdge) Host() string
- func (e MemoryBackendEdge) Metadata() Metadata
- func (e MemoryBackendEdge) Origin() string
- func (e MemoryBackendEdge) SetOrigin(origin string)
- type MemoryBackendNode
- func (e MemoryBackendNode) GetField(name string) (interface{}, error)
- func (e MemoryBackendNode) GetFieldInt64(field string) (_ int64, err error)
- func (e MemoryBackendNode) GetFieldString(field string) (_ string, err error)
- func (e MemoryBackendNode) GetFieldStringList(name string) ([]string, error)
- func (e MemoryBackendNode) GetFields() ([]string, error)
- func (e MemoryBackendNode) Host() string
- func (e MemoryBackendNode) MatchMetadata(f GraphElementMatcher) bool
- func (e MemoryBackendNode) Metadata() Metadata
- func (e MemoryBackendNode) Origin() string
- func (e MemoryBackendNode) SetOrigin(origin string)
- type Metadata
- type MetadataIndexer
- type MetadataIndexerLinker
- type MetadataTransaction
- type Node
- func (n *Node) Decode(i interface{}) error
- func (e *Node) GetField(name string) (interface{}, error)
- func (e *Node) GetFieldInt64(field string) (_ int64, err error)
- func (e *Node) GetFieldString(field string) (_ string, err error)
- func (e *Node) GetFieldStringList(name string) ([]string, error)
- func (e *Node) GetFields() ([]string, error)
- func (e *Node) Host() string
- func (n *Node) MarshalJSON() ([]byte, error)
- func (e *Node) MatchMetadata(f GraphElementMatcher) bool
- func (e *Node) Metadata() Metadata
- func (e *Node) Origin() string
- func (e *Node) SetOrigin(origin string)
- func (n *Node) String() string
- type NodeHasher
- type OrientDBBackend
- func (o *OrientDBBackend) EdgeAdded(e *Edge) bool
- func (o *OrientDBBackend) EdgeDeleted(e *Edge) bool
- func (o *OrientDBBackend) GetEdge(i Identifier, t GraphContext) []*Edge
- func (o *OrientDBBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) (parents []*Node, children []*Node)
- func (o *OrientDBBackend) GetEdges(t GraphContext, m GraphElementMatcher) (edges []*Edge)
- func (o *OrientDBBackend) GetNode(i Identifier, t GraphContext) (nodes []*Node)
- func (o *OrientDBBackend) GetNodeEdges(n *Node, t GraphContext, m GraphElementMatcher) (edges []*Edge)
- func (o *OrientDBBackend) GetNodes(t GraphContext, m GraphElementMatcher) (nodes []*Node)
- func (o *OrientDBBackend) IsHistorySupported() bool
- func (o *OrientDBBackend) MetadataUpdated(i interface{}) bool
- func (o *OrientDBBackend) NodeAdded(n *Node) bool
- func (o *OrientDBBackend) NodeDeleted(n *Node) bool
- type ResourceLinker
- type SyncMsg
- type SyncRequestMsg
- type TimedSearchQuery
Constants ¶
const ( CacheOnlyMode int = iota PersistentOnlyMode DefaultMode )
Define the running cache mode, memory and/or persistent
const ( NodeUpdated graphEventType = iota + 1 NodeAdded NodeDeleted EdgeUpdated EdgeAdded EdgeDeleted )
const ( SyncMsgType = "Sync" SyncRequestMsgType = "SyncRequest" SyncReplyMsgType = "SyncReply" OriginGraphDeletedMsgType = "OriginGraphDeleted" NodeUpdatedMsgType = "NodeUpdated" NodeDeletedMsgType = "NodeDeleted" NodeAddedMsgType = "NodeAdded" EdgeUpdatedMsgType = "EdgeUpdated" EdgeDeletedMsgType = "EdgeDeleted" EdgeAddedMsgType = "EdgeAdded" )
Graph message type
const ( SortByInt64 int = iota + 1 SortByString )
const (
// Namespace used for WebSocket message
Namespace = "Graph"
)
Variables ¶
var ( ErrSyncRequestMalFormed = errors.New("SyncRequestMsg malformed") ErrSyncMsgMalFormed = errors.New("SyncMsg/SyncReplyMsg malformed") )
Graph error message
Functions ¶
func NewFilterForEdge ¶ added in v0.10.0
func NewFilterForEdge(parent Identifier, child Identifier) *filters.Filter
NewFilterForEdge creates a filter based on parent or child
func UnmarshalMessage ¶ added in v0.19.1
func UnmarshalMessage(msg *ws.StructMessage) (string, interface{}, error)
UnmarshalMessage deserialize the websocket message
Types ¶
type CachedBackend ¶ added in v0.10.0
type CachedBackend struct {
// contains filtered or unexported fields
}
CachedBackend describes a cache mechanism in memory and/or persistent database
func NewCachedBackend ¶ added in v0.10.0
func NewCachedBackend(persistent GraphBackend) (*CachedBackend, error)
NewCachedBackend creates new graph cache mechanism
func (*CachedBackend) EdgeAdded ¶ added in v0.12.0
func (c *CachedBackend) EdgeAdded(e *Edge) bool
EdgeAdded add an edge in the cache
func (*CachedBackend) EdgeDeleted ¶ added in v0.12.0
func (c *CachedBackend) EdgeDeleted(e *Edge) bool
EdgeDeleted delete an edge in the cache
func (*CachedBackend) GetEdge ¶ added in v0.10.0
func (c *CachedBackend) GetEdge(i Identifier, t GraphContext) []*Edge
GetEdge retrieve an edge within a time slice
func (*CachedBackend) GetEdgeNodes ¶ added in v0.10.0
func (c *CachedBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) ([]*Node, []*Node)
GetEdgeNodes retrieve a list of nodes from an edge within a time slice, matching metadata
func (*CachedBackend) GetEdges ¶ added in v0.10.0
func (c *CachedBackend) GetEdges(t GraphContext, m GraphElementMatcher) []*Edge
GetEdges returns a list of edges with a time slice, matching metadata
func (*CachedBackend) GetNode ¶ added in v0.10.0
func (c *CachedBackend) GetNode(i Identifier, t GraphContext) []*Node
GetNode retrieve a node from the cache within a time slice
func (*CachedBackend) GetNodeEdges ¶ added in v0.10.0
func (c *CachedBackend) GetNodeEdges(n *Node, t GraphContext, m GraphElementMatcher) (edges []*Edge)
GetNodeEdges retrieve a list of edges from a node within a time slice, matching metadata
func (*CachedBackend) GetNodes ¶ added in v0.10.0
func (c *CachedBackend) GetNodes(t GraphContext, m GraphElementMatcher) []*Node
GetNodes returns a list of nodes with a time slice, matching metadata
func (*CachedBackend) IsHistorySupported ¶ added in v0.17.0
func (c *CachedBackend) IsHistorySupported() bool
IsHistorySupported returns whether the persistent backend supports history
func (*CachedBackend) MetadataUpdated ¶ added in v0.12.0
func (c *CachedBackend) MetadataUpdated(i interface{}) bool
MetadataUpdated updates metadata
func (*CachedBackend) NodeAdded ¶ added in v0.12.0
func (c *CachedBackend) NodeAdded(n *Node) bool
NodeAdded same the node in the cache
func (*CachedBackend) NodeDeleted ¶ added in v0.12.0
func (c *CachedBackend) NodeDeleted(n *Node) bool
NodeDeleted Delete the node in the cache
func (*CachedBackend) SetMode ¶ added in v0.10.0
func (c *CachedBackend) SetMode(mode int)
SetMode set cache mode
type DefaultGraphListener ¶ added in v0.3.0
type DefaultGraphListener struct { }
DefaultGraphListener 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)
OnEdgeAdded event
func (*DefaultGraphListener) OnEdgeDeleted ¶ added in v0.3.0
func (c *DefaultGraphListener) OnEdgeDeleted(e *Edge)
OnEdgeDeleted event
func (*DefaultGraphListener) OnEdgeUpdated ¶ added in v0.3.0
func (c *DefaultGraphListener) OnEdgeUpdated(e *Edge)
OnEdgeUpdated event
func (*DefaultGraphListener) OnNodeAdded ¶ added in v0.3.0
func (c *DefaultGraphListener) OnNodeAdded(n *Node)
OnNodeAdded event
func (*DefaultGraphListener) OnNodeDeleted ¶ added in v0.3.0
func (c *DefaultGraphListener) OnNodeDeleted(n *Node)
OnNodeDeleted event
func (*DefaultGraphListener) OnNodeUpdated ¶ added in v0.3.0
func (c *DefaultGraphListener) OnNodeUpdated(n *Node)
OnNodeUpdated event
type DefaultLinker ¶ added in v0.20.0
type DefaultLinker struct { }
func (*DefaultLinker) GetABLinks ¶ added in v0.20.0
func (dl *DefaultLinker) GetABLinks(node *Node) []*Edge
func (*DefaultLinker) GetBALinks ¶ added in v0.20.0
func (dl *DefaultLinker) GetBALinks(node *Node) []*Edge
type Edge ¶
type Edge struct {
// contains filtered or unexported fields
}
Edge of the graph linked by a parent and a child
func CreateEdge ¶ added in v0.20.0
func CreateEdge(i Identifier, p *Node, c *Node, m Metadata, t time.Time, h string, s common.ServiceType) *Edge
func (*Edge) GetFieldInt64 ¶ added in v0.10.0
func (*Edge) GetFieldString ¶ added in v0.10.0
func (*Edge) GetFieldStringList ¶ added in v0.12.0
func (*Edge) GetParent ¶ added in v0.4.0
func (e *Edge) GetParent() Identifier
GetParent returns parent
func (*Edge) MarshalJSON ¶
MarshalJSON serialize in JSON
func (*Edge) MatchMetadata ¶ added in v0.4.0
func (e *Edge) MatchMetadata(f GraphElementMatcher) bool
type ElasticSearchBackend ¶ added in v0.6.0
type ElasticSearchBackend struct { GraphBackend // contains filtered or unexported fields }
ElasticSearchBackend describes a presisent backend based on ElasticSearch
func NewElasticSearchBackendFromClient ¶ added in v0.18.0
func NewElasticSearchBackendFromClient(client es.ClientInterface) (*ElasticSearchBackend, error)
NewElasticSearchBackendFromClient creates a new graph backend using the given elasticsearch client connection
func NewElasticSearchBackendFromConfig ¶ added in v0.6.0
func NewElasticSearchBackendFromConfig(backend string, etcdClient *etcd.Client) (*ElasticSearchBackend, error)
NewElasticSearchBackendFromConfig creates a new graph backend based on configuration file parameters
func (*ElasticSearchBackend) EdgeAdded ¶ added in v0.12.0
func (b *ElasticSearchBackend) EdgeAdded(e *Edge) bool
EdgeAdded add an edge in the database
func (*ElasticSearchBackend) EdgeDeleted ¶ added in v0.12.0
func (b *ElasticSearchBackend) EdgeDeleted(e *Edge) bool
EdgeDeleted delete an edge in the database
func (*ElasticSearchBackend) GetEdge ¶ added in v0.6.0
func (b *ElasticSearchBackend) GetEdge(i Identifier, t GraphContext) []*Edge
GetEdge get an edge within a time slice
func (*ElasticSearchBackend) GetEdgeNodes ¶ added in v0.6.0
func (b *ElasticSearchBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) (parents []*Node, children []*Node)
GetEdgeNodes returns the parents and child nodes of an edge within time slice, matching metadatas
func (*ElasticSearchBackend) GetEdges ¶ added in v0.6.0
func (b *ElasticSearchBackend) GetEdges(t GraphContext, m GraphElementMatcher) []*Edge
GetEdges returns a list of edges within time slice, matching metadata
func (*ElasticSearchBackend) GetNode ¶ added in v0.6.0
func (b *ElasticSearchBackend) GetNode(i Identifier, t GraphContext) []*Node
GetNode get a node within a time slice
func (*ElasticSearchBackend) GetNodeEdges ¶ added in v0.6.0
func (b *ElasticSearchBackend) GetNodeEdges(n *Node, t GraphContext, m GraphElementMatcher) (edges []*Edge)
GetNodeEdges returns a list of a node edges within time slice
func (*ElasticSearchBackend) GetNodes ¶ added in v0.6.0
func (b *ElasticSearchBackend) GetNodes(t GraphContext, m GraphElementMatcher) []*Node
GetNodes returns a list of nodes within time slice, matching metadata
func (*ElasticSearchBackend) IsHistorySupported ¶ added in v0.17.0
func (b *ElasticSearchBackend) IsHistorySupported() bool
IsHistorySupported returns that this backend does support history
func (*ElasticSearchBackend) MetadataUpdated ¶ added in v0.12.0
func (b *ElasticSearchBackend) MetadataUpdated(i interface{}) bool
MetadataUpdated updates a node metadata in the database
func (*ElasticSearchBackend) NodeAdded ¶ added in v0.12.0
func (b *ElasticSearchBackend) NodeAdded(n *Node) bool
NodeAdded add a node
func (*ElasticSearchBackend) NodeDeleted ¶ added in v0.12.0
func (b *ElasticSearchBackend) NodeDeleted(n *Node) bool
NodeDeleted delete a node
func (*ElasticSearchBackend) Query ¶ added in v0.10.0
func (b *ElasticSearchBackend) Query(typ string, tsq *TimedSearchQuery) (sr *elastic.SearchResult, _ error)
Query the database for a "node" or "edge"
type Graph ¶
Graph describes the graph object based on events and context mechanism An associated backend is used as storage
func NewGraph ¶
func NewGraph(host string, backend GraphBackend, service common.ServiceType) *Graph
NewGraph creates a new graph based on the backend
func NewGraphFromConfig ¶ added in v0.4.0
func NewGraphFromConfig(backend GraphBackend, service common.ServiceType) *Graph
NewGraphFromConfig creates a new graph based on configuration
func (*Graph) AddEventListener ¶
func (g *Graph) AddEventListener(l GraphEventListener)
AddEventListener subscibe a new graph listener
func (*Graph) AddMetadata ¶ added in v0.2.0
AddMetadata add a metadata to an associated edge or node
func (*Graph) AreLinked ¶
func (g *Graph) AreLinked(n1 *Node, n2 *Node, m GraphElementMatcher) bool
AreLinked returns true if nodes n1, n2 are linked
func (*Graph) CloneWithContext ¶ added in v0.17.0
func (g *Graph) CloneWithContext(context GraphContext) (*Graph, error)
CloneWithContext creates a new graph based on the given one and the given context
func (*Graph) CreateEdge ¶ added in v0.20.0
func (*Graph) CreateNode ¶ added in v0.20.0
func (*Graph) DelMetadata ¶ added in v0.10.0
DelMetadata delete a metadata to an associated edge or node
func (*Graph) DelOriginGraph ¶ added in v0.20.0
DelOriginGraph delete the associated node with the origin
func (*Graph) Diff ¶ added in v0.14.0
func (g *Graph) Diff(newGraph *Graph) (addedNodes []*Node, removedNodes []*Node, addedEdges []*Edge, removedEdges []*Edge)
Diff computes the difference between two graphs
func (*Graph) EdgeUpdated ¶ added in v0.12.0
EdgeUpdated updates an edge
func (*Graph) GetContext ¶ added in v0.4.0
func (g *Graph) GetContext() GraphContext
GetContext returns the current context
func (*Graph) GetEdgeNodes ¶ added in v0.3.0
func (g *Graph) GetEdgeNodes(e *Edge, parentMetadata, childMetadata GraphElementMatcher) ([]*Node, []*Node)
GetEdgeNodes returns a list of nodes of an edge
func (*Graph) GetEdges ¶
func (g *Graph) GetEdges(m GraphElementMatcher) []*Edge
GetEdges returns a list of edges
func (*Graph) GetFirstLink ¶ added in v0.17.0
GetFirstLink get Link between the parent and the child node
func (*Graph) GetNodeEdges ¶ added in v0.4.0
func (g *Graph) GetNodeEdges(n *Node, m GraphElementMatcher) []*Edge
GetNodeEdges returns a list of edges of a node
func (*Graph) GetNodes ¶
func (g *Graph) GetNodes(m GraphElementMatcher) []*Node
GetNodes returns a list of nodes
func (*Graph) GetNodesMap ¶ added in v0.15.0
func (g *Graph) GetNodesMap(t GraphContext) map[Identifier]*Node
GetNodesMap returns a map of nodes within a time slice
func (*Graph) LookupChildren ¶
func (g *Graph) LookupChildren(n *Node, f GraphElementMatcher, em GraphElementMatcher) (nodes []*Node)
LookupChildren returns a list of children nodes
func (*Graph) LookupFirstChild ¶ added in v0.2.0
func (g *Graph) LookupFirstChild(n *Node, f GraphElementMatcher) *Node
LookupFirstChild returns the child
func (*Graph) LookupFirstNode ¶
func (g *Graph) LookupFirstNode(m GraphElementMatcher) *Node
LookupFirstNode returns the fist node matching metadata
func (*Graph) LookupParents ¶ added in v0.6.0
func (g *Graph) LookupParents(n *Node, f GraphElementMatcher, em GraphElementMatcher) (nodes []*Node)
LookupParents returns the associated parents edge of a node
func (*Graph) LookupShortestPath ¶ added in v0.3.0
func (g *Graph) LookupShortestPath(n *Node, m GraphElementMatcher, em GraphElementMatcher) []*Node
LookupShortestPath based on Dijkstra algorithm
func (*Graph) MarshalJSON ¶
MarshalJSON serialize the graph in JSON
func (*Graph) NewEdge ¶
NewEdge creates a new edge in the graph based on Identifier, parent, child nodes and metadata
func (*Graph) NewNode ¶
func (g *Graph) NewNode(i Identifier, m Metadata, h ...string) *Node
NewNode creates a new node in the graph with attached metadata
func (*Graph) NodeUpdated ¶ added in v0.12.0
NodeUpdated updates a node
func (*Graph) RemoveEventListener ¶ added in v0.3.0
func (g *Graph) RemoveEventListener(l GraphEventListener)
RemoveEventListener unsubscribe a graph listener
func (*Graph) SetMetadata ¶
SetMetadata associate metadata to an edge or node
func (*Graph) StartMetadataTransaction ¶ added in v0.3.0
func (g *Graph) StartMetadataTransaction(i interface{}) *MetadataTransaction
StartMetadataTransaction start a new transaction
type GraphBackend ¶
type GraphBackend interface { NodeAdded(n *Node) bool NodeDeleted(n *Node) bool GetNode(i Identifier, at GraphContext) []*Node GetNodeEdges(n *Node, at GraphContext, m GraphElementMatcher) []*Edge EdgeAdded(e *Edge) bool EdgeDeleted(e *Edge) bool GetEdge(i Identifier, at GraphContext) []*Edge GetEdgeNodes(e *Edge, at GraphContext, parentMetadata, childMetadata GraphElementMatcher) ([]*Node, []*Node) MetadataUpdated(e interface{}) bool GetNodes(t GraphContext, m GraphElementMatcher) []*Node GetEdges(t GraphContext, m GraphElementMatcher) []*Edge IsHistorySupported() bool }
GraphBackend interface mechanism used as storage
func NewBackendByName ¶ added in v0.18.0
func NewBackendByName(name string, etcdClient *etcd.Client) (backend GraphBackend, err error)
NewBackendByName creates a new graph backend based on the name memory, orientdb, elasticsearch backend are supported
type GraphContext ¶ added in v0.4.0
GraphContext describes within time slice
type GraphElementFilter ¶ added in v0.16.0
type GraphElementFilter struct {
// contains filtered or unexported fields
}
GraphElementFilter implements GraphElementMatcher interface based on filter
func NewGraphElementFilter ¶ added in v0.16.0
func NewGraphElementFilter(f *filters.Filter) *GraphElementFilter
NewGraphElementFilter returns a new GraphElementFilter
type GraphElementMatcher ¶ added in v0.16.0
type GraphElementMatcher interface { Match(g filters.Getter) bool Filter() (*filters.Filter, error) }
GraphElementMatcher defines an interface used to match an element
type GraphEventHandler ¶ added in v0.16.0
func NewGraphEventHandler ¶ added in v0.16.0
func NewGraphEventHandler(maxEvents int) *GraphEventHandler
func (*GraphEventHandler) AddEventListener ¶ added in v0.16.0
func (g *GraphEventHandler) AddEventListener(l GraphEventListener)
AddEventListener subscibe a new graph listener
func (*GraphEventHandler) NotifyEvent ¶ added in v0.20.0
func (g *GraphEventHandler) NotifyEvent(kind graphEventType, element interface{})
func (*GraphEventHandler) RemoveEventListener ¶ added in v0.16.0
func (g *GraphEventHandler) RemoveEventListener(l GraphEventListener)
RemoveEventListener unsubscribe a graph listener
type GraphEventListener ¶
type GraphEventListener interface { OnNodeUpdated(n *Node) OnNodeAdded(n *Node) OnNodeDeleted(n *Node) OnEdgeUpdated(e *Edge) OnEdgeAdded(e *Edge) OnEdgeDeleted(e *Edge) }
GraphEventListener describes the graph events interface mechanism
type GraphIndexer ¶ added in v0.16.0
type GraphIndexer struct { common.RWMutex DefaultGraphListener // contains filtered or unexported fields }
GraphIndexer provides a way to index graph nodes. A node can be mapped to multiple hash,value pairs. A hash can also be mapped to multiple nodes.
func NewGraphIndexer ¶ added in v0.16.0
func NewGraphIndexer(g *Graph, listenerHandler GraphListenerHandler, hashNode NodeHasher, appendOnly bool) *GraphIndexer
NewGraphIndexer returns a new graph indexer with the associated hashing callback
func (*GraphIndexer) AddEventListener ¶ added in v0.18.0
func (i *GraphIndexer) AddEventListener(l GraphEventListener)
AddEventListener subscibe a new graph listener
func (*GraphIndexer) FromHash ¶ added in v0.16.0
func (i *GraphIndexer) FromHash(hash string) (nodes []*Node, values []interface{})
FromHash returns the nodes mapped by a hash along with their associated values
func (*GraphIndexer) OnNodeAdded ¶ added in v0.16.0
func (i *GraphIndexer) OnNodeAdded(n *Node)
OnNodeAdded event
func (*GraphIndexer) OnNodeDeleted ¶ added in v0.16.0
func (i *GraphIndexer) OnNodeDeleted(n *Node)
OnNodeDeleted event
func (*GraphIndexer) OnNodeUpdated ¶ added in v0.16.0
func (i *GraphIndexer) OnNodeUpdated(n *Node)
OnNodeUpdated event
func (*GraphIndexer) RemoveEventListener ¶ added in v0.18.0
func (i *GraphIndexer) RemoveEventListener(l GraphEventListener)
RemoveEventListener unsubscribe a graph listener
func (*GraphIndexer) Start ¶ added in v0.17.0
func (i *GraphIndexer) Start()
Start registers the graph indexer as a graph listener
func (*GraphIndexer) Stop ¶ added in v0.17.0
func (i *GraphIndexer) Stop()
Stop removes the graph indexer from the graph listeners
type GraphListenerHandler ¶ added in v0.20.0
type GraphListenerHandler interface { AddEventListener(l GraphEventListener) RemoveEventListener(l GraphEventListener) }
type HostNodeTIDMap ¶ added in v0.9.0
HostNodeTIDMap a map of host and node ID
func BuildHostNodeTIDMap ¶ added in v0.9.0
func BuildHostNodeTIDMap(nodes []*Node) HostNodeTIDMap
BuildHostNodeTIDMap creates a map filled with host and associated node.ID
type MemoryBackend ¶
type MemoryBackend struct { GraphBackend // contains filtered or unexported fields }
MemoryBackend describes the memory backend
func NewMemoryBackend ¶
func NewMemoryBackend() (*MemoryBackend, error)
NewMemoryBackend creates a new graph memory backend
func (*MemoryBackend) EdgeAdded ¶ added in v0.12.0
func (m *MemoryBackend) EdgeAdded(e *Edge) bool
EdgeAdded event add an edge in the memory backend
func (*MemoryBackend) EdgeDeleted ¶ added in v0.12.0
func (m *MemoryBackend) EdgeDeleted(e *Edge) bool
EdgeDeleted in the graph backend
func (*MemoryBackend) GetEdge ¶
func (m *MemoryBackend) GetEdge(i Identifier, t GraphContext) []*Edge
GetEdge in the graph backend
func (*MemoryBackend) GetEdgeNodes ¶
func (m *MemoryBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) ([]*Node, []*Node)
GetEdgeNodes returns a list of nodes of an edge
func (MemoryBackend) GetEdges ¶
func (m MemoryBackend) GetEdges(t GraphContext, metadata GraphElementMatcher) (edges []*Edge)
GetEdges from the graph backend
func (*MemoryBackend) GetNode ¶
func (m *MemoryBackend) GetNode(i Identifier, t GraphContext) []*Node
GetNode from the graph backend
func (*MemoryBackend) GetNodeEdges ¶
func (m *MemoryBackend) GetNodeEdges(n *Node, t GraphContext, meta GraphElementMatcher) []*Edge
GetNodeEdges returns a list of edges of a node
func (MemoryBackend) GetNodes ¶
func (m MemoryBackend) GetNodes(t GraphContext, metadata GraphElementMatcher) (nodes []*Node)
GetNodes from the graph backend
func (*MemoryBackend) IsHistorySupported ¶ added in v0.17.0
func (m *MemoryBackend) IsHistorySupported() bool
IsHistorySupported returns that this backend doesn't support history
func (*MemoryBackend) MetadataUpdated ¶ added in v0.12.0
func (m *MemoryBackend) MetadataUpdated(i interface{}) bool
MetadataUpdated returns true
func (*MemoryBackend) NodeAdded ¶ added in v0.12.0
func (m *MemoryBackend) NodeAdded(n *Node) bool
NodeAdded in the graph backend
func (*MemoryBackend) NodeDeleted ¶ added in v0.12.0
func (m *MemoryBackend) NodeDeleted(n *Node) (removed bool)
NodeDeleted in the graph backend
type MemoryBackendEdge ¶
type MemoryBackendEdge struct {
*Edge
}
MemoryBackendEdge a memory backend edge
func (MemoryBackendEdge) GetFieldInt64 ¶ added in v0.10.0
func (MemoryBackendEdge) GetFieldString ¶ added in v0.20.0
func (MemoryBackendEdge) GetFieldStringList ¶ added in v0.12.0
type MemoryBackendNode ¶
type MemoryBackendNode struct { *Node // contains filtered or unexported fields }
MemoryBackendNode a memory backend node
func (MemoryBackendNode) GetFieldInt64 ¶ added in v0.10.0
func (MemoryBackendNode) GetFieldString ¶ added in v0.10.0
func (MemoryBackendNode) GetFieldStringList ¶ added in v0.12.0
func (MemoryBackendNode) MatchMetadata ¶ added in v0.4.0
func (e MemoryBackendNode) MatchMetadata(f GraphElementMatcher) bool
type Metadata ¶ added in v0.2.0
type Metadata map[string]interface{}
Metadata describes the graph node metadata type. It implements GraphElementMatcher based only on Metadata.
func (Metadata) Match ¶ added in v0.16.0
Match returns true if the the given element matches the metadata.
func (*Metadata) SetField ¶ added in v0.16.0
SetField set metadata value based on dot key ("a.b.c.d" = "ok")
func (*Metadata) SetFieldAndNormalize ¶ added in v0.19.0
SetFieldAndNormalize set metadata value after normalization (and deepcopy)
type MetadataIndexer ¶ added in v0.16.0
type MetadataIndexer struct { *GraphIndexer // contains filtered or unexported fields }
MetadataIndexer describes a metadata based graph indexer
func NewMetadataIndexer ¶ added in v0.16.0
func NewMetadataIndexer(g *Graph, listenerHandler GraphListenerHandler, m GraphElementMatcher, indexes ...string) (indexer *MetadataIndexer)
NewMetadataIndexer returns a new metadata graph indexer for the nodes matching the graph filter `m`, indexing the metadata with `indexes`
func (*MetadataIndexer) Get ¶ added in v0.16.0
func (m *MetadataIndexer) Get(values ...interface{}) ([]*Node, []interface{})
Get computes the hash of the passed parameters and returns the matching nodes with their respective value
func (*MetadataIndexer) Hash ¶ added in v0.16.0
func (m *MetadataIndexer) Hash(values ...interface{}) string
Hash computes the hash of the passed parameters
type MetadataIndexerLinker ¶ added in v0.20.0
type MetadataIndexerLinker struct { *ResourceLinker // contains filtered or unexported fields }
func NewMetadataIndexerLinker ¶ added in v0.20.0
func NewMetadataIndexerLinker(g *Graph, indexer1, indexer2 *MetadataIndexer, edgeMetadata Metadata) *MetadataIndexerLinker
func (*MetadataIndexerLinker) GetABLinks ¶ added in v0.20.0
func (mil *MetadataIndexerLinker) GetABLinks(node *Node) (edges []*Edge)
func (*MetadataIndexerLinker) GetBALinks ¶ added in v0.20.0
func (mil *MetadataIndexerLinker) GetBALinks(node *Node) (edges []*Edge)
type MetadataTransaction ¶ added in v0.3.0
type MetadataTransaction struct {
// contains filtered or unexported fields
}
MetadataTransaction describes a metadata transaction in the graph
func (*MetadataTransaction) AddMetadata ¶ added in v0.3.0
func (t *MetadataTransaction) AddMetadata(k string, v interface{})
AddMetadata in the current transaction
func (*MetadataTransaction) Commit ¶ added in v0.3.0
func (t *MetadataTransaction) Commit()
Commit the current transaction to the graph
func (*MetadataTransaction) DelMetadata ¶ added in v0.19.1
func (t *MetadataTransaction) DelMetadata(k string)
DelMetadata in the current transaction
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
Node of the graph
func CreateNode ¶ added in v0.20.0
func CreateNode(i Identifier, m Metadata, t time.Time, h string, s common.ServiceType) *Node
func (*Node) GetFieldInt64 ¶ added in v0.10.0
func (*Node) GetFieldString ¶ added in v0.10.0
func (*Node) GetFieldStringList ¶ added in v0.12.0
func (*Node) MarshalJSON ¶
MarshalJSON serialize in JSON
func (*Node) MatchMetadata ¶ added in v0.4.0
func (e *Node) MatchMetadata(f GraphElementMatcher) bool
type NodeHasher ¶ added in v0.16.0
NodeHasher describes a callback that is called to map a node to a set of hash,value pairs
type OrientDBBackend ¶ added in v0.4.0
type OrientDBBackend struct { GraphBackend // contains filtered or unexported fields }
OrientDBBackend describes an OrientDB backend
func NewOrientDBBackend ¶ added in v0.4.0
func NewOrientDBBackend(addr string, database string, username string, password string) (*OrientDBBackend, error)
NewOrientDBBackend creates a new graph backend and connect to an OrientDB instance
func NewOrientDBBackendFromConfig ¶ added in v0.4.0
func NewOrientDBBackendFromConfig(backend string) (*OrientDBBackend, error)
NewOrientDBBackendFromConfig creates a new OrientDB database client based on configuration
func (*OrientDBBackend) EdgeAdded ¶ added in v0.12.0
func (o *OrientDBBackend) EdgeAdded(e *Edge) bool
EdgeAdded add a node in the database
func (*OrientDBBackend) EdgeDeleted ¶ added in v0.12.0
func (o *OrientDBBackend) EdgeDeleted(e *Edge) bool
EdgeDeleted delete a node in the database
func (*OrientDBBackend) GetEdge ¶ added in v0.4.0
func (o *OrientDBBackend) GetEdge(i Identifier, t GraphContext) []*Edge
GetEdge get an edge within a time slice
func (*OrientDBBackend) GetEdgeNodes ¶ added in v0.4.0
func (o *OrientDBBackend) GetEdgeNodes(e *Edge, t GraphContext, parentMetadata, childMetadata GraphElementMatcher) (parents []*Node, children []*Node)
GetEdgeNodes returns the parents and child nodes of an edge within time slice, matching metadata
func (*OrientDBBackend) GetEdges ¶ added in v0.4.0
func (o *OrientDBBackend) GetEdges(t GraphContext, m GraphElementMatcher) (edges []*Edge)
GetEdges returns a list of edges within time slice, matching metadata
func (*OrientDBBackend) GetNode ¶ added in v0.4.0
func (o *OrientDBBackend) GetNode(i Identifier, t GraphContext) (nodes []*Node)
GetNode get a node within a time slice
func (*OrientDBBackend) GetNodeEdges ¶ added in v0.4.0
func (o *OrientDBBackend) GetNodeEdges(n *Node, t GraphContext, m GraphElementMatcher) (edges []*Edge)
GetNodeEdges returns a list of a node edges within time slice
func (*OrientDBBackend) GetNodes ¶ added in v0.4.0
func (o *OrientDBBackend) GetNodes(t GraphContext, m GraphElementMatcher) (nodes []*Node)
GetNodes returns a list of nodes within time slice, matching metadata
func (*OrientDBBackend) IsHistorySupported ¶ added in v0.17.0
func (o *OrientDBBackend) IsHistorySupported() bool
IsHistorySupported returns that this backend does support history
func (*OrientDBBackend) MetadataUpdated ¶ added in v0.12.0
func (o *OrientDBBackend) MetadataUpdated(i interface{}) bool
MetadataUpdated returns true if a metadata has been updated in the database, based on ArchivedAt
func (*OrientDBBackend) NodeAdded ¶ added in v0.12.0
func (o *OrientDBBackend) NodeAdded(n *Node) bool
NodeAdded add a node in the database
func (*OrientDBBackend) NodeDeleted ¶ added in v0.12.0
func (o *OrientDBBackend) NodeDeleted(n *Node) bool
NodeDeleted delete a node in the database
type ResourceLinker ¶ added in v0.20.0
type ResourceLinker struct {
// contains filtered or unexported fields
}
func NewResourceLinker ¶ added in v0.20.0
func NewResourceLinker(g *Graph, glh1 GraphListenerHandler, glh2 GraphListenerHandler, linker Linker, m Metadata) *ResourceLinker
func (*ResourceLinker) Start ¶ added in v0.20.0
func (rl *ResourceLinker) Start()
func (*ResourceLinker) Stop ¶ added in v0.20.0
func (rl *ResourceLinker) Stop()
type SyncRequestMsg ¶ added in v0.14.0
type SyncRequestMsg struct { GraphContext GremlinFilter string }
SyncRequestMsg describes a graph synchro request message
type TimedSearchQuery ¶ added in v0.10.0
type TimedSearchQuery struct { filters.SearchQuery TimeFilter *filters.Filter MetadataFilter *filters.Filter }
TimedSearchQuery describes a search query within a time slice and metadata filters