C# Class ExternalDelayingExplorer.CustomDelayingScheduler

Inheritance: Microsoft.Zing.ZingerDelayingScheduler
Mostra file Open project: ZingModelChecker/Zing

Public Methods

Method Description
CustomDelayingScheduler ( ) : System
Delay ( ZingerSchedulerState ZSchedulerState ) : void

remove the process at the start of the sortedList and push it at the end.

Finish ( ZingerSchedulerState ZSchedulerState, int processId ) : void

Remove process from the list if completed

MaxDelayReached ( ZingerSchedulerState ZSchedulerState ) : bool

This function is used internally by the ZING explorer. It checks if we have applied the maximum number of delays in the current state. Applying any more delay operations will not lead to new transitions/states being explored. Maximum delay operations for a state is always (totalEnabledProcesses - 1).

Next ( ZingerSchedulerState ZSchedulerState ) : int

Returns the first element in the list.

OnBlocked ( ZingerSchedulerState ZSchedulerState, int sourceSM ) : void

This function is called when a process is blocked on dequeue. There are no more events to be serviced and the queue is empty.

OnEnabled ( ZingerSchedulerState ZSchedulerState, int targetSM, int sourceSM ) : void

This function is called on a enqueue operation. A process is enabled if it has messages in its queue to be serviced

OtherOperations ( ZingerSchedulerState ZSchedulerState ) : void
Start ( ZingerSchedulerState ZSchedulerState, int processId ) : void

This function is called by Zinger whenever a new process is created. Add the new created process to the enabledProcesses List and also assign random priority.

ZingerOperation ( ZingerSchedulerState ZSchedulerState ) : void

Method Details

CustomDelayingScheduler() public method

public CustomDelayingScheduler ( ) : System
return System

Delay() public method

remove the process at the start of the sortedList and push it at the end.
public Delay ( ZingerSchedulerState ZSchedulerState ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
return void

Finish() public method

Remove process from the list if completed
public Finish ( ZingerSchedulerState ZSchedulerState, int processId ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
processId int
return void

MaxDelayReached() public method

This function is used internally by the ZING explorer. It checks if we have applied the maximum number of delays in the current state. Applying any more delay operations will not lead to new transitions/states being explored. Maximum delay operations for a state is always (totalEnabledProcesses - 1).
public MaxDelayReached ( ZingerSchedulerState ZSchedulerState ) : bool
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
return bool

Next() public method

Returns the first element in the list.
public Next ( ZingerSchedulerState ZSchedulerState ) : int
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
return int

OnBlocked() public method

This function is called when a process is blocked on dequeue. There are no more events to be serviced and the queue is empty.
public OnBlocked ( ZingerSchedulerState ZSchedulerState, int sourceSM ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
sourceSM int Process that is blocked
return void

OnEnabled() public method

This function is called on a enqueue operation. A process is enabled if it has messages in its queue to be serviced
public OnEnabled ( ZingerSchedulerState ZSchedulerState, int targetSM, int sourceSM ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
targetSM int The process that is enabled because of an enqueue
sourceSM int This parameter is passed for debugging purposes
return void

OtherOperations() public method

public OtherOperations ( ZingerSchedulerState ZSchedulerState ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
return void

Start() public method

This function is called by Zinger whenever a new process is created. Add the new created process to the enabledProcesses List and also assign random priority.
public Start ( ZingerSchedulerState ZSchedulerState, int processId ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
processId int process Id of the newly created process
return void

ZingerOperation() public method

public ZingerOperation ( ZingerSchedulerState ZSchedulerState ) : void
ZSchedulerState Microsoft.Zing.ZingerSchedulerState
return void