Files
Jungfraujoch/process/JFJochProcessCommandLine.h
T
leonarski_f 800ffecd20 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>
2026-06-21 14:26:48 +02:00

19 lines
785 B
C++

// 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);