lardon3d/include/lardon3d/candidate_pair_gen.h
fy59 b84f860d86 refactor(core): freeze global maintenance baseline
Complete the A-to-Z Lardon3D maintenance and coherence pass.

Generalize host resource policy, remove the global CPU12 ceiling, preserve
host CPU/RAM reserves, scale Task capabilities through the Resource Governor,
and validate deterministic parallel GV execution.

Migrate Project DB to v23 with data-driven camera, lens, optical configuration
and calibration profiles, including manual lenses without EXIF.

Integrate safe optional LARDON SSD swap/scratch control with Governor and F10
drain/safe-to-unplug semantics.

Refactor the ncurses TUI into a runtime observatory with durable progress,
elapsed time, smoothed ETA, throughput, resource telemetry, Governor state,
optics workflow, colors and compact/no-color fallbacks.

Reconcile Queue lifetime, persistence, concurrency, comments, tests,
README, AGENTS and canonical documentation.

GLOBAL_MAINTENANCE_AUDIT=PASS/FROZEN
2026-09-01 08:00:47 +02:00

41 lines
1.7 KiB
C

#ifndef LARDON3D_CANDIDATE_PAIR_GEN_H
#define LARDON3D_CANDIDATE_PAIR_GEN_H
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <lardon3d/project_db.h>
#include <lardon3d/visual_index.h>
typedef struct {
uint32_t generated_count; // paires nouvellement créées
uint32_t skipped_count; // paires déjà existantes (idempotence)
uint32_t queried_count; // candidats retournés par le Visual Index
} Lardon3DCandidatePairGenStats;
Lardon3DVisualIndexResult lardon3d_candidate_pair_generate(
const char *project_path, Lardon3DProjectDb *database,
uint64_t visual_index_id, uint64_t source_feature_set_id,
const Lardon3DVisualIndexQueryOptions *query_options,
Lardon3DCandidatePairGenStats *stats);
Lardon3DVisualIndexResult lardon3d_candidate_pair_generate_batch(
const char *project_path, Lardon3DProjectDb *database,
uint64_t visual_index_id, uint64_t after_feature_set_id,
const Lardon3DVisualIndexQueryOptions *query_options,
Lardon3DCandidatePairGenStats *total_stats,
uint64_t *last_feature_set_id);
/* Produce the frozen Candidate-generation v1 SHA-256 fingerprint in caller-owned
* 32-byte storage. Integer inputs are encoded at fixed width, little-endian;
* the filter is one u32 and exclude_same_asset is exactly one 0/1 byte. This
* preserves acquired little-endian fingerprints while making identity portable.
* query_options may be NULL for the historical ID-only form; fingerprint must
* be non-NULL. */
void lardon3d_candidate_pair_generation_fingerprint(
uint64_t visual_index_id, uint64_t source_feature_set_id,
const Lardon3DVisualIndexQueryOptions *query_options,
unsigned char fingerprint[32]);
#endif