diff --git a/jobs.cpp b/jobs.cpp index e7e89c0..4aecf59 100644 --- a/jobs.cpp +++ b/jobs.cpp @@ -1,5 +1,50 @@ #include "jobs.h" +#ifdef _WIN32 +// ---------------------------------------------------------------------------- +// Windows stub (issue 0026): la implementacion real usa fork+exec+pipes POSIX. +// La version Windows debe escribirse con CreateProcess + anonymous pipes + +// ReadFile/WriteFile + TerminateProcess. Por ahora, en Windows el panel Jobs +// queda inactivo — el resto de la app funciona normal. TODO: implementar +// con la API Win32. +// ---------------------------------------------------------------------------- +#include + +namespace ge { + +bool jobs_init(const char*, const char*, const char*, const char*, const char*, int) { + std::fprintf(stderr, + "[jobs] Windows stub: enrichers no disponibles en esta build " + "(usa la build Linux/WSL para correr enrichers).\n"); + return false; +} + +void jobs_set_ops_db(const char*) {} + +bool jobs_submit(const char*, const char*, const char*, const char*, + char* out_id, size_t out_id_n) +{ + if (out_id && out_id_n > 0) out_id[0] = '\0'; + return false; +} + +bool jobs_cancel(const char*) { return false; } +bool jobs_delete(const char*) { return false; } +bool jobs_list (std::vector* out, int) { + if (out) out->clear(); + return true; +} +JobCounters jobs_counters() { return JobCounters{}; } +int jobs_dirty_counter() { return 0; } +void jobs_shutdown() {} + +} // namespace ge + +#else +// ---------------------------------------------------------------------------- +// POSIX (Linux/WSL/macOS): implementacion real con fork+exec+pipes. +// ---------------------------------------------------------------------------- + #include "../../../../cpp/vendor/sqlite3/sqlite3.h" #include @@ -860,3 +905,5 @@ void jobs_shutdown() { } } // namespace ge + +#endif // _WIN32