Use this page as an index into the generated Doxygen pages for QRM&CI's public interfaces. For how these pieces fit together, see Build custom QRM&CI workflow; this page is for the exact types and signatures.
Configuration and logging
Messaging
- CommunicationHandler - the templated RabbitMQ send()/receive() helpers. Explicitly non-copyable and non-movable: construct one in place rather than relocating it, and only mqss::QuantumTask, mqss::QuantumResult, and mqss::Backend have a messageLabel() overload – a new message type needs one before send()/receive() for it will compile
- DefaultReceiveTimeout - the default poll timeout for receive()
- WaitForever - the timeout value that polls until a message arrives or shutdown is requested
- receiveNext and drainQueue - the one-message and drain-the-queue loops a daemon turn is built from; both take the caller's termination flag explicitly and stop consuming once it is set
- sendFailure and sendResult - replying to a task's result_destination
Backends
Daemon scaffolding
Pipeline operations
- chooseBackend - the selection rule, without mutating the task
- compileQuantumTask - the task compilation step
- submitQuantumTask - submit work without blocking for the result
- collectQuantumResult - collect the result of a previously submitted job
- executeQuantumTask - the submit-and-collect path in one call
- Each of the three above has an interruptible overload taking a const std::atomic<bool>& termination flag, for a daemon work loop that must shut down promptly; the flag-less overloads delegate to it with a flag that is never set and remain unsuitable for daemons. collectQuantumResult waits in short slices rather than one blocking call so the flag is checked between slices even while a job is still running.
- buildQuantumResult - turn a job-result histogram into the result message. Requires exact cardinality: the histogram must have one entry per the task's circuit files, every entry must carry counts, and every count must fit in the wire format's int32_t – a missing entry, a cardinality mismatch, or an out-of-range count is a DeviceError naming the circuit index (or the offending bitstring and value) rather than a silently trimmed result
- cancelQuantumTask - the standard cancellation-result shape
- Every value/error-returning function above is [[nodiscard]]: a caller that means to ignore a result must say so explicitly (e.g. std::ignore =) rather than discard it by accident
Errors
- Error - the shared failure type for public QRM&CI operations
- Error::Kind - the categories of failure a QRM&CI operation can report, including ShutdownRequested - returned by an interruptible pipeline operation abandoned because shutdown was requested, not a fault of the task or the device
- toString - a stable name for an error kind in logs
Scope
Two headers are deliberately absent. ConstantsMapping.h holds the library's own translations between the submitter, mqss protocol, and mqss-ci enumerations. CircuitFormatPolicy.h holds the task/compiler/backend circuit-format admission policy BackendWrapper::canRun() and compileQuantumTask() are built from. Treat both as implementation detail; they may change without notice.
If you are changing these interfaces rather than calling them, see Development Guide.