verinec.netsim.components.layers
Class PhysicalNetworkLayer

java.lang.Object
  extended by desmoj.core.simulator.NamedObject
      extended by desmoj.core.simulator.ModelComponent
          extended by verinec.netsim.components.layers.abstractNetworkLayer
              extended by verinec.netsim.components.layers.PhysicalNetworkLayer
All Implemented Interfaces:
Observer, Subject

public class PhysicalNetworkLayer
extends abstractNetworkLayer

A physical Network Layer. It represents a wire/connection and the NICs connected to it.

Version:
$Revision:835 $
Author:
Dominik Jungo

Field Summary
private  Vector bindings
           
private  Logger jlogger
           
private  Vector upperobserver
           
 
Constructor Summary
PhysicalNetworkLayer(Model owner, EventProcessor processor)
          Creates a new physical Network Layer
 
Method Summary
 void addBinding(String binding)
          adds a binding to this interface
 void addObserverElement(Object arg0)
          adds an Observer
 void attachUpper(Observer observer)
          Attaches a Observer to this Subject
 void getDownEvent(PacketArrivedEventDown event)
          Receives a PacketEventArrived from above.
 void getUpEvent(PacketArrivedEventUp event)
          Receives a PacketEventArrived from below.
 boolean hasBinding(String binding)
          checks if there is a binding to this interface.
 Enumeration observerElements()
          gets all upper observer of this Layer.
 boolean removeObserver(Object arg0)
          removes an observer
 void sendDown(Packet packet, double timeoffset, ModelComponent sender, ILogger logger)
          sends down a packet to the next layer.
 void sendUp(Packet packet, double timeoffset, ModelComponent sender, ILogger logger)
          sends up a packet to the next layer
 
Methods inherited from class verinec.netsim.components.layers.abstractNetworkLayer
addAddress, addProcessor, addresses, attachLower, compareAddress, detachLower, detachUpper, getFirstAddress, getLayerName, getLowerobserver, getNode, getProcessor, processorelements, sendDown, sendUp, setNode
 
Methods inherited from class desmoj.core.simulator.ModelComponent
current, currentEntity, currentEvent, currentModel, currentSimProcess, currentTime, debugIsOn, debugOff, debugOn, epsilon, getModel, isExperimentCompatible, isModelCompatible, sendDebugNote, sendMessage, sendTraceNote, sendWarning, skipTraceNote, skipTraceNote, traceIsOn, traceOff, traceOn
 
Methods inherited from class desmoj.core.simulator.NamedObject
getName, getQuotedName, rename, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

upperobserver

private Vector upperobserver

bindings

private Vector bindings

jlogger

private Logger jlogger
Constructor Detail

PhysicalNetworkLayer

public PhysicalNetworkLayer(Model owner,
                            EventProcessor processor)
Creates a new physical Network Layer

Parameters:
owner - a Model
processor - a Processor
Method Detail

getDownEvent

public void getDownEvent(PacketArrivedEventDown event)
Description copied from interface: Observer
Receives a PacketEventArrived from above. Equivalent to the update method in the Observer Designpattern

Specified by:
getDownEvent in interface Observer
Overrides:
getDownEvent in class abstractNetworkLayer
Parameters:
event - a PacketEventArrived to be received
See Also:
abstractNetworkLayer.getDownEvent(verinec.netsim.events.PacketArrivedEventDown)

getUpEvent

public void getUpEvent(PacketArrivedEventUp event)
Description copied from interface: Observer
Receives a PacketEventArrived from below. Equivalent to the update method in the Observer Designpattern

Specified by:
getUpEvent in interface Observer
Overrides:
getUpEvent in class abstractNetworkLayer
Parameters:
event - a PacketEventArrived to be received
See Also:
if it still occurs a ErrorMessage is being sent to the Simulation Framework

sendDown

public void sendDown(Packet packet,
                     double timeoffset,
                     ModelComponent sender,
                     ILogger logger)
sends down a packet to the next layer. this should not occur. if it still occurs a ErrorMessage is being sent to the Simulation Framework.

Parameters:
packet - the packet that should be send
timeoffset - timeoffset when the packet should arrive (in the lower layer)
sender - the sender of the packet
logger - a logger

sendUp

public void sendUp(Packet packet,
                   double timeoffset,
                   ModelComponent sender,
                   ILogger logger)
sends up a packet to the next layer

Parameters:
packet - a packet
timeoffset - timeoffset when the packet should arrive (in the upper layer)
sender - sender of the packet
logger - a logger

addObserverElement

public void addObserverElement(Object arg0)
adds an Observer

Parameters:
arg0 - an Observer

attachUpper

public void attachUpper(Observer observer)
Description copied from interface: Subject
Attaches a Observer to this Subject

Specified by:
attachUpper in interface Subject
Overrides:
attachUpper in class abstractNetworkLayer
Parameters:
observer - The observing Object
See Also:
abstractNetworkLayer.attachUpper(verinec.netsim.components.layers.Observer)

removeObserver

public boolean removeObserver(Object arg0)
removes an observer

Parameters:
arg0 - an observer
Returns:
the observer

observerElements

public Enumeration observerElements()
gets all upper observer of this Layer. Upper observers are in this case layer 2 parts of NICs.

Returns:
the upper observers.

addBinding

public void addBinding(String binding)
adds a binding to this interface

Parameters:
binding - a binding

hasBinding

public boolean hasBinding(String binding)
checks if there is a binding to this interface.

Parameters:
binding - a binding name
Returns:
true if the layer has the defined binding, false otherwise

Copyright © 2005 Verinec, DIUF