Class ThreadSafeGraph
A Thread Safe version of the Graph class.
Implements
Inherited Members
Namespace: VDS.RDF
Assembly: dotNetRdf.dll
Syntax
public class ThreadSafeGraph : Graph, IGraph, INodeFactory, IDisposable, ITripleIndex, IEquatable<IGraph>, IEquatable<Graph>, IEquatable<ThreadSafeGraph>
Remarks
Performance will be marginally worse than a normal Graph but in multi-threaded scenarios this will likely be offset by the benefits of multi-threading.
Constructors
| Edit this page View SourceThreadSafeGraph()
Creates a new Thread Safe Graph.
Declaration
public ThreadSafeGraph()
ThreadSafeGraph(BaseTripleCollection)
Creates a new Thread Safe graph using the given Triple Collection.
Declaration
public ThreadSafeGraph(BaseTripleCollection tripleCollection)
Parameters
| Type | Name | Description |
|---|---|---|
| BaseTripleCollection | tripleCollection | Triple Collection. |
ThreadSafeGraph(IRefNode)
Creates a new named thread-safe graph.
Declaration
public ThreadSafeGraph(IRefNode name)
Parameters
| Type | Name | Description |
|---|---|---|
| IRefNode | name | The graph name. |
ThreadSafeGraph(IRefNode, BaseTripleCollection)
Creates a new named thread-safe graph using the given triple collection.
Declaration
public ThreadSafeGraph(IRefNode name, BaseTripleCollection tripleCollection)
Parameters
| Type | Name | Description |
|---|---|---|
| IRefNode | name | The graph name. |
| BaseTripleCollection | tripleCollection | The triple collection that the graph contains. |
Remarks
tripleCollection will be wrapped as a ThreadSafeTripleCollection by this constructor.
ThreadSafeGraph(IRefNode, INodeFactory, IUriFactory, BaseTripleCollection, bool)
Creates a new Thread Safe graph using the given name, factories and triple collection.
Declaration
public ThreadSafeGraph(IRefNode name, INodeFactory nodeFactory = null, IUriFactory uriFactory = null, BaseTripleCollection tripleCollection = null, bool emptyNamespaceMap = false)
Parameters
| Type | Name | Description |
|---|---|---|
| IRefNode | name | |
| INodeFactory | nodeFactory | |
| IUriFactory | uriFactory | |
| BaseTripleCollection | tripleCollection | |
| bool | emptyNamespaceMap |
Remarks
If tripleCollection is not an instance of ThreadSafeTripleCollection, it will be wrapped in a ThreadSafeTripleCollection.
This constructor is used by the GraphFactory class in the Configuration namespace.
ThreadSafeGraph(IRefNode, ThreadSafeTripleCollection)
Creates a new named thread-safe graph using a thread-safe triple collection.
Declaration
public ThreadSafeGraph(IRefNode name, ThreadSafeTripleCollection tripleCollection)
Parameters
| Type | Name | Description |
|---|---|---|
| IRefNode | name | The graph name. |
| ThreadSafeTripleCollection | tripleCollection | The thread-safe triple collection that the graph contains. |
ThreadSafeGraph(ThreadSafeTripleCollection)
Creates a new Thread Safe graph using a Thread Safe triple collection.
Declaration
public ThreadSafeGraph(ThreadSafeTripleCollection tripleCollection)
Parameters
| Type | Name | Description |
|---|---|---|
| ThreadSafeTripleCollection | tripleCollection | Thread Safe triple collection. |
Fields
| Edit this page View Source_lockManager
Locking Manager for the Graph.
Declaration
protected ReaderWriterLockSlim _lockManager
Field Value
| Type | Description |
|---|---|
| ReaderWriterLockSlim |
Methods
| Edit this page View SourceAssert(IEnumerable<Triple>)
Asserts a List of Triples in the graph.
Declaration
public override bool Assert(IEnumerable<Triple> ts)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<Triple> | ts | List of Triples in the form of an IEnumerable. |
Returns
| Type | Description |
|---|---|
| bool |
Overrides
| Edit this page View SourceAssert(Triple)
Asserts a Triple in the Graph.
Declaration
public override bool Assert(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | The Triple to add to the Graph. |
Returns
| Type | Description |
|---|---|
| bool |
Overrides
| Edit this page View SourceDispose(bool)
Disposes of a Graph.
Declaration
protected override void Dispose(bool disposing)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | disposing |
Overrides
| Edit this page View SourceEquals(ThreadSafeGraph)
Implements equality testing between ThreadSafeGraph instances.
Declaration
public bool Equals(ThreadSafeGraph other)
Parameters
| Type | Name | Description |
|---|---|---|
| ThreadSafeGraph | other |
Returns
| Type | Description |
|---|---|
| bool |
GetBlankNode(string)
Returns the Blank Node with the given Identifier.
Declaration
public override IBlankNode GetBlankNode(string nodeId)
Parameters
| Type | Name | Description |
|---|---|---|
| string | nodeId | The Identifier of the Blank Node to select. |
Returns
| Type | Description |
|---|---|
| IBlankNode | Either the Blank Node or null if no Node with the given Identifier exists. |
Overrides
| Edit this page View SourceGetLiteralNode(string)
Returns the LiteralNode with the given Value if it exists.
Declaration
public override ILiteralNode GetLiteralNode(string literal)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | The literal value of the Node to select. |
Returns
| Type | Description |
|---|---|
| ILiteralNode | Either the LiteralNode Or null if no Node with the given Value exists. |
Overrides
Remarks
The LiteralNode in the Graph must have no Language or DataType set.
GetLiteralNode(string, string)
Returns the LiteralNode with the given Value in the given Language if it exists.
Declaration
public override ILiteralNode GetLiteralNode(string literal, string langspec)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | The literal value of the Node to select. |
| string | langspec | The Language Specifier for the Node to select. |
Returns
| Type | Description |
|---|---|
| ILiteralNode | Either the LiteralNode Or null if no Node with the given Value and Language Specifier exists. |
Overrides
| Edit this page View SourceGetLiteralNode(string, Uri)
Returns the LiteralNode with the given Value and given Data Type if it exists.
Declaration
public override ILiteralNode GetLiteralNode(string literal, Uri datatype)
Parameters
| Type | Name | Description |
|---|---|---|
| string | literal | The literal value of the Node to select. |
| Uri | datatype | The Uri for the Data Type of the Literal to select. |
Returns
| Type | Description |
|---|---|
| ILiteralNode | Either the LiteralNode Or null if no Node with the given Value and Data Type exists. |
Overrides
| Edit this page View SourceGetNextBlankNodeID()
Creates a new Blank Node ID and returns it.
Declaration
public override string GetNextBlankNodeID()
Returns
| Type | Description |
|---|---|
| string |
Overrides
| Edit this page View SourceGetTriples(Uri)
Gets all the Triples involving the given Uri.
Declaration
public override IEnumerable<Triple> GetTriples(Uri uri)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | uri | The Uri to find Triples involving. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
Overrides
| Edit this page View SourceGetTriples(INode)
Gets all the Triples involving the given Node.
Declaration
public override IEnumerable<Triple> GetTriples(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples involving. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
Overrides
| Edit this page View SourceGetTriplesWithObject(Uri)
Gets all the Triples with the given Uri as the Object.
Declaration
public override IEnumerable<Triple> GetTriplesWithObject(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | The Uri to find Triples with it as the Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
Overrides
| Edit this page View SourceGetTriplesWithObject(INode)
Gets all the Triples with the given Node as the Object.
Declaration
public override IEnumerable<Triple> GetTriplesWithObject(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples with it as the Object. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
Overrides
| Edit this page View SourceGetTriplesWithPredicate(Uri)
Gets all the Triples with the given Uri as the Predicate.
Declaration
public override IEnumerable<Triple> GetTriplesWithPredicate(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | The Uri to find Triples with it as the Predicate. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
Overrides
| Edit this page View SourceGetTriplesWithPredicate(INode)
Gets all the Triples with the given Node as the Predicate.
Declaration
public override IEnumerable<Triple> GetTriplesWithPredicate(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples with it as the Predicate. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> |
Overrides
| Edit this page View SourceGetTriplesWithSubject(Uri)
Gets all the Triples with the given Uri as the Subject.
Declaration
public override IEnumerable<Triple> GetTriplesWithSubject(Uri u)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | u | The Uri to find Triples with it as the Subject. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
Overrides
| Edit this page View SourceGetTriplesWithSubject(INode)
Gets all the Triples with the given Node as the Subject.
Declaration
public override IEnumerable<Triple> GetTriplesWithSubject(INode n)
Parameters
| Type | Name | Description |
|---|---|---|
| INode | n | The Node to find Triples with it as the Subject. |
Returns
| Type | Description |
|---|---|
| IEnumerable<Triple> | Zero/More Triples. |
Overrides
| Edit this page View SourceGetUriNode(string)
Returns the UriNode with the given QName if it exists.
Declaration
public override IUriNode GetUriNode(string qname)
Parameters
| Type | Name | Description |
|---|---|---|
| string | qname | The QName of the Node to select. |
Returns
| Type | Description |
|---|---|
| IUriNode |
Overrides
| Edit this page View SourceGetUriNode(Uri)
Returns the UriNode with the given Uri if it exists.
Declaration
public override IUriNode GetUriNode(Uri uri)
Parameters
| Type | Name | Description |
|---|---|---|
| Uri | uri | The Uri of the Node to select. |
Returns
| Type | Description |
|---|---|
| IUriNode | Either the UriNode Or null if no Node with the given Uri exists. |
Overrides
| Edit this page View SourceRetract(IEnumerable<Triple>)
Retracts a enumeration of Triples from the graph.
Declaration
public override bool Retract(IEnumerable<Triple> ts)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<Triple> | ts | Enumeration of Triples to retract. |
Returns
| Type | Description |
|---|---|
| bool |
Overrides
| Edit this page View SourceRetract(Triple)
Retracts a Triple from the Graph.
Declaration
public override bool Retract(Triple t)
Parameters
| Type | Name | Description |
|---|---|---|
| Triple | t | Triple to Retract. |
Returns
| Type | Description |
|---|---|
| bool |
Overrides
Remarks
Current implementation may have some defunct Nodes left in the Graph as only the Triple is retracted.