| 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; | 
|   *] | 
| } |