Skip to content
Start free evaluation

pdcomm_gem_formatted_program_dry_run

Function

Analyzes the selected formatted program against the capability catalog.

PdcommStatus pdcomm_gem_formatted_program_dry_run(PdcommTcpEndpoint *endpoint, const PdcommGemFormattedProgramSelectionToken *token, const PdcommGemFormattedProgramDryRunOptions *options, PdcommGemFormattedProgramDryRunReportHandle **out_report)

Declared in: #include <pdcomm_gem_formatted_program_dry_runs.h>

Equipment only. The selection must be current: the token must match the endpoint's selection, and the selected store entry must be unchanged. When capabilities are not configured or no catalog is installed, the report contains a #PDCOMM_GEM_FORMATTED_PROGRAM_DRY_RUN_CAPABILITY_MISSING issue; its capability_revision is the current catalog revision, or 0 when capabilities are not configured. A connection is not required.

Parameters

NameDescription
endpointEquipment endpoint with formatted program queries configured and a program selected.
tokenSelection token from pdcomm_gem_formatted_program_select().
optionsDry-run options.
out_reportReceives the new report. When endpoint is valid and not poisoned, it is set to NULL before any other check, so it is NULL after every later failure.

Returns

#PDCOMM_OK on success (whatever the report outcome); #PDCOMM_INVALID_ARGUMENT when a pointer is NULL, a structure size, version, or reserved field is invalid, or the policy version is not supported; #PDCOMM_STALE_TOKEN when nothing is selected, the selection was cleared or replaced, the token belongs to another endpoint or session, or the selected store entry changed; #PDCOMM_INVALID_STATE when the endpoint is not a GEM equipment or formatted program queries are not configured; #PDCOMM_LIMIT_EXCEEDED when the program exceeds max_program_encoded_bytes, the issues exceed max_issues, or a selection limit is exceeded; #PDCOMM_BACKPRESSURE when the endpoint holds a staged TCP event; #PDCOMM_ALLOCATION_FAILED; #PDCOMM_POISONED.

Notes

  • Ownership: release the report with pdcomm_gem_formatted_program_dry_run_destroy().