public final class ReteContainer
extends java.lang.Object
Constructor and Description |
---|
ReteContainer(Network network,
boolean threaded) |
Modifier and Type | Method and Description |
---|---|
void |
clearAll()
Clears all memory contents in the network.
|
void |
connect(Supplier supplier,
Receiver receiver)
Connects a receiver to a supplier
|
void |
connectAndSynchronize(Supplier supplier,
Receiver receiver)
Connects a receiver to a remote supplier, and synchronises it to the current contents of the supplier
|
void |
connectRemoteNodes(Address<? extends Supplier> supplier,
Address<? extends Receiver> receiver,
boolean synchronise)
Establishes connection between a supplier and a receiver node, regardless which container they are in.
|
void |
connectRemoteSupplier(Address<? extends Supplier> supplier,
Receiver receiver,
boolean synchronise)
Establishes connection between a remote supplier and a local receiver node.
|
void |
disconnect(Supplier supplier,
Receiver receiver)
Disconnects a receiver from a supplier
|
void |
disconnectAndDesynchronize(Supplier supplier,
Receiver receiver)
Disconnects a receiver from a supplier
|
void |
disconnectRemoteNodes(Address<? extends Supplier> supplier,
Address<? extends Receiver> receiver,
boolean desynchronise)
Severs connection between a supplier and a receiver node, regardless which container they are in.
|
void |
disconnectRemoteSupplier(Address<? extends Supplier> supplier,
Receiver receiver,
boolean desynchronise)
Severs connection between a remote supplier and a local receiver node.
|
void |
flushUpdates()
Finalises all update sequences and returns.
|
java.util.Collection<Node> |
getAllNodes()
Access all the Rete nodes inside this container.
|
org.eclipse.incquery.runtime.rete.network.ConnectionFactory |
getConnectionFactory() |
InputConnector |
getInputConnectionFactory() |
Network |
getNetwork() |
org.eclipse.incquery.runtime.rete.network.NodeFactory |
getNodeFactory() |
NodeProvisioner |
getProvisioner() |
boolean |
isLocal(Address<? extends Node> address)
Checks whether a certain address points to a node at this container.
|
void |
kill()
Stops this container.
|
<N extends Node> |
makeAddress(N node)
Provides an external address for the selected node.
|
java.util.Collection<Tuple> |
pullContents(Supplier supplier)
Retrieves a safe copy of the contents of a supplier.
|
java.util.Collection<Tuple> |
pullPropagatedContents(SingleInputNode supplier)
Retrieves the contents of a SingleInputNode's parentage.
|
void |
registerClearable(Clearable c)
Registers a pattern memory into the rete network.
|
long |
registerNode(Node n)
Registers a node into the rete network (should be called by constructor).
|
java.util.Map<java.lang.String,java.lang.Integer> |
remotePosMapping(Address<? extends Production> production)
Proxies for the getPosMapping() of Production nodes.
|
java.util.Collection<Tuple> |
remotePull(Address<? extends Supplier> supplier)
Retrieves the contents of a supplier for a remote caller.
|
<N extends Node> |
resolveLocal(Address<N> address)
Returns an addressed node at this container.
|
void |
sendConstructionUpdate(Receiver receiver,
Direction direction,
Tuple updateElement)
Sends an update message to the receiver node, indicating a newly found or lost partial matching.
|
void |
sendConstructionUpdates(Receiver receiver,
Direction direction,
java.util.Collection<Tuple> updateElements)
Sends several update messages atomically to the receiver node, indicating a newly found or lost partial matching.
|
void |
sendUpdateInternal(Receiver receiver,
Direction direction,
Tuple updateElement)
Sends an update message to the receiver node, indicating a newly found or lost partial matching.
|
void |
sendUpdateToRemoteAddress(Address<? extends Receiver> address,
Direction direction,
Tuple updateElement)
Sends an update message to a node in a different container.
|
java.lang.String |
toString() |
void |
unregisterClearable(Clearable c)
Unregisters a pattern memory from the rete network.
|
void |
unregisterNode(Node n)
Unregisters a node from the rete network.
|
public ReteContainer(Network network, boolean threaded)
threaded
- false if operating in a single-threaded environmentpublic void kill()
public void connectRemoteNodes(Address<? extends Supplier> supplier, Address<? extends Receiver> receiver, boolean synchronise)
synchronise
- indicates whether the receiver should be synchronised to the current contents of the supplierpublic void disconnectRemoteNodes(Address<? extends Supplier> supplier, Address<? extends Receiver> receiver, boolean desynchronise)
desynchronise
- indicates whether the current contents of the supplier should be subtracted from the receiverpublic void connectRemoteSupplier(Address<? extends Supplier> supplier, Receiver receiver, boolean synchronise)
synchronise
- indicates whether the receiver should be synchronised to the current contents of the supplierpublic void disconnectRemoteSupplier(Address<? extends Supplier> supplier, Receiver receiver, boolean desynchronise)
desynchronise
- indicates whether the current contents of the supplier should be subtracted from the receiverpublic void disconnect(Supplier supplier, Receiver receiver)
public void connectAndSynchronize(Supplier supplier, Receiver receiver)
public void disconnectAndDesynchronize(Supplier supplier, Receiver receiver)
public void sendConstructionUpdate(Receiver receiver, Direction direction, Tuple updateElement)
public void sendConstructionUpdates(Receiver receiver, Direction direction, java.util.Collection<Tuple> updateElements)
public void sendUpdateInternal(Receiver receiver, Direction direction, Tuple updateElement)
public void sendUpdateToRemoteAddress(Address<? extends Receiver> address, Direction direction, Tuple updateElement)
public void flushUpdates()
public java.util.Collection<Tuple> pullContents(Supplier supplier)
public java.util.Collection<Tuple> pullPropagatedContents(SingleInputNode supplier)
public java.util.Collection<Tuple> remotePull(Address<? extends Supplier> supplier)
supplier
- the address of the supplier to be pulled.public java.util.Map<java.lang.String,java.lang.Integer> remotePosMapping(Address<? extends Production> production)
public <N extends Node> Address<N> makeAddress(N node)
public boolean isLocal(Address<? extends Node> address)
public <N extends Node> N resolveLocal(Address<N> address)
java.lang.IllegalArgumentException
- if address is non-localpublic long registerNode(Node n)
public void unregisterNode(Node n)
public void registerClearable(Clearable c)
public void unregisterClearable(Clearable c)
public void clearAll()
public org.eclipse.incquery.runtime.rete.network.NodeFactory getNodeFactory()
public org.eclipse.incquery.runtime.rete.network.ConnectionFactory getConnectionFactory()
public NodeProvisioner getProvisioner()
public Network getNetwork()
public java.lang.String toString()
toString
in class java.lang.Object
public java.util.Collection<Node> getAllNodes()
Node
instancespublic InputConnector getInputConnectionFactory()