DRCL J-Sim API

drcl.net.traffic
Class TrafficSourceComponent

java.lang.Object
  extended bydrcl.DrclObj
      extended bydrcl.comp.Component
          extended bydrcl.net.traffic.TrafficComponent
              extended bydrcl.net.traffic.TrafficSourceComponent
All Implemented Interfaces:
ActiveComponent, java.lang.Cloneable, ObjectCloneable, ObjectDuplicable, java.io.Serializable
Direct Known Subclasses:
TraceInput, tsExpOnOff, tsFixedPoints, tsOnOff, tsPacketTrain, tsParetoOnOff, tsPeakRate, tsPoisson, tsPoissonVariableSize

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.

One must provide a random seed to this component via setSeed(long) before starting it. The component outputs FooPacket's. If timestamping is enabled (setTimestampEnabled(boolean)), the component outputs TimestampedFooPacket's instead which is a sublcass of FooPacket.

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

Nested Class Summary
 
Nested classes inherited from class drcl.comp.Component
Component.Locks
 
Field Summary
 
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, locks, 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()
           
 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).
 long getSeed()
           
 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.
 boolean isTimestampEnabled()
          Returns true if timestamping generated packets is enabled.
 void reset()
          Resets the component for being used anew.
 void setBufferSize(int size_)
          Sets the (maximum) buffer size of the installed traffic shaper (byte).
 void setSeed(long seed_)
           
 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.
 void setTimestampEnabled(boolean enabled_)
          Enables/disables timestamping generated packets.
 
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, connect, containsComponent, containsComponent, containsPort, debug, disconnectAll, disconnectAllPeers, disconnectAllPorts, drop, drop, error, error, expose, exposeEventPorts, exposePort, exposePort, exposePort, exposePort, exposePort, findAvailable, findAvailable, findAvailable, fork, forkAt, getAllComponents, getAllPorts, getAllPorts, getAllWiresInside, getAllWiresInsideOut, getAllWiresOut, getComponent, getComponentFlag, getComponentFlag, getContract, getContractHT, getContractHT, getDebugFlagsInBinary, getDebugLevelNames, getID, getName, getParent, getPort, getPort, getRoot, getTime, iduplicate, isAncestorOf, isContainer, isDebugEnabled, isDebugEnabledAt, isDirectlyRelatedTo, isDirectOutputEnabled, isEnabled, isErrorNoticeEnabled, isEventExportEnabled, isGarbageDisplayEnabled, isGarbageEnabled, isPortRemovable, isStarted, isStopped, isTraceEnabled, lock, notify, notifyAll, operate, reboot, removeAll, removeAllComponents, removeAllPorts, removeAllPorts, removeComponent, removeComponent, removePort, removePort, removePort, resume, run, sduplicate, send, sendAt, setComponentFlag, setComponentFlag, setDebugEnabled, setDebugEnabled, setDebugEnabledAt, setDebugEnabledAt, setDebugEnabledAt, setDirectOutputEnabled, setDirectOutputEnabled, setEnabled, setErrorNoticeEnabled, setErrorNoticeEnabled, setEventExportEnabled, setEventExportEnabled, setExecutionBoundary, setGarbageDisplayEnabled, setGarbageDisplayEnabled, setGarbageEnabled, setGarbageEnabled, setID, setID, setName, setPort, setPort, 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, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TrafficSourceComponent

public TrafficSourceComponent()

TrafficSourceComponent

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

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

setSeed

public void setSeed(long seed_)

getSeed

public long getSeed()

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.

Specified by:
duplicate in interface ObjectDuplicable
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.

_start

public void _start()

_stop

public void _stop()
Stops generating packets.


_resume

public void _resume()
Resumes generating packets.


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 the installed 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.


setTimestampEnabled

public void setTimestampEnabled(boolean enabled_)
Enables/disables timestamping generated packets. If it is enabled, the component outputs TimestampedFooPacket's.


isTimestampEnabled

public boolean isTimestampEnabled()
Returns true if timestamping generated packets is enabled.


DRCL J-Sim API

Copyright © 1998-2003 Distributed Real-time Computing Lab (DRCL). All Rights Reserved.     ~ To J-Sim Home ~