//+------------------------------------------------------------------+ //| 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) #define TASKRUNERAIDGENMAIN_TAB_TOTAL (2) //--- #define TASKRUNERAIDGENMAIN_STATE_TOAL (5) #define TASKRUNERAIDGENMAIN_IMG_LABEL_PROCESANDO (0) #define TASKRUNERAIDGENMAIN_IMG_LABEL_ENCOLA (1) #define TASKRUNERAIDGENMAIN_IMG_LABEL_PENDIENTE (2) #define TASKRUNERAIDGENMAIN_IMG_LABEL_HECHO (3) #define TASKRUNERAIDGENMAIN_IMG_LABEL_FALLO (4) //--- const string g_taskruner_ai_dgen_main_images[TASKRUNERAIDGENMAIN_STATE_TOAL] { "res\\circle_amarillo.bmp", "res\\circle_azul.bmp", "res\\circle_gris.bmp", "res\\circle_verde.bmp", "Images\\EasyAndFastGUI\\Controls\\Close_red.bmp" }; //--- const string g_taskruner_ai_dgen_main_images_label[TASKRUNERAIDGENMAIN_STATE_TOAL] { "Procesando", "En cola", "Pendiente", "Hecho", "Fallo" }; //--- class ITaskRunerAi : public CSpecializedManager { 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 public: //--- ITaskRunerAi() : m_file_common_flag_out(0), m_file_common_flag_in(0) {} ~ITaskRunerAi() {} //--- string m_last_error_msg; // Ultimo mensaje de error //--- __forceinline uint FileComonIn() const { return m_file_common_flag_in; } __forceinline uint FileCommonOut() const { return m_file_common_flag_out; } //--- Inicializcion de la tarea actual virtual void InitCurrentTask(const TaskTester& t) = 0; //--- Tarea actual //- Configuracion actual virtual bool OnCurrentTask_ModifyConfigMoveFile(const string str) = 0; virtual __forceinline string MoveFiles() const = 0; virtual void OnCurrentTask_ModifyConfigExpertPath(const string str) = 0; virtual __forceinline string ExperthPath() const = 0; virtual void OnCurrentTask_ModifyConfigProgresCsvFile(const string str) = 0; virtual __forceinline string ProgreesFile() const = 0; virtual void OnCurrentTask_ModifyConfigMainFolder(const string str) = 0; virtual __forceinline string MainFolder() const = 0; //- 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; // 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 virtual bool AddDirectTask(const TaskTester& task) = 0; //--- Config virtual bool LoadConfig(const string& file_name) = 0; virtual bool SaveConfig(const string& file_name) = 0; //--- 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 virtual bool SaveAllTaskInFile(const string& file_name, bool only_no_proccesed) = 0; // 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; virtual inline TaskTester GetTaskByIndex(const int index) const = 0; virtual inline ENUM_AIEXECUTOR_TASK_STATE GetTaskStatus(const int index) const = 0; virtual inline TaskTester CurrentTask() const = 0; virtual inline int TaskSize() const = 0; }; #endif // AIDATATASKRUNER_UI_DATAGENERATIONTAB_DEF_MQH //+------------------------------------------------------------------+