verinec.netsim.components
Class NetworkModel

java.lang.Object
  extended by desmoj.core.simulator.NamedObject
      extended by desmoj.core.simulator.ModelComponent
          extended by desmoj.core.simulator.Reportable
              extended by desmoj.core.simulator.Model
                  extended by verinec.netsim.components.NetworkModel

public class NetworkModel
extends Model

Author:
Dominik Jungo, PhD Student, University of Fribourg, Switzerland dominik.jungo@unifr.ch http://home.rega-sense.ch/jungod

Field Summary
private  Events events
           
private  Vector networklayers
           
private  Vector nodes
           
private  Vector physicalnetworklayers
           
private  IVerinecRepository repository
           
 
Constructor Summary
NetworkModel(IVerinecRepository repository, Events events)
          creates a network model from the definition in the repository and schedules the given events
 
Method Summary
 boolean addNetworkLayer(NetworkLayer o)
          Adds a NetworkLayer to the Network Layer vector
 void bind(DataLinkLayer dl, String binding)
          binds a datalayer to a physical network.
private  void createNetworks(Element element)
          creates the networks defined in the element
private  void createNode(Element element)
          creates a node from a given node-element
 String description()
           
 void doInitialSchedules()
           
private  void doSchedule(Event event)
          schedules a given input event
 NetworkLayer getNetworkLayer(String node)
          gets the networklayer (layer 3) from a defined node
 Node getNode(String name)
          gets the node with a give name
 void init()
           
private  void setInputEvents(Events events)
          sets the Inputevents
private  void setRepository(IVerinecRepository repository)
          sets the repository containing the network archtitecture/configuration
 
Methods inherited from class desmoj.core.simulator.Model
checkCompatibility, connectToExperiment, createParameters, createReporter, getExperiment, hasSubModels, init, isConnected, isMainModel, isSubModel, reset
 
Methods inherited from class desmoj.core.simulator.Reportable
getObservations, incrementObservations, incrementObservations, reportIsOn, reportOff, reportOn, resetAt
 
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

repository

private IVerinecRepository repository

events

private Events events

physicalnetworklayers

private Vector physicalnetworklayers

networklayers

private Vector networklayers

nodes

private Vector nodes
Constructor Detail

NetworkModel

public NetworkModel(IVerinecRepository repository,
                    Events events)
creates a network model from the definition in the repository and schedules the given events

Parameters:
repository - the network archtitecture
events - events to be scheduled
Method Detail

description

public String description()
Specified by:
description in class Model
See Also:
Model.description()

doInitialSchedules

public void doInitialSchedules()
Specified by:
doInitialSchedules in class Model
See Also:
Model.doInitialSchedules()

doSchedule

private void doSchedule(Event event)
                 throws NetSimException
schedules a given input event

Parameters:
event - an event to be scheduled
Throws:
NetSimException - if the events can't be generated

bind

public void bind(DataLinkLayer dl,
                 String binding)
binds a datalayer to a physical network. This connection is definded with a binding.

Parameters:
dl - datalink layer
binding - a binding

createNetworks

private void createNetworks(Element element)
creates the networks defined in the element

Parameters:
element - the network definition

createNode

private void createNode(Element element)
creates a node from a given node-element

Parameters:
element - a element containg the nodes definition

init

public void init()
Specified by:
init in class Model
See Also:
Model.init()

setInputEvents

private void setInputEvents(Events events)
sets the Inputevents

Parameters:
events - inputevents

setRepository

private void setRepository(IVerinecRepository repository)
sets the repository containing the network archtitecture/configuration

Parameters:
repository - a repository

addNetworkLayer

public boolean addNetworkLayer(NetworkLayer o)
Adds a NetworkLayer to the Network Layer vector

Parameters:
o - a Network Layer
Returns:
true (as per the general contract of Collection.add).

getNode

public Node getNode(String name)
             throws NetSimException
gets the node with a give name

Parameters:
name - a node name
Returns:
the node with a give name
Throws:
NetSimException - if no node with given name is found

getNetworkLayer

public NetworkLayer getNetworkLayer(String node)
                             throws NetSimException
gets the networklayer (layer 3) from a defined node

Parameters:
node - a node name
Returns:
the networklayer from a defined node
Throws:
NetSimException - if no node with given name is found

Copyright © 2005 Verinec, DIUF