DRCL JavaSim API

drcl.inet.core.queue
Class FIFO

java.lang.Object
  |
  +--drcl.DrclObj
        |
        +--drcl.comp.Component
              |
              +--drcl.comp.queue.ActiveQueue
                    |
                    +--drcl.inet.core.Queue
                          |
                          +--drcl.inet.core.queue.FIFO
All Implemented Interfaces:
java.lang.Cloneable, InetConstants, InetCoreConstants, ObjectDuplicable, java.io.Serializable

public class FIFO
extends Queue

Implements a FIFO queue structure that one may plug in a different queue logic to form a differnt FIFO implementation. For example, one may plug in the RED queue logic to form a random-early-detection (RED) queue; plug in the FRED queue logic to form a fair RED (FRED) queue; plug in the SRED queue logic to form a stablized RED (SRED) queue. Without any queue logic, this component works as a simple drop-tail (by default) or drop-head queue.

See Also:
Serialized Form

Inner classes inherited from class drcl.comp.Component
Component.LockPack
 
Field Summary
protected  boolean drop_front
           
static java.lang.String EVENT_QSIZE_PORT_ID
          Name of the port that exports the instant queue size change events.
protected  FIFOQueue q
           
 
Fields inherited from class drcl.comp.queue.ActiveQueue
nrequests, outport, OUTPUT_PORT_ID
 
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
 
Fields inherited from interface drcl.inet.core.InetCoreConstants
CONFIG_PORT_ID, PULL_PORT_ID
 
Fields inherited from interface drcl.inet.InetConstants
BYTE_MODE, DEFAULT_BANDWIDTH, DEFAULT_BUFFER_SIZE, DEFAULT_MTU, EVENT_ID_CHANGED_PORT_ID, EVENT_IDENTITY_ADDED, EVENT_IDENTITY_REMOVED, EVENT_IF_NEIGHBOR_DOWN, EVENT_IF_NEIGHBOR_UP, EVENT_IF_PORT_ID, EVENT_MCAST_HOST_PORT_ID, EVENT_PKT_ARRIVAL, EVENT_PKT_ARRIVAL_PORT_ID, EVENT_RT_ENTRY_ADDED, EVENT_RT_ENTRY_MODIFIED, EVENT_RT_ENTRY_REMOVED, EVENT_RT_MCAST_CHANGED_PORT_ID, EVENT_RT_UCAST_CHANGED_PORT_ID, EVENT_VIF_NEIGHBOR_DOWN, EVENT_VIF_NEIGHBOR_UP, EVENT_VIF_PORT_ID, HOST_ENTRY_EXT, ID_CSL, MCAST_QUERY_PORT_ID, PACKET_MODE, PID_DV, PID_DVMRP, PID_HELLO, PID_IGMP, PID_OSPF, PID_RSVP, PID_TCP, PID_UDP, SERVICE_CONFIGSW_PORT_ID, SERVICE_ID_PORT_ID, SERVICE_IF_PORT_ID, SERVICE_MCAST_PORT_ID, SERVICE_RT_PORT_ID, UCAST_QUERY_PORT_ID
 
Constructor Summary
FIFO()
           
FIFO(java.lang.String id_)
           
 
Method Summary
 java.lang.Object dequeue()
          Dequeues and returns the first object in the queue.
 void duplicate(java.lang.Object source_)
          Duplicates the content of source_, including ID, name, child components and connections among them, to this component.
 java.lang.Object enqueue(java.lang.Object obj_)
          Enqueues the object at the end of the queue
 java.lang.Object firstElement()
          Retrieves but not dequeue the first object in the queue.
 int getCapacity()
          Returns the capacity of the queue.
 QLogic getQLogic()
           
 int getSize()
          Returns the current size of the queue.
 java.lang.String info(java.lang.String prefix_)
           
 boolean isDropHeadEnabled()
           
 boolean isEmpty()
          Return true if the queue is empty.
 boolean isFull()
          Return true if the queue is full.
 java.lang.Object lastElement()
          Retrieves but not remove the last object in the queue.
 java.lang.Object peekAt(int pos_)
          Retrieves but not remove the object at the position specified.
 void reset()
          Resets the component for being used anew.
 void setCapacity(int capacity_)
          Sets the capacity of the queue.
 void setDropHeadEnabled(boolean enabled_)
           
 void setQLogic(QLogic qlogic_)
           
 
Methods inherited from class drcl.inet.core.Queue
createConfigPort, getMode, isByteMode, isPacketMode, setMode
 
Methods inherited from class drcl.comp.queue.ActiveQueue
_getnrequests, _setnrequests, enqueueAt, getAvailableSize, getEnqueCount, increaseEnqueCount, info, process, pull, retrieveAt
 
Methods inherited from class drcl.comp.Component
_resume, _start, _stop, 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

EVENT_QSIZE_PORT_ID

public static final java.lang.String EVENT_QSIZE_PORT_ID
Name of the port that exports the instant queue size change events.

drop_front

protected boolean drop_front

q

protected FIFOQueue q
Constructor Detail

FIFO

public FIFO()

FIFO

public FIFO(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 Queue

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 Queue

info

public java.lang.String info(java.lang.String prefix_)
Overrides:
info in class Queue

setQLogic

public void setQLogic(QLogic qlogic_)

getQLogic

public QLogic getQLogic()

enqueue

public java.lang.Object enqueue(java.lang.Object obj_)
Enqueues the object at the end of the queue
Overrides:
enqueue in class ActiveQueue
Returns:
the object being dropped due to the enqueue; null otherwise.

dequeue

public java.lang.Object dequeue()
Dequeues and returns the first object in the queue.
Overrides:
dequeue in class ActiveQueue
Returns:
the object dequeued; null if queue is empty.

peekAt

public java.lang.Object peekAt(int pos_)
Retrieves but not remove the object at the position specified.
Overrides:
peekAt in class ActiveQueue
Returns:
the object; null if position is not valid.

firstElement

public java.lang.Object firstElement()
Retrieves but not dequeue the first object in the queue.
Overrides:
firstElement in class ActiveQueue
Returns:
the object; null if queue is empty.

lastElement

public java.lang.Object lastElement()
Retrieves but not remove the last object in the queue.
Overrides:
lastElement in class ActiveQueue
Returns:
the object; null if queue is empty.

isFull

public boolean isFull()
Return true if the queue is full.
Overrides:
isFull in class ActiveQueue

isEmpty

public boolean isEmpty()
Return true if the queue is empty.
Overrides:
isEmpty in class ActiveQueue

setCapacity

public void setCapacity(int capacity_)
Sets the capacity of the queue.
Overrides:
setCapacity in class Queue
Following copied from class: drcl.inet.core.Queue
Parameters:
capacity_ - the new capacity.

getCapacity

public int getCapacity()
Returns the capacity of the queue.
Overrides:
getCapacity in class Queue

getSize

public int getSize()
Returns the current size of the queue.
Overrides:
getSize in class Queue

setDropHeadEnabled

public void setDropHeadEnabled(boolean enabled_)

isDropHeadEnabled

public boolean isDropHeadEnabled()

DRCL JavaSim API

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