2026-02-25 11:10:14 -05:00
//+------------------------------------------------------------------+
//| MainTab.mqh |
//| Copyright 2025, Niquel Mendoza. |
//| https://www.mql5.com/es/users/nique_372 |
//+------------------------------------------------------------------+
# property copyright " Copyright 2025, Niquel Mendoza. "
# property link " https://www.mql5.com/es/users/nique_372 "
# property strict
# ifndef AIDATATASKRUNER_UI_DATAGENERATIONTAB_DEF_MQH
# define AIDATATASKRUNER_UI_DATAGENERATIONTAB_DEF_MQH
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
# include "..\\Defines.mqh"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
# define TASKRUNERAIDGENMAIN_TAB_MAIN ( 0 )
# define TASKRUNERAIDGENMAIN_TAB_TASK ( 1 )
2026-03-13 15:20:27 -05:00
# define TASKRUNERAIDGENMAIN_TAB_TOTAL ( 2 )
2026-02-25 11:10:14 -05:00
2026-04-08 07:46:15 -05:00
2026-02-25 11:10:14 -05:00
//---
2026-03-13 19:46:30 -05:00
# define TASKRUNERAIDGENMAIN_STATE_TOAL ( 5 )
2026-02-25 11:10:14 -05:00
# define TASKRUNERAIDGENMAIN_IMG_LABEL_PROCESANDO ( 0 )
2026-03-13 09:38:25 -05:00
# define TASKRUNERAIDGENMAIN_IMG_LABEL_ENCOLA ( 1 )
# define TASKRUNERAIDGENMAIN_IMG_LABEL_PENDIENTE ( 2 )
# define TASKRUNERAIDGENMAIN_IMG_LABEL_HECHO ( 3 )
2026-03-13 19:46:30 -05:00
# define TASKRUNERAIDGENMAIN_IMG_LABEL_FALLO ( 4 )
2026-02-25 11:10:14 -05:00
//---
2026-03-13 19:46:30 -05:00
const string g_taskruner_ai_dgen_main_images [ TASKRUNERAIDGENMAIN_STATE_TOAL ]
2026-02-25 11:10:14 -05:00
{
" res \\ circle_amarillo.bmp " ,
" res \\ circle_azul.bmp " ,
" res \\ circle_gris.bmp " ,
2026-03-13 19:46:30 -05:00
" res \\ circle_verde.bmp " ,
" Images \\ EasyAndFastGUI \\ Controls \\ Close_red.bmp "
2026-02-25 11:10:14 -05:00
} ;
//---
2026-03-13 19:46:30 -05:00
const string g_taskruner_ai_dgen_main_images_label [ TASKRUNERAIDGENMAIN_STATE_TOAL ]
2026-02-25 11:10:14 -05:00
{
" Procesando " ,
" En cola " ,
" Pendiente " ,
2026-03-13 19:46:30 -05:00
" Hecho " ,
" Fallo "
2026-02-25 11:10:14 -05:00
} ;
//---
2026-03-14 09:06:05 -05:00
class ITaskRunerAi : public CSpecializedManager
2026-02-25 11:10:14 -05:00
{
2026-03-25 06:48:29 -05:00
protected :
int m_file_common_flag_out ; // Flag comon para los archivos quie el backend mueve
int m_file_common_flag_in ; // Flag comon para los archivos que da el ea
2026-02-25 11:10:14 -05:00
public :
2026-03-25 06:48:29 -05:00
//---
ITaskRunerAi ( ) : m_file_common_flag_out ( 0 ) , m_file_common_flag_in ( 0 ) { }
~ ITaskRunerAi ( ) { }
2026-02-25 11:10:14 -05:00
//---
string m_last_error_msg ; // Ultimo mensaje de error
2026-03-25 06:48:29 -05:00
//---
__forceinline uint FileComonIn ( ) const { return m_file_common_flag_in ; }
__forceinline uint FileCommonOut ( ) const { return m_file_common_flag_out ; }
2026-03-13 09:38:25 -05:00
//--- Inicializcion de la tarea actual
virtual void InitCurrentTask ( const TaskTester & t ) = 0 ;
2026-02-25 11:10:14 -05:00
//--- Tarea actual
//- Configuracion actual
2026-03-25 06:48:29 -05:00
virtual bool OnCurrentTask_ModifyConfigMoveFile ( const string str ) = 0 ;
2026-03-14 11:35:01 -05:00
virtual __forceinline string MoveFiles ( ) const = 0 ;
2026-03-13 19:46:30 -05:00
virtual void OnCurrentTask_ModifyConfigExpertPath ( const string str ) = 0 ;
2026-03-14 11:35:01 -05:00
virtual __forceinline string ExperthPath ( ) const = 0 ;
2026-03-13 19:46:30 -05:00
virtual void OnCurrentTask_ModifyConfigProgresCsvFile ( const string str ) = 0 ;
2026-03-14 11:35:01 -05:00
virtual __forceinline string ProgreesFile ( ) const = 0 ;
2026-03-13 19:46:30 -05:00
virtual void OnCurrentTask_ModifyConfigMainFolder ( const string str ) = 0 ;
2026-03-14 11:35:01 -05:00
virtual __forceinline string MainFolder ( ) const = 0 ;
2026-02-25 11:10:14 -05:00
//- Modificaicon de la tarea actual
virtual void OnCurrentTask_ModifyDateStart ( const datetime new_start ) = 0 ;
virtual void OnCurrentTask_ModifyDateEnd ( const datetime new_end ) = 0 ;
virtual void OnCurrentTask_ModifySimbolo ( const string new_symbol ) = 0 ;
virtual void OnCurrentTask_ModifySimboloFolder ( const string new_symbol_f ) = 0 ;
virtual void OnCurrentTask_ModifyTimeframe ( const ENUM_TIMEFRAMES new_tf ) = 0 ;
virtual void OnCurrentTask_ModifyLabel ( const string label ) = 0 ;
virtual void OnCurrentTask_ModifyLabelId ( const int label ) = 0 ;
virtual void OnCurrentTask_ModifySetFile ( const string set_file ) = 0 ;
//- Añadir tarea actual
virtual bool OnCurrentTask_Add ( ) = 0 ;
2026-03-18 08:46:51 -05:00
// Añade una tarea espeiicifa sin pasar por el current ni soncriza con el frontend (compos) pero si la tabla
// True en caso de exito | false no
2026-03-18 12:55:47 -05:00
virtual bool AddDirectTask ( const TaskTester & task ) = 0 ;
2026-03-18 08:46:51 -05:00
2026-03-14 11:35:01 -05:00
//--- Config
virtual bool LoadConfig ( const string & file_name ) = 0 ;
virtual bool SaveConfig ( const string & file_name ) = 0 ;
2026-02-25 11:10:14 -05:00
//--- Tareas
// out[] indices (filas) que ahora estan en cola
// Retonranar el numero de tareas (tamaño array)
virtual int CleanAllTask ( int & out [ ] ) = 0 ;
virtual int RunAllTask ( int & out [ ] ) = 0 ;
// Load
2026-03-18 08:46:51 -05:00
virtual bool SaveAllTaskInFile ( const string & file_name , bool only_no_proccesed ) = 0 ;
2026-02-25 11:10:14 -05:00
// El archivo debera de estar en comon
// task: aqui se pondran todas las tareas
// retonar el numero de tareas
virtual bool SetTastByFile ( const string & file_name ) = 0 ;
2026-04-10 15:42:04 -05:00
virtual inline TaskTester GetTaskByIndex ( const int index ) const = 0 ;
virtual inline ENUM_AIEXECUTOR_TASK_STATE GetTaskStatus ( const int index ) const = 0 ;
2026-03-13 09:38:25 -05:00
virtual inline TaskTester CurrentTask ( ) const = 0 ;
2026-02-25 11:10:14 -05:00
virtual inline int TaskSize ( ) const = 0 ;
} ;
2026-03-13 09:38:25 -05:00
# endif // AIDATATASKRUNER_UI_DATAGENERATIONTAB_DEF_MQH
//+------------------------------------------------------------------+