Class Router
java.lang.Object
QueueNet.NodeSection
NodeSections.PipeSection
NodeSections.OutputSection
NodeSections.Router
This class implements a router, which routes the jobs according to the specified
routing strategies (one for each job class).
The class has different constructors to create a generic router or a blocking region border queue, that is the router of a node which is inside a blocking region and which sends jobs also to nodes outside the region. When a job leaves the blocking region, the region input station must receive a message, in order to serve the blocked jobs.
However it is also possible to create a generic router and then to turn on/off the "border router" behaviour using the
The class has different constructors to create a generic router or a blocking region border queue, that is the router of a node which is inside a blocking region and which sends jobs also to nodes outside the region. When a job leaves the blocking region, the region input station must receive a message, in order to serve the blocked jobs.
However it is also possible to create a generic router and then to turn on/off the "border router" behaviour using the
borderRouterTurnON(..) and
borderRouterTurnOFF() methods.- Author:
- Francesco Radaelli, Stefano Omini, Bertoli Marco - Fixed lockup issues with closed class and sinks 13/11/2005, Bertoli Marco - Fixed bug with multiserver stations Modified by Ashanka (Oct 2009) for FCR Bug fix: Events are created with job instead of null for EVENT_JOB_OUT_OF_REGION
-
Field Summary
Fields inherited from class NodeSection
EXCEPTION_MEASURE_DOES_NOT_EXIST, EXCEPTION_PROPERTY_NOT_AVAILABLE, INPUT, jobsList, logger, MSG_NOT_PROCESSED, MSG_PROCESSED, NO_ADDRESS, OUTPUT, PROPERTY_ID_ARRIVING_JOBS, PROPERTY_ID_AVERAGE_UTILIZATION, PROPERTY_ID_DEPARTING_JOBS, PROPERTY_ID_RESIDENCE_TIME, PROPERTY_ID_RESIDENT_JOBS, PROPERTY_ID_UTILIZATION, SERVICE -
Constructor Summary
ConstructorsConstructorDescriptionRouter(RoutingStrategy[] routingStrategies) Creates a new instance of Router. -
Method Summary
Modifier and TypeMethodDescriptionvoidTurns off the "borderRouter" behaviour.voidborderRouterTurnON(BlockingRegion region) Turns on the "border router" behaviour.booleanTells whether the "border router" behaviour has been turned on.protected voidnodeLinked(NetNode node) This method should be overridden to implement a specific behaviour of the node section when the node section itself is linked to the owner node.protected intprocess(NetMessage message) This method should be overridden to implement a specific NetMessage processor.Methods inherited from class OutputSection
sendBackward, sendBackwardMethods inherited from class NodeSection
analyze, analyze, analyzeFCR, analyzeFJ, analyzeJoin, analyzeTransition, getClassCompatibilities, getDoubleSectionProperty, getDoubleSectionProperty, getIntSectionProperty, getIntSectionProperty, getJobClasses, getJobInfoList, getObject, getObject, getOwnerNode, getParameter, getParameter, getSectionID, getServerTypes, isEnabled, isEnabled, isMine, isMyOwnerNode, redirect, removeMessage, send, send, send, send, send, send, sendAckAfterDrop, sendMe, sendMe, updateVisitPath
-
Constructor Details
-
Router
Creates a new instance of Router.- Parameters:
routingStrategies- Routing strategies, one for each class.
-
-
Method Details
-
isBorderRouterON
public boolean isBorderRouterON()Tells whether the "border router" behaviour has been turned on.- Returns:
- true, if the "border router" behaviour is on; false otherwise.
-
borderRouterTurnON
Turns on the "border router" behaviour.- Parameters:
region- the blocking region to which the owner node of this router belongs.
-
borderRouterTurnOFF
public void borderRouterTurnOFF()Turns off the "borderRouter" behaviour. -
nodeLinked
Description copied from class:NodeSectionThis method should be overridden to implement a specific behaviour of the node section when the node section itself is linked to the owner node. This method should be used to set node section properties depending on the owner node ones.- Overrides:
nodeLinkedin classNodeSection- Parameters:
node- Owner node.- Throws:
NetException
-
process
Description copied from class:NodeSectionThis method should be overridden to implement a specific NetMessage processor.- Specified by:
processin classNodeSection- Parameters:
message- message to be processed.- Returns:
- message processing result.
- Throws:
NetException
-