haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Quintiq file version 2.0
#parent: #root
MethodOverride DoExecute (Algorithm algorithm, LibOpt_Task task) as stream[JSON]
{
  TextBody:
  [*
    result := null( stream[JSON] );
    
    if( this.InOneTransaction() )
    {
      program := algorithm.astype( MathematicalProgram );
      
      // Register type descriptors if the program hasn't been executed before.
      if( this.AutoRegisterTypeDescriptors() )
      {
        if( program.ExecutionCounter() = 0 )
        {
          this.RegisterTypeDescriptors( program );
        }
        program.GenerateNames();
      }
      LibOpt_SuboptimizerMP::ExecuteMP( program );
      result := this.DoHandleResultCall( program, task );
    }
    else
    {
      result := this->DoExecuteReactive( algorithm, task );
    }
    
    return result;
  *]
}