process/viewer: command-line generator + JFJochProcessController (GUI engine)
Foundation for making processing a first-class GUI activity: - process/JFJochProcessCommandLine: reconstruct the equivalent jfjoch_process / jfjoch_azint command line from a ProcessConfig + DiffractionExperiment + input path, for handing a job off to a cluster. Unit-tested (full + azint). - viewer/JFJochProcessController: runs one JFJochProcess job off the GUI thread (its own private reader; HDF5 access is globally serialized so it is safe next to the interactive reader) and reports back via queued Qt signals (started/phaseChanged/progress/finished/failed). Cancel() forwards to JFJochProcess::Cancel(). Progress is throttled to ~200 updates per run. The visible processing UI (jobs window + snapshot switcher + converged settings) builds on this. Verified: tests/jfjoch_test [process]; jfjoch_viewer links and builds against JFJochProcess. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "JFJochProcess.h" // ProcessConfig, ProcessMode
|
||||
|
||||
class DiffractionExperiment;
|
||||
|
||||
// Reconstruct an equivalent jfjoch_process / jfjoch_azint command line for a configured run, so a
|
||||
// job set up in the GUI can be handed off to a cluster. Covers the settings that matter for the
|
||||
// run, not every obscure flag; geometry is taken from the input file, so geometry overrides are
|
||||
// not emitted.
|
||||
std::string JFJochProcessCommandLine(const ProcessConfig &config,
|
||||
const DiffractionExperiment &experiment,
|
||||
const std::string &input_file);
|
||||
Reference in New Issue
Block a user