net.clackrouter.component.extension
Class Tee
java.lang.Object
net.clackrouter.component.base.ClackComponent
net.clackrouter.component.extension.Tee
- All Implemented Interfaces:
- Alarm
public class Tee
- extends ClackComponent
A simple class to take a packet on a single input and duplicate it and send
the packet out two outputs.
This class currently only works for packets of known types, including:
- VNSEthernetPacket
- VNSARPPacket
- VNSIPPacket
- VNSICMPPacket
- VNSTCPPacket
- VNSUDPPacket
Fields inherited from class net.clackrouter.component.base.ClackComponent |
componentCell, m_has_error, m_log, m_name, m_num_ports, m_packetcount_in, m_packetcount_out, m_ports, mListeners, mRouter, pendingError, SIGNAL_ERROR_LEN_MSEC, UNIQUE_COUNT, view |
Constructor Summary |
Tee(Router router,
java.lang.String name)
|
Method Summary |
void |
acceptPacket(VNSPacket packet,
int port_number)
The starting point for packet-processing when packets are "pushed" to this component. |
boolean |
isModifying()
Reports whether this component modifies packets passed through it
This value is used by the static checking algorithm used to make sure port
connections are valid. |
protected void |
setupPorts(int numports)
Allocates an array of ClackPort objects to be used by this component |
Methods inherited from class net.clackrouter.component.base.ClackComponent |
createCopy, createInputPullPort, createInputPushPort, createOutputPullPort, createOutputPushPort, error, fireListeners, getColor, getComponentCell, getHierarchicalView, getLog, getName, getNumPorts, getPacketCountIn, getPacketCountOut, getPendingError, getPort, getPropertiesView, getRouter, getSerializableProperties, getTime, getTypeName, getUniqueCount, getView, handlePullRequest, hasError, initializeProperties, isHierarchical, log, notifyAlarm, poll, registerListener, sendOutPort, setAlarm, setComponentCell, setName, setPendingError, setView, showErrorDialog, signalError, try_repaint, unregisterListener |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PORT_IN
public static int PORT_IN
PORT_OUT1
public static int PORT_OUT1
PORT_OUT2
public static int PORT_OUT2
NUM_PORTS
public static int NUM_PORTS
Tee
public Tee(Router router,
java.lang.String name)
setupPorts
protected void setupPorts(int numports)
- Description copied from class:
ClackComponent
- Allocates an array of ClackPort objects to be used by this component
- Overrides:
setupPorts
in class ClackComponent
- Parameters:
numports
- the number of ports to create
isModifying
public boolean isModifying()
- Description copied from class:
ClackComponent
- Reports whether this component modifies packets passed through it
This value is used by the static checking algorithm used to make sure port
connections are valid. Sub-classes that do not modify packets should override
this method
- Overrides:
isModifying
in class ClackComponent
- Returns:
- by default, we assume the component modifies packets
acceptPacket
public void acceptPacket(VNSPacket packet,
int port_number)
- Description copied from class:
ClackComponent
The starting point for packet-processing when packets are "pushed" to this component.
The default implementation warns that the packet is being ignored.
- Overrides:
acceptPacket
in class ClackComponent
- Parameters:
packet
- The pushed packetport_number
- The number of the port that this packet is arriving on