28 ImportClock::time_point
startedAt = ImportClock::now();
41 std::shared_ptr<core::ports::diagnostics::IErrorReporter> errorReporter);
58 const std::shared_ptr<core::ports::document_image_processing::IDocumentImageProcessor>& documentImageProcessor,
59 const std::shared_ptr<core::ports::text_recognition::ITextRecognizer>& tesseract,
64 std::mutex& artifactsMutex);
68 const std::vector<internal::PageWork>& pages,
Document image processing port for import workflows.
Declares the structured diagnostics reporting port.
Declares private helper types and functions for the import pipeline implementation.
Request types for PDF rendering operations.
Result types for PDF rendering operations.
Declares a bounded worker queue and a simple slot limiter for import tasks.
Runs background tasks on a bounded worker queue.
Limits concurrent access to a bounded number of slots.
Port for reporting structured diagnostic error events.
std::function< void(double, const std::string &)> ProgressReporter
core::ports::pdf_rendering::RenderRequest makeRenderRequest(const ImportRequest &req)
std::vector< internal::PageWork > collectPageWork(const ImportRequest &req, const core::ports::pdf_rendering::RenderResult &renderResult, const core::ports::pdf_rendering::ExtractResult &extractResult, const std::shared_ptr< core::ports::document_image_processing::IDocumentImageProcessor > &documentImageProcessor, const std::shared_ptr< core::ports::text_recognition::ITextRecognizer > &tesseract, SchedulerResources &resources, const internal::ProgressReporter &report, core::ports::diagnostics::IErrorReporter *errorReporter, ImportResult &out, std::mutex &artifactsMutex)
internal::ProgressReporter makeProgressReporter(const ImportRequest &req, core::ports::diagnostics::IErrorReporter *errorReporter)
void ensureDirectoryExists(const std::filesystem::path &path, core::ports::diagnostics::IErrorReporter *errorReporter, const char *origin)
core::ports::pdf_rendering::ExtractRequest makeExtractRequest(const core::ports::pdf_rendering::RenderRequest &renderRequest, const ImportRequest &req)
void attachMetricsArtifact(ImportResult &out, const ImportRequest &req, const std::vector< internal::PageWork > &pages, size_t totalPages, const internal::FinalizeStats &finalizeStats, const ImportRunTimings &timings, core::ports::diagnostics::IErrorReporter *errorReporter)
std::chrono::steady_clock ImportClock
Describes one import execution request.
ImportClock::time_point startedAt
core::jobs::SlotLimiter localOcrLimiter
core::jobs::Scheduler localScheduler
SchedulerResources(const ImportRequest &req, std::shared_ptr< core::ports::diagnostics::IErrorReporter > errorReporter)
core::jobs::SlotLimiter * ocrLimiter
core::jobs::Scheduler * scheduler