Quintiq file version 2.0
|
#parent: #root
|
Method PollOptimizerRunController (Boolean canstart) const as stream[Boolean]
|
{
|
Description:
|
[*
|
This method is called every `LibOpt_OptimizerRunController.PollingDuration` milliseconds.
|
This continues until the `LibOpt_Run` is stopped or until the `CanStart` method returns true. (The `CanStart` method returns true if `LibOpt_Run` receives approval from the `LibOpt_OptimizerRunController` that it is allowed to start).
|
Note: This method is Const and only depends on objects from the `LibOpt_OptimizerRunController` dataset.
|
This is intentional to ensure that the polling only requires read access to the `LibOpt_OptimizerRunController` dataset. We don't want this method to depend on any other dataset for performance reasons.
|
*]
|
TextBody:
|
[*
|
// evr3 Apr-26-2022 (created)
|
|
canstartstream := emit( canstart );
|
|
// The run can be aborted before it is actually started. In this case, we should also stop polling the optimizer controller
|
if( not canstart and not this.HasStopped() )
|
{
|
pollingduration := Duration::Millis( this.OptimizerRunController().PollingDuration() );
|
canstartstream := stream[Void]::Wait( pollingduration )
|
->|this->CanStart();
|
canstartstream := this->PollOptimizerRunController( canstartstream );
|
}
|
|
return canstartstream;
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|