DRCL J-Sim API

drcl.net
Class Module

java.lang.Object
  extended bydrcl.DrclObj
      extended bydrcl.comp.Component
          extended bydrcl.net.Module
All Implemented Interfaces:
java.lang.Cloneable, ObjectCloneable, ObjectDuplicable, java.io.Serializable
Direct Known Subclasses:
ARP, Channel, LL, Mac_802_11, MobilityModel, NodePositionTracker, PktDispatcher, PktFilter, Protocol, RadioPropagationModel, Receiver, routing_msp, SApplication, SensorAgent, SensorApp, SensorChannel, SensorNodePositionTracker, SensorPhy, SensorRadioPropagationModel, SUDPApplication, TargetAgent, TSFTimer, UIUCInjector, WirelessPhy

public class Module
extends Component

A module is a component which implements a protocol. The ports of a module are categorized into "up" and "down" groups. "Up" and "down" indicate the direction of data flow in the protocol stack of a node. By default, it contains one "up" port (up@) and one "down" port (down@).

A module is also equipped with a timer port (.timer@) and defines a set of methods to set up and cancel timeout events (setTimeout(Object, double), setTimeoutAt(Object, double), and cancelTimeout(drcl.comp.ACATimer). The first two methods return an ACATimer object which contains the event object and the time when the timer expires. The timer object can be used to cancel the timeout event using cancelTimeout(ACATimer).

Incoming data is dispatched in process(Object, Port) to four handlers by the port at which data arrives: dataArriveAtUpPort(Object, Port), dataArriveAtDownPort(Object, Port), #timeout(Object), and processOther(Object, Port). A subclass should override one or more of the handlers to handle the incoming data as necessary.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class drcl.comp.Component
Component.Locks
 
Field Summary
 Port downPort
          The default "down" port.
static java.lang.String PortGroup_DOWN
          The ID of the "down" port group.
static java.lang.String PortGroup_UP
          The ID of the "up" port group.
 Port upPort
          The default "up" port.
 
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
Module()
           
Module(java.lang.String id_)
           
 
Method Summary
 void cancelTimeout(ACATimer handle_)
          Cancels a timeout event.
 void duplicate(java.lang.Object source_)
          Duplicates the content of source_, including ID, name, child components and connections among them, to this component.
 ACATimer setTimeout(java.lang.Object evt_, double duration_)
          Sets up a timeout event at the specified time later.
 ACATimer setTimeoutAt(java.lang.Object evt_, double time_)
          Sets up a timeout event at the specified absolute time.
 
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, info, 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, reset, 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
 

Field Detail

PortGroup_UP

public static final java.lang.String PortGroup_UP
The ID of the "up" port group.

See Also:
Constant Field Values

PortGroup_DOWN

public static final java.lang.String PortGroup_DOWN
The ID of the "down" port group.

See Also:
Constant Field Values

downPort

public Port downPort
The default "down" port.


upPort

public Port upPort
The default "up" port.

Constructor Detail

Module

public Module()

Module

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

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 Component

setTimeoutAt

public final ACATimer setTimeoutAt(java.lang.Object evt_,
                                   double time_)
Sets up a timeout event at the specified absolute time. Returns a timer object that can be used to cancel the event.

See Also:
#timeout(Object)

setTimeout

public final ACATimer setTimeout(java.lang.Object evt_,
                                 double duration_)
Sets up a timeout event at the specified time later. Returns a timer object that can be used to cancel the event.

See Also:
#timeout(Object)

cancelTimeout

public final void cancelTimeout(ACATimer handle_)
Cancels a timeout event.


DRCL J-Sim API

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