Skip to content

feat(meos): expose the H3 / th3index family in the facade (stacks on #17)#18

Closed
estebanzimanyi wants to merge 1 commit into
MobilityDB:feat/converge-meos-api-jarfrom
estebanzimanyi:feat/th3index-facade
Closed

feat(meos): expose the H3 / th3index family in the facade (stacks on #17)#18
estebanzimanyi wants to merge 1 commit into
MobilityDB:feat/converge-meos-api-jarfrom
estebanzimanyi:feat/th3index-facade

Conversation

@estebanzimanyi

@estebanzimanyi estebanzimanyi commented May 29, 2026

Copy link
Copy Markdown
Member

The unified MEOS-API jar carries the H3 temporal-index family, exposed as MeosOpsTh3index (th3index_* methods) and MeosOpsFreeH3 (the H3 free functions), emitted from the public meos_h3.h surface intersected with the jar.

@estebanzimanyi estebanzimanyi force-pushed the feat/th3index-facade branch 3 times, most recently from 4e6596d to 71bed12 Compare May 29, 2026 17:09
The unified MEOS-API jar carries the H3 temporal-index family, exposed as
MeosOpsTh3index (th3index_* methods) and MeosOpsFreeH3 (the H3 free functions),
emitted from the public meos_h3.h surface intersected with the jar.
estebanzimanyi added a commit to estebanzimanyi/MobilityFlink that referenced this pull request May 31, 2026
… surface

Add a generated, tier-aware Java facade over the MEOS public API,
organized as one Java class per MEOS object-model class plus one per
public-MEOS-header for free functions:

- 50 `MeosOps<Class>` classes (751 methods): one per MEOS object-model
  class (TFloat, TInt, TBool, TText, TGeomPoint, TGeogPoint, TCbuffer,
  TNpoint, TPose, TRGeometry, TBox, STBox, Set, Span, SpanSet, …).
- 6 `MeosOpsFree<Header>` classes (1,346 methods): one per public MEOS
  header for functions not assigned to any object-model class
  (MeosOpsFreeCore, MeosOpsFreeGeo, MeosOpsFreeCbuffer, MeosOpsFreeNpoint,
  MeosOpsFreePose, MeosOpsFreeRgeo).
- 1 shared `MeosOpsRuntime` (single `MEOS_AVAILABLE` static-init across
  all 56 facades).

Each emitted method forwards to `functions.GeneratedFunctions.<name>(...)`
after probing the shared `MeosOpsRuntime.MEOS_AVAILABLE` flag. Each
method carries a Javadoc tier marker (stateless / bounded-state /
windowed / cross-stream / io-meta) so consumers know the per-method
wiring shape.

Total emit: 2,097 of JMEOS PR MobilityDB#19's 2,699-method surface (77.7%);
remainder is the JMEOS-deliberately-omitted type-catalog helpers plus
the streaming-relevance-baseline ambiguous (59) and sequence-only (14)
buckets, both surfaced separately for design decisions before emit.

Two generators under flink-processor/tools/codegen/:
- codegen-oo.py: reads JMEOS jar signatures via javap-p +
  streaming-relevance baseline + MEOS object model → emits per-OO-class
  facades.
- codegen-free.py: same shape, but for functions not in the OO model →
  emits per-header facades.

Both are ~250 LOC, deterministic, audit-by-regeneration. Manifests
record provenance (JMEOS method total, baseline target count, emit
count, per-tier breakdown, per-class/per-header method count, sample
of functions absent from JMEOS).

Coexists with the existing berlinmod.MEOSBridge hand-written
BerlinMOD-scoped bridge (high-level, query-shaped); the generated
MeosOps* facades expose the raw MEOS surface tier-by-tier
(low-level, catalog-shaped). Both share the same MEOS_AVAILABLE
discipline and `functions.GeneratedFunctions` delegation.

Stacks on feat/jmeos-bridge-swap; additive-only; touches no existing
file. Locally compile-verified against the union of JMEOS PR MobilityDB#19's
jmeos-core + PR MobilityDB#18's utils.spatial (the latter needed by MEOSBridge,
separately tracked).

(cherry picked from commit e5707ac)
@estebanzimanyi estebanzimanyi force-pushed the feat/th3index-facade branch from 71bed12 to 4da3c2f Compare May 31, 2026 07:49
@estebanzimanyi estebanzimanyi changed the title feat(meos): expose the H3 / th3index family in the facade behind an h3 build flag (stacks on #17) feat(meos): expose the H3 / th3index family in the facade (stacks on #17) May 31, 2026
@estebanzimanyi estebanzimanyi changed the base branch from main to feat/converge-meos-api-jar June 11, 2026 16:46
@estebanzimanyi

Copy link
Copy Markdown
Member Author

Superseded by the Path-B consolidation: the former 18-deep stack is collapsed into two reviewable topical PRs on top of the merged scaffold — MEOS integration #30 → benchmark #31 — each one clean squashed commit with the generated-facade bulk, dead family-flag profiles, committed target/ artifacts, and invented synthetic corpus removed. Closing as folded into #30/#31.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant