public class NetStreamSender extends Object implements Sink
This class implements a sender according to specifications the NetStream protocol.
See NetStreamConstants
for a full description of the protocol, the
sender and the receiver.
NetStreamConstants
,
Copyright (c) 2010 University of Luxembourg
NetStreamSender.java
Modifier and Type | Class and Description |
---|---|
(package private) class |
NetStreamSender.DefaultPacker |
Modifier and Type | Field and Description |
---|---|
protected String |
host |
private static ByteBuffer |
NULL_BUFFER |
protected BufferedOutputStream |
out |
protected NetStreamPacker |
packer |
protected int |
port |
protected Socket |
socket |
protected String |
sourceId |
protected ByteBuffer |
sourceIdBuff |
protected String |
stream |
protected ByteBuffer |
streamBuffer |
(package private) byte[] |
streamIdArray |
Constructor and Description |
---|
NetStreamSender(int port) |
NetStreamSender(Socket socket) |
NetStreamSender(String host,
int port) |
NetStreamSender(String stream,
Socket socket) |
NetStreamSender(String stream,
String host,
int port) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Force the connection to close (properly) with the server
|
protected void |
connect() |
private void |
doSend(ByteBuffer buff) |
void |
edgeAdded(String sourceId,
long timeId,
String edgeId,
String fromNodeId,
String toNodeId,
boolean directed)
An edge was inserted in graph.
|
void |
edgeAttributeAdded(String sourceId,
long timeId,
String edgeId,
String attribute,
Object value)
A edge attribute was added.
|
void |
edgeAttributeChanged(String sourceId,
long timeId,
String edgeId,
String attribute,
Object oldValue,
Object newValue)
A edge attribute was changed.
|
void |
edgeAttributeRemoved(String sourceId,
long timeId,
String edgeId,
String attribute)
A edge attribute was removed.
|
void |
edgeRemoved(String sourceId,
long timeId,
String edgeId)
An edge of graph was removed.The nodes the edge connects may already have
been removed from the graph.
|
protected ByteBuffer |
encodeArray(Object in) |
protected ByteBuffer |
encodeBoolean(Object in) |
protected ByteBuffer |
encodeBooleanArray(Object in) |
protected ByteBuffer |
encodeByte(Object in) |
protected ByteBuffer |
encodeByteArray(Object in) |
protected ByteBuffer |
encodeDouble(Object in) |
protected ByteBuffer |
encodeDoubleArray(Object in) |
protected ByteBuffer |
encodeFloat(Object in) |
protected ByteBuffer |
encodeFloatArray(Object in) |
protected ByteBuffer |
encodeInt(Object in) |
protected ByteBuffer |
encodeIntArray(Object in) |
protected ByteBuffer |
encodeLong(Object in) |
protected ByteBuffer |
encodeLongArray(Object in) |
protected ByteBuffer |
encodeShort(Object in) |
protected ByteBuffer |
encodeShortArray(Object in) |
protected ByteBuffer |
encodeString(Object in) |
protected ByteBuffer |
encodeUnsignedVarint(Object in) |
protected ByteBuffer |
encodeValue(Object in,
int valueType) |
protected ByteBuffer |
encodeVarint(Object in) |
protected ByteBuffer |
encodeVarintArray(Object in) |
protected int |
getType(Object value) |
void |
graphAttributeAdded(String sourceId,
long timeId,
String attribute,
Object value)
A graph attribute was added.
|
void |
graphAttributeChanged(String sourceId,
long timeId,
String attribute,
Object oldValue,
Object newValue)
A graph attribute was changed.
|
void |
graphAttributeRemoved(String sourceId,
long timeId,
String attribute)
A graph attribute was removed.
|
void |
graphCleared(String sourceId,
long timeId)
The whole graph was cleared.
|
void |
nodeAdded(String sourceId,
long timeId,
String nodeId)
A node was inserted in the given graph.
|
void |
nodeAttributeAdded(String sourceId,
long timeId,
String nodeId,
String attribute,
Object value)
A node attribute was added.
|
void |
nodeAttributeChanged(String sourceId,
long timeId,
String nodeId,
String attribute,
Object oldValue,
Object newValue)
A node attribute was changed.
|
void |
nodeAttributeRemoved(String sourceId,
long timeId,
String nodeId,
String attribute)
A node attribute was removed.
|
void |
nodeRemoved(String sourceId,
long timeId,
String nodeId)
A node was removed from the graph.
|
private void |
putVarint(ByteBuffer buffer,
long number,
int byteSize) |
void |
removePacker() |
void |
setPacker(NetStreamPacker paker)
Sets an optional NetStreamPaker whose "pack" method will be called on
each message.
|
void |
setStream(String stream) |
void |
stepBegins(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.
|
private int |
varintSize(long data) |
private static ByteBuffer NULL_BUFFER
protected ByteBuffer streamBuffer
byte[] streamIdArray
protected int port
protected BufferedOutputStream out
protected ByteBuffer sourceIdBuff
protected NetStreamPacker packer
public NetStreamSender(String host, int port) throws UnknownHostException, IOException
UnknownHostException
IOException
public NetStreamSender(int port) throws UnknownHostException, IOException
UnknownHostException
IOException
public NetStreamSender(String stream, String host, int port) throws UnknownHostException, IOException
UnknownHostException
IOException
public NetStreamSender(Socket socket) throws IOException
IOException
public NetStreamSender(String stream, Socket socket) throws IOException
IOException
public void setPacker(NetStreamPacker paker)
paker
- The packer objectpublic void removePacker()
protected void connect() throws UnknownHostException, IOException
UnknownHostException
IOException
protected ByteBuffer encodeValue(Object in, int valueType)
protected ByteBuffer encodeArray(Object in)
in
- protected ByteBuffer encodeString(Object in)
in
- protected ByteBuffer encodeDoubleArray(Object in)
in
- protected ByteBuffer encodeDouble(Object in)
in
- The double to encodeprotected ByteBuffer encodeFloatArray(Object in)
in
- The float array to encodeprotected ByteBuffer encodeFloat(Object in)
in
- The float to encodeprotected ByteBuffer encodeLongArray(Object in)
in
- The long array to encodeprotected ByteBuffer encodeLong(Object in)
in
- The long to encodeprotected ByteBuffer encodeIntArray(Object in)
in
- The integer array to encodeprotected ByteBuffer encodeInt(Object in)
in
- The integer to encodeprotected ByteBuffer encodeShortArray(Object in)
in
- protected ByteBuffer encodeShort(Object in)
in
- protected ByteBuffer encodeByteArray(Object in)
in
- protected ByteBuffer encodeByte(Object in)
in
- protected ByteBuffer encodeBooleanArray(Object in)
in
- protected ByteBuffer encodeBoolean(Object in)
in
- private int varintSize(long data)
protected ByteBuffer encodeVarint(Object in)
in
- protected ByteBuffer encodeVarintArray(Object in)
in
- protected ByteBuffer encodeUnsignedVarint(Object in)
in
- private void putVarint(ByteBuffer buffer, long number, int byteSize)
b
- sumsizes
- ssize
- private void doSend(ByteBuffer buff)
buff
- public void graphAttributeAdded(String sourceId, long timeId, String attribute, 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(String sourceId, long timeId, String attribute, Object oldValue, 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(String sourceId, long timeId, 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(String sourceId, long timeId, String nodeId, String attribute, 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(String sourceId, long timeId, String nodeId, String attribute, Object oldValue, 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(String sourceId, long timeId, String nodeId, 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(String sourceId, long timeId, String edgeId, String attribute, 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(String sourceId, long timeId, String edgeId, String attribute, Object oldValue, 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(String sourceId, long timeId, String edgeId, 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(String sourceId, long timeId, 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(String sourceId, long timeId, 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(String sourceId, long timeId, String edgeId, String fromNodeId, 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(String sourceId, long timeId, 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(String sourceId, long timeId)
ElementSink
graphCleared
in interface ElementSink
sourceId
- The graph cleared.public void stepBegins(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.public void close() throws IOException
IOException
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses