public class ByteProxy extends SourceBase implements Pipe, java.lang.Runnable
ByteFactory
passed to the constructor
will define the encoder and decoder of binary data.
Proxy can run on its own thread, just by calling the
start()
method. It can be manually used with the
poll()
method that process available
SelectionKey
.Modifier and Type | Class and Description |
---|---|
static class |
ByteProxy.Mode
Defines the mode of this proy, server or client.
|
SourceBase.ElementType
Modifier and Type | Field and Description |
---|---|
java.net.InetAddress |
address
The address the proxy is bound to.
|
ByteProxy.Mode |
mode
Proxy mode.
|
int |
port
The port listened or connected to.
|
Constructor and Description |
---|
ByteProxy(ByteFactory factory,
ByteProxy.Mode mode,
java.net.InetAddress address,
int port)
Complete constructor of the proxy.
|
ByteProxy(ByteFactory factory,
int port)
Create a new ByteProxy, in server mode, which will be bound to a local
address and the given port.
|
Modifier and Type | Method and Description |
---|---|
void |
edgeAdded(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String fromNodeId,
java.lang.String toNodeId,
boolean directed)
An edge was inserted in graph.
|
void |
edgeAttributeAdded(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String attribute,
java.lang.Object value)
A edge attribute was added.
|
void |
edgeAttributeChanged(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String attribute,
java.lang.Object oldValue,
java.lang.Object newValue)
A edge attribute was changed.
|
void |
edgeAttributeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String edgeId,
java.lang.String attribute)
A edge attribute was removed.
|
void |
edgeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String edgeId)
An edge of graph was removed.The nodes the edge connects may already have
been removed from the graph.
|
void |
graphAttributeAdded(java.lang.String sourceId,
long timeId,
java.lang.String attribute,
java.lang.Object value)
A graph attribute was added.
|
void |
graphAttributeChanged(java.lang.String sourceId,
long timeId,
java.lang.String attribute,
java.lang.Object oldValue,
java.lang.Object newValue)
A graph attribute was changed.
|
void |
graphAttributeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String attribute)
A graph attribute was removed.
|
void |
graphCleared(java.lang.String sourceId,
long timeId)
The whole graph was cleared.
|
void |
nodeAdded(java.lang.String sourceId,
long timeId,
java.lang.String nodeId)
A node was inserted in the given graph.
|
void |
nodeAttributeAdded(java.lang.String sourceId,
long timeId,
java.lang.String nodeId,
java.lang.String attribute,
java.lang.Object value)
A node attribute was added.
|
void |
nodeAttributeChanged(java.lang.String sourceId,
long timeId,
java.lang.String nodeId,
java.lang.String attribute,
java.lang.Object oldValue,
java.lang.Object newValue)
A node attribute was changed.
|
void |
nodeAttributeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String nodeId,
java.lang.String attribute)
A node attribute was removed.
|
void |
nodeRemoved(java.lang.String sourceId,
long timeId,
java.lang.String nodeId)
A node was removed from the graph.
|
void |
poll()
Same as calling
poll(boolean) with blocking flag set to true. |
void |
poll(boolean blocking)
Wait until one or several chunks of message are acceptable.
|
void |
run() |
void |
setReplayable(Replayable replayable)
Set the stream that can be replayed on a new connection.
|
void |
start()
Starts the proxy worker.
|
void |
stepBegins(java.lang.String sourceId,
long timeId,
double step)
Since dynamic graphs are based on discrete event modifications, the notion of
step is defined to simulate elapsed time between events.
|
void |
stop()
Stops the proxy worker, if running, and wait the end of the worker thread.
|
addAttributeSink, addElementSink, addSink, attributeSinks, clearAttributeSinks, clearElementSinks, clearSinks, elementSinks, removeAttributeSink, removeElementSink, removeSink, sendAttributeChangedEvent, sendAttributeChangedEvent, sendEdgeAdded, sendEdgeAdded, sendEdgeAttributeAdded, sendEdgeAttributeAdded, sendEdgeAttributeChanged, sendEdgeAttributeChanged, sendEdgeAttributeRemoved, sendEdgeAttributeRemoved, sendEdgeRemoved, sendEdgeRemoved, sendGraphAttributeAdded, sendGraphAttributeAdded, sendGraphAttributeChanged, sendGraphAttributeChanged, sendGraphAttributeRemoved, sendGraphAttributeRemoved, sendGraphCleared, sendGraphCleared, sendNodeAdded, sendNodeAdded, sendNodeAttributeAdded, sendNodeAttributeAdded, sendNodeAttributeChanged, sendNodeAttributeChanged, sendNodeAttributeRemoved, sendNodeAttributeRemoved, sendNodeRemoved, sendNodeRemoved, sendStepBegins, sendStepBegins
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addAttributeSink, addElementSink, addSink, clearAttributeSinks, clearElementSinks, clearSinks, removeAttributeSink, removeElementSink, removeSink
public final ByteProxy.Mode mode
public final java.net.InetAddress address
public final int port
public ByteProxy(ByteFactory factory, int port) throws java.io.IOException
factory
- the factory to create encoder and decoderport
- port to bind the server tojava.io.IOException
- if troubles occurred while connecting the socketpublic ByteProxy(ByteFactory factory, ByteProxy.Mode mode, java.net.InetAddress address, int port) throws java.io.IOException
factory
- the factory to create encoder and decodermode
- mode of the proxyaddress
- address to listen or to connect toport
- port to listen or to connect tojava.io.IOException
- if troubles occurred while connecting the socketpublic void setReplayable(Replayable replayable)
replayable
- the stream to replay, or null if nothing has to be replayed.public void start()
public void stop() throws java.lang.InterruptedException
java.lang.InterruptedException
- if an interruption occurred while waiting for the end of the
worker thread.public void run()
run
in interface java.lang.Runnable
public void poll()
poll(boolean)
with blocking flag set to true.public void poll(boolean blocking)
blocking
- flag true if method has to wait for some keys to be ready. If
false, just process the available keys.public void graphAttributeAdded(java.lang.String sourceId, long timeId, java.lang.String attribute, java.lang.Object value)
AttributeSink
graphAttributeAdded
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute changed.attribute
- The attribute name.value
- The attribute new value.public void graphAttributeChanged(java.lang.String sourceId, long timeId, java.lang.String attribute, java.lang.Object oldValue, java.lang.Object newValue)
AttributeSink
graphAttributeChanged
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.public void graphAttributeRemoved(java.lang.String sourceId, long timeId, java.lang.String attribute)
AttributeSink
graphAttributeRemoved
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.attribute
- The removed attribute name.public void nodeAttributeAdded(java.lang.String sourceId, long timeId, java.lang.String nodeId, java.lang.String attribute, java.lang.Object value)
AttributeSink
nodeAttributeAdded
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.nodeId
- Identifier of the node whose attribute changed.attribute
- The attribute name.value
- The attribute new value.public void nodeAttributeChanged(java.lang.String sourceId, long timeId, java.lang.String nodeId, java.lang.String attribute, java.lang.Object oldValue, java.lang.Object newValue)
AttributeSink
nodeAttributeChanged
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.nodeId
- Identifier of the node whose attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.public void nodeAttributeRemoved(java.lang.String sourceId, long timeId, java.lang.String nodeId, java.lang.String attribute)
AttributeSink
nodeAttributeRemoved
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.nodeId
- Identifier of the node whose attribute was removed.attribute
- The removed attribute name.public void edgeAttributeAdded(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String attribute, java.lang.Object value)
AttributeSink
edgeAttributeAdded
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.edgeId
- Identifier of the edge whose attribute changed.attribute
- The attribute name.value
- The attribute new value.public void edgeAttributeChanged(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String attribute, java.lang.Object oldValue, java.lang.Object newValue)
AttributeSink
edgeAttributeChanged
in interface AttributeSink
sourceId
- Identifier of the graph where the change occurred.edgeId
- Identifier of the edge whose attribute changed.attribute
- The attribute name.oldValue
- The attribute old value.newValue
- The attribute new value.public void edgeAttributeRemoved(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String attribute)
AttributeSink
edgeAttributeRemoved
in interface AttributeSink
sourceId
- Identifier of the graph where the attribute was removed.edgeId
- Identifier of the edge whose attribute was removed.attribute
- The removed attribute name.public void nodeAdded(java.lang.String sourceId, long timeId, java.lang.String nodeId)
ElementSink
nodeAdded
in interface ElementSink
sourceId
- Identifier of the graph where the node was added.nodeId
- Identifier of the added node.public void nodeRemoved(java.lang.String sourceId, long timeId, java.lang.String nodeId)
ElementSink
nodeRemoved
in interface ElementSink
sourceId
- Identifier of the graph where the node will be removed.nodeId
- Identifier of the removed node.public void edgeAdded(java.lang.String sourceId, long timeId, java.lang.String edgeId, java.lang.String fromNodeId, java.lang.String toNodeId, boolean directed)
ElementSink
edgeAdded
in interface ElementSink
sourceId
- Identifier of the graph where the edge was added.edgeId
- Identifier of the added edge.fromNodeId
- Identifier of the first node of the edge.toNodeId
- Identifier of the second node of the edge.directed
- If true, the edge is directed.public void edgeRemoved(java.lang.String sourceId, long timeId, java.lang.String edgeId)
ElementSink
edgeRemoved
in interface ElementSink
sourceId
- The graph where the edge will be removed.edgeId
- The edge that will be removed.public void graphCleared(java.lang.String sourceId, long timeId)
ElementSink
graphCleared
in interface ElementSink
sourceId
- The graph cleared.public void stepBegins(java.lang.String sourceId, long timeId, double step)
ElementSink
Since dynamic graphs are based on discrete event modifications, the notion of step is defined to simulate elapsed time between events. So a step is a event that occurs in the graph, it does not modify it but it gives a kind of timestamp that allow the tracking of the progress of the graph over the time.
This kind of event is useful for dynamic algorithms that listen to the dynamic graph and need to measure the time in the graph's evolution.
stepBegins
in interface ElementSink
sourceId
- Identifier of the graph where the step starts.timeId
- A numerical value that may give a timestamp to track the evolution
of the graph over the time.