OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm_surface_ownership.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: Apache-2.0 */
2
11
12#ifndef OPENSWMM_SURFACE_OWNERSHIP_H
13#define OPENSWMM_SURFACE_OWNERSHIP_H
14#include "openswmm_engine.h"
15#ifdef __cplusplus
16extern "C" {
17#endif
18/* R4 authoring only. Areas are m2; cells/subcatchments are engine indices.
19 * These reviewed records do not activate recharge. Initialization refuses
20 * them until the completed-interval source adapter is qualified.
21 * No records preserves the existing hydrology and weather clocks. */
23 int subcatch, reviewed, lumped, status; /* outside/unreviewed/reviewed/invalid = 0/1/2/3 */
26 char name[256], tag[256], reason[512];
43typedef int (*SWMM_SurfaceOwnerProgress)(int done, int total, void* user);
44/* Read authored SUBCATCH UNIFORM records. Query with rows=NULL, capacity=0. */
60SWMM_ENGINE_API int swmm_surface_owner_get(SWMM_Engine engine, int* rows, int capacity, int* count);
61/* count=-1 previews stored records; otherwise rows is the proposed complete
62 * set. Query sizes with NULL output arrays. Outputs include unreviewed peers.
63 * valid=0 reports blocking diagnostics; the API itself still returns OK.
64 * token identifies the current inputs (including current authored records),
65 * independently of the proposal. It needs at least 17 bytes.
66 * Both preview and replacement require OPENED/BUILDING. */
110swmm_surface_owner_preview(SWMM_Engine engine, const int* rows, int count,
111 SWMM_SurfaceOwnerObject* objects, int object_capacity, int* object_count,
112 SWMM_SurfaceOwnerShare* shares, int share_capacity, int* share_count,
113 double* mesh_weather_area, int cell_capacity, int* cell_count,
114 int* valid, char* token, int token_capacity, char* diagnostics,
115 int diagnostic_capacity, SWMM_SurfaceOwnerProgress progress, void* user);
116/* Atomic, revision-checked replacement. Empty set restores legacy absence.
117 * Invalid proposals and stale tokens leave the model unchanged. */
140SWMM_ENGINE_API int swmm_surface_owner_replace(SWMM_Engine engine, const int* rows, int count,
141 const char* expected_token, char* diagnostics,
142 int diagnostic_capacity);
143#ifdef __cplusplus
144}
145#endif
146#endif
#define SWMM_ENGINE_API
Definition openswmm_2d.h:62
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:55
OpenSWMM Engine — primary transparent C API (master header).
int(* SWMM_SurfaceOwnerProgress)(int done, int total, void *user)
Report surface-ownership preview work on the calling thread.
Definition openswmm_surface_ownership.h:43
SWMM_ENGINE_API int swmm_surface_owner_preview(SWMM_Engine engine, const int *rows, int count, SWMM_SurfaceOwnerObject *objects, int object_capacity, int *object_count, SWMM_SurfaceOwnerShare *shares, int share_capacity, int *share_count, double *mesh_weather_area, int cell_capacity, int *cell_count, int *valid, char *token, int token_capacity, char *diagnostics, int diagnostic_capacity, SWMM_SurfaceOwnerProgress progress, void *user)
Resolve proposed surface ownership, overlap diagnostics and a revision token.
Definition ApiSurfaceOwnership.cpp:130
SWMM_ENGINE_API int swmm_surface_owner_get(SWMM_Engine engine, int *rows, int capacity, int *count)
Read the currently authored surface-owner subcatchment indices.
Definition ApiSurfaceOwnership.cpp:113
SWMM_ENGINE_API int swmm_surface_owner_replace(SWMM_Engine engine, const int *rows, int count, const char *expected_token, char *diagnostics, int diagnostic_capacity)
Atomically replace authored surface-owner rows after revision checking.
Definition ApiSurfaceOwnership.cpp:187
Definition openswmm_surface_ownership.h:22
double inside_area
Definition openswmm_surface_ownership.h:25
double polygon_area
Definition openswmm_surface_ownership.h:24
int lumped
Definition openswmm_surface_ownership.h:23
int status
Definition openswmm_surface_ownership.h:23
int subcatch
Definition openswmm_surface_ownership.h:23
char name[256]
Definition openswmm_surface_ownership.h:26
double lid_area
Definition openswmm_surface_ownership.h:24
int reviewed
Definition openswmm_surface_ownership.h:23
double impervious_area
Definition openswmm_surface_ownership.h:24
double outside_area
Definition openswmm_surface_ownership.h:25
double declared_area
Definition openswmm_surface_ownership.h:24
double native_lid_area
Definition openswmm_surface_ownership.h:25
char tag[256]
Definition openswmm_surface_ownership.h:26
double pervious_area
Definition openswmm_surface_ownership.h:24
char reason[512]
Definition openswmm_surface_ownership.h:26
Definition openswmm_surface_ownership.h:28
double native_lid_area
Definition openswmm_surface_ownership.h:30
double weather_area
Definition openswmm_surface_ownership.h:30
double impervious_area
Definition openswmm_surface_ownership.h:30
int subcatch
Definition openswmm_surface_ownership.h:29
double lid_area
Definition openswmm_surface_ownership.h:30
int cell
Definition openswmm_surface_ownership.h:29
double pervious_area
Definition openswmm_surface_ownership.h:30