code wiki / _hdl_build / nx_adnet_crm_gate.nx

nx_adnet_crm_gate.nx

buildroot/runtime/_hdl_build/nx_adnet_crm_gate.nx

5496 B93 linesdepth 5pulls 5 transitivereach 0 importersview sourcekind gate/prooftopic adnet
docsdependenciesstructsconstsfunctions

about

nx_adnet_crm_gate.nx -- GATE for the advertiser record (nx_adnet_crm, Data Vault 2.0 shape). The teeth that matter are the ones protecting a PAYING CLIENT'S RECORD, not the row formatting: * THE HASH KEY IS DERIVED AND STABLE -- same business key always yields the same hub key, or a re-registration silently forks one client into two and their spend splits across both. * ADDITIVE-ONLY IS STRUCTURAL -- closing a relationship must ADD a row, never shorten the journal. Asserted by BYTE COUNT, because "we don't delete" is a promise and a byte count is a measurement. * SPLIT-BRAIN IS DETECTED, NOT RECONCILED -- two is_current=1 rows for one (hk, aspect) must be COUNTABLE so a gate can fail. A plane that quietly picks a winner bills the wrong terms. expect_exit: 0 license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_adnet_crm.nx nx_adnet_crm_gate.nx

imports: nx_syscalls.nxnx_adnet_crm.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main tm_puts sys_write tm_slen sys_mmap crm_hk tm_check tm_puts ↻ crm_hub_row crm_bk_ok aslot_id_ok crm_hk_hex crm_hk ↻ crm_catd sys_mmap ↻ tm_has tm_slen ↻ crm_sat_row crm_bk_ok ↻ crm_hk_hex ↻ crm_hk ↻ crm_catd ↻ crm_close_row crm_sat_row ↻ tm_slen ↻ crm_current_count sys_mmap ↻ crm_hk_hex ↻ crm_hk ↻ ad_eol ad_tab crm_link_creative crm_bk_ok ↻ aslot_img_ok aslot_url_chars_ok crm_hk_hex ↻ crm_hk ↻ crm_catd ↻

structs

none

consts

none

functions

13func tm_slen(s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { i = i + 1 } return i }
called by 3: tm_putstm_hasmain
14func tm_puts(s: *u8) -> i64 { sys_write(1, s, tm_slen(s)); return 0 }
called by 2: tm_checkmain calls 2: sys_writetm_slen
15func tm_pn(v: i64) -> i64
27func tm_has(buf: *u8, n: i64, pat: *u8) -> i64
called by 1: main calls 1: tm_slen
41func tm_check(name: *u8, cond: i64) -> i64
called by 1: main calls 1: tm_puts
47func main() -> i64