code wiki / _hdl_build / nx_adnet_ops.nx

nx_adnet_ops.nx

buildroot/runtime/_hdl_build/nx_adnet_ops.nx

5662 B123 linesdepth 5pulls 7 transitivereach 2 importersview sourcekind librarytopic adnet
docsdependenciesstructsconstsfunctions

about

nx_adnet_ops.nx -- LIB: the OPERATOR VIEW. "What in the ad network needs a human right now?" WHY THIS EXISTS: today's work added a lot of REFUSALS -- an ad with no rate row is refused at invoice time, a campaign with a real budget and no spend field refuses to serve, a forged viewable count refuses to bill. Every one of those is CORRECT and every one of them is INVISIBLE. A refusal nobody can see is indistinguishable from the thing simply not working, and the operator finds out when an advertiser emails to ask why their campaign stopped. So this organ answers exactly one question, from the same files the serving and billing paths read: which rows are in a state that a human must resolve? ★ DERIVED, NEVER AUTHORED. It computes from inventory + rates + campaigns + applications. There is no ops state to drift out of sync, because there is no ops state. ★ NAMES THE REMEDY, NOT JUST THE PROBLEM. "unbilled inventory" is a complaint; "ha-video is serving with no rate row -- add one to adnet_rates.conf or it invoices REFUSED" is a work item. ★ SILENT ON A HEALTHY PLANE. An operator report that always prints something trains people to ignore it. Zero findings must produce zero lines. license_tier: ORIGINAL

dependencies 3 imports · 2 importers

nx_syscalls.nx nx_adnet_invoice.nx nx_adnet_campaign.nx nx_adnet_ops.nx nx_adnet_ops_gate.nx nx_adnet_opsbeat.nx

imports: nx_syscalls.nxnx_adnet_invoice.nxnx_adnet_campaign.nx

imported by: nx_adnet_ops_gate.nxnx_adnet_opsbeat.nx

structs

none

consts

none

functions

22func aop_catd(dst: *u8, off: i64, v: i64) -> i64
called by 1: aop_report calls 1: sys_mmap
36func aop_rows(buf: *u8, blen: i64) -> i64
called by 1: aop_report calls 1: ad_eol
51func aop_report(inv: *u8, ilen: i64, rates: *u8, rlen: i64, camps: *u8, clen: i64, apps: *u8, alen: i64, out: *u8, cap: i64) -> i64