drcl.inet.core.queue
Class MQueue
java.lang.Object
|
+--drcl.DrclObj
|
+--drcl.comp.Component
|
+--drcl.comp.queue.ActiveQueue
|
+--drcl.inet.core.Queue
|
+--drcl.inet.core.queue.MQueue
- All Implemented Interfaces:
- java.lang.Cloneable, InetConstants, InetCoreConstants, ObjectDuplicable, PktClassifier, java.io.Serializable
- public class MQueue
- extends Queue
- implements PktClassifier
MQueue is an m-level queue generalized from RIO and
3-Color queue. Specifically, it is a FIFO queue with m queue
logics, one for each level. The level-0 queue is the highest level queue
while the level-(m-1) queue is the lowest.
It uses a PktClassifier to
classify the incoming packets into m levels. When a packet arrives,
the packet is classified into one of the m level. If the packet can
be enqueued in that level (permitted by the corresponding queue logic),
the packet is also enqueued to all the queues of lower levels without being
rejected. Dequeuing follows FIFO, the dequeued packet is also dequeued from
the queues of its (classified) level and all the lower levels.
The component exports an error if no level of queue is found for the packet.
- See Also:
- Serialized Form
|
Field Summary |
static java.lang.String |
EVENT_QSIZE_PORT_ID
Name of the port that exports the instant queue size change events. |
| 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.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 |
|
Method Summary |
int |
classify(Packet p_)
Implements PktClassifier.classify(drcl.net.Packet). |
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 level_)
|
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(int level_,
QLogic qlogic_)
|
| 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 java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
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.
MQueue
public MQueue()
MQueue
public MQueue(java.lang.String id_)
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
classify
public int classify(Packet p_)
- Implements
PktClassifier.classify(drcl.net.Packet).
It simply return the first bit of the ToS field of the INET header.
- Specified by:
classify in interface PktClassifier
setQLogic
public void setQLogic(int level_,
QLogic qlogic_)
- Parameters:
level_ - level index of the queue logic.
getQLogic
public QLogic getQLogic(int level_)
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()
Copyright © 2001 - DRCL, OSU ~ Back to JavaSim Home ~