DRCL JavaSim API

drcl.net.traffic
Class TrafficSourceComponent

java.lang.Object
  |
  +--drcl.DrclObj
        |
        +--drcl.comp.Component
              |
              +--drcl.net.traffic.TrafficComponent
                    |
                    +--drcl.net.traffic.TrafficSourceComponent
All Implemented Interfaces:
ActiveComponent, java.lang.Cloneable, ObjectDuplicable, java.io.Serializable
Direct Known Subclasses:
TraceInput, tsExpOnOff, tsFixedPoints, tsOnOff, tsPacketTrain, tsParetoOnOff, tsPeakRate

public abstract class TrafficSourceComponent
extends TrafficComponent
implements ActiveComponent

Defines the base class for implementing a traffic source. The output of a traffic source conforms to the associated traffic model instance.

Subclasses must override the setNextPacket(FooPacket) method to set the size of next outputted packet and return its birth time. In addition, a subclass should override the info(String) to provide the content of this source component. Buffer operations are taken care of in this class.

See Also:
TrafficModel, Serialized Form

Inner classes inherited from class drcl.comp.Component
Component.LockPack
 
Field Summary
protected  RandomNumberGenerator r
          The random number generator (RNG) associated with this source component.
protected  long seed
          The seed of the random number generator.
 
Fields inherited from class drcl.net.traffic.TrafficComponent
downPort, timerPort
 
Fields inherited from class drcl.comp.Component
FLAG_COMPONENT_NOTIFICATION, FLAG_DEBUG_ENABLED, FLAG_DIRECT_OUTPUT_ENABLED, FLAG_ENABLED, FLAG_ERROR_ENABLED, FLAG_EVENT_ENABLED, FLAG_GARBAGE_DISPLAY_ENABLED, FLAG_GARBAGE_ENABLED, FLAG_PORT_NOTIFICATION, FLAG_STARTED, FLAG_STOPPED, FLAG_TRACE_ENABLED, FLAG_UNDEFINED_START, id, infoPort, lockHead, name, parent, PortGroup_DEFAULT_GROUP, PortGroup_EVENT, PortGroup_SERVICE, Root, Trace_DATA, Trace_SEND
 
Constructor Summary
TrafficSourceComponent()
           
TrafficSourceComponent(java.lang.String id_)
           
 
Method Summary
 void _resume()
          Resumes generating packets.
 void _start()
          This method is invoked in a new thread context when Component.run() is called.
 void _stop()
          Stops generating packets.
 void duplicate(java.lang.Object source_)
          Duplicates the content of source_, including ID, name, child components and connections among them, to this component.
 int getBufferSize()
          Returns the (maximum) buffer size of this traffic shaper (byte).
 TrafficShaper getShaper()
          Returns the installed traffic shaper (if there is any).
 java.lang.String info(java.lang.String prefix_)
          Prints the content of this source component.
 boolean isSendUnshapedTrafficEnabled()
          Returns true if outputting of unshaped traffic (through the timer port) is enabled.
protected  void process(java.lang.Object data_, Port inPort_)
          The main callback method of a component.
 void reset()
          Resets the component for being used anew.
 void setBufferSize(int size_)
          Sets the (maximum) buffer size of this traffic shaper (byte).
protected abstract  double setNextPacket(FooPacket pkt_)
          Sets up next packet.
 void setSendUnshapedTrafficEnabled(boolean enabled_)
          Enables/disables outputting of unshaped traffic (through the timer port).
 void setShaper(TrafficShaper shaper_)
          Adds a traffic shaper to the output of this source.
 
Methods inherited from class drcl.net.traffic.TrafficComponent
getPacketWrapper, getTrafficModel, info, setPacketWrapper, setTrafficModel
 
Methods inherited from class drcl.comp.Component
addComponent, addComponent, addEventPort, addEventPort, addForkPort, addPort, addPort, addPort, addPort, addPort, addPort, addPort, addPort, addServerPort, addServerPort, cancelFork, componentAdded, componentRemoved, connect, containsComponent, containsComponent, containsPort, debug, disconnectAll, disconnectAllPeers, disconnectAllPorts, drop, drop, error, error, expose, exposeEventPorts, exposePort, exposePort, exposePort, exposePort, exposePort, findAvailable, findAvailable, findAvailable, finishing, fork, forkAt, getAllComponents, getAllPorts, getAllPorts, getAllWiresInside, getAllWiresInsideOut, getAllWiresOut, getComponent, getComponentFlag, getComponentFlag, getContract, getContractHT, getContractHT, getDebugFlagsInBinary, getDebugLevelNames, getForkManager, getID, getName, getParent, getPort, getPort, getRoot, getRuntime, getTime, iduplicate, isAncestorOf, isComponentNotificationEnabled, isContainer, isDebugEnabled, isDebugEnabledAt, isDirectOutputEnabled, isEnabled, isErrorNoticeEnabled, isEventExportEnabled, isGarbageDisplayEnabled, isGarbageEnabled, isPortNotificationEnabled, isPortRemovable, isStarted, isStopped, isTraceEnabled, lock, notify, notifyAll, operate, portAdded, portRemoved, reboot, removeAll, removeAllComponents, removeAllPorts, removeAllPorts, removeComponent, removeComponent, removePort, removePort, removePort, resume, run, sduplicate, send, sendAt, setComponentFlag, setComponentFlag, setComponentNotificationEnabled, setContract, setDebugEnabled, setDebugEnabled, setDebugEnabledAt, setDebugEnabledAt, setDebugEnabledAt, setDirectOutputEnabled, setDirectOutputEnabled, setEnabled, setErrorNoticeEnabled, setErrorNoticeEnabled, setEventExportEnabled, setEventExportEnabled, setExecutionBoundary, setGarbageDisplayEnabled, setGarbageDisplayEnabled, setGarbageEnabled, setGarbageEnabled, setID, setID, setName, setPort, setPort, setPortNotificationEnabled, setPortRemovable, setRuntime, setTraceEnabled, setTraceEnabled, sleepFor, sleepUntil, stop, toString, unexpose, unlock, useLocalForkManager, useLocalForkManager, wait
 
Methods inherited from class drcl.DrclObj
clone
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

r

protected RandomNumberGenerator r
The random number generator (RNG) associated with this source component. Default is a uniform distribution RNG.

seed

protected long seed
The seed of the random number generator.
Constructor Detail

TrafficSourceComponent

public TrafficSourceComponent()

TrafficSourceComponent

public TrafficSourceComponent(java.lang.String id_)
Method Detail

setNextPacket

protected abstract double setNextPacket(FooPacket pkt_)
Sets up next packet. Given the next packet, this method should set its packet size and return the birth time of the packet. The birth time is the time relative to the start time of this traffic source.

reset

public void reset()
Description copied from class: Component
Resets the component for being used anew. All the internal variables must be set to the initial state. All the ports and child components are reset as well.
Overrides:
reset in class Component

duplicate

public void duplicate(java.lang.Object source_)
Description copied from class: Component
Duplicates the content of source_, including ID, name, child components and connections among them, to this component. Subclasses need to override this method to copy its own variables.
Overrides:
duplicate in class TrafficComponent

info

public java.lang.String info(java.lang.String prefix_)
Prints the content of this source component. This class prints out the start time, packet count, byte count and shaper information. A subclass only needs to call super.info(prefix_) and print out the parameters defined in the subclass.
Overrides:
info in class TrafficComponent
Parameters:
prefix_ - prefix that shoud be prepended at the beginning of each line of the result.

process

protected void process(java.lang.Object data_,
                       Port inPort_)
Description copied from class: Component
The main callback method of a component. Being invoked when data arrives at a port of its.
Overrides:
process in class Component
Following copied from class: drcl.comp.Component
Parameters:
data_ - the arrival data.
inPort_ - the port where the data arrives.

_start

public void _start()
Description copied from class: Component
This method is invoked in a new thread context when Component.run() is called. An ActiveComponent subclass must override this method to start this component.
Overrides:
_start in class Component

_stop

public void _stop()
Stops generating packets.
Overrides:
_stop in class Component

_resume

public void _resume()
Resumes generating packets.
Overrides:
_resume in class Component

setShaper

public void setShaper(TrafficShaper shaper_)
Adds a traffic shaper to the output of this source.

getShaper

public TrafficShaper getShaper()
Returns the installed traffic shaper (if there is any).

setBufferSize

public void setBufferSize(int size_)
Sets the (maximum) buffer size of this traffic shaper (byte).

getBufferSize

public int getBufferSize()
Returns the (maximum) buffer size of this traffic shaper (byte).

setSendUnshapedTrafficEnabled

public void setSendUnshapedTrafficEnabled(boolean enabled_)
Enables/disables outputting of unshaped traffic (through the timer port).

isSendUnshapedTrafficEnabled

public boolean isSendUnshapedTrafficEnabled()
Returns true if outputting of unshaped traffic (through the timer port) is enabled.

DRCL JavaSim API

Copyright © 2001 - DRCL, OSU     ~ Back to JavaSim Home ~