OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm_initial_quality.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: Apache-2.0
2 *
3 * Copyright 2026 Caleb Buahin
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
45
46#ifndef OPENSWMM_INITIAL_QUALITY_H
47#define OPENSWMM_INITIAL_QUALITY_H
48
49#include "openswmm_engine.h"
50
51#ifdef __cplusplus
52extern "C" {
53#endif
54
62
81SWMM_ENGINE_API int swmm_init_quality_get(SWMM_Engine engine, int entry_idx, int* is_link,
82 int* elem_idx, char* constituent_buf, int constituent_len,
83 double* value);
84
105SWMM_ENGINE_API int swmm_init_quality_set(SWMM_Engine engine, int is_link, int elem_idx,
106 const char* constituent, double value);
107
119SWMM_ENGINE_API int swmm_init_quality_remove(SWMM_Engine engine, int entry_idx);
120
121/* ---- U2 (2026-09-07): the `[INITIAL_QUALITY] FILE <csv>` sidecar --------
122 * Rows read from the sidecar carry is_file = 1 in swmm_init_quality_is_file
123 * and are not written back inline; the FILE line is. The CSV format is
124 * scope,element,constituent,value per line (comma / whitespace separated,
125 * optional header). The file is read at the next open; set/clear here only
126 * records the reference.
127 */
128
141SWMM_ENGINE_API int swmm_init_quality_file_get(SWMM_Engine engine, char* buf, int buflen);
142
154SWMM_ENGINE_API int swmm_init_quality_file_set(SWMM_Engine engine, const char* path);
155
167SWMM_ENGINE_API int swmm_init_quality_is_file(SWMM_Engine engine, int entry_idx);
168
169#ifdef __cplusplus
170}
171#endif
172
173#endif /* OPENSWMM_INITIAL_QUALITY_H */
#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).
SWMM_ENGINE_API int swmm_init_quality_get(SWMM_Engine engine, int entry_idx, int *is_link, int *elem_idx, char *constituent_buf, int constituent_len, double *value)
Read a stored initial-quality row without applying it.
Definition openswmm_initial_quality_impl.cpp:91
SWMM_ENGINE_API int swmm_init_quality_is_file(SWMM_Engine engine, int entry_idx)
Read whether an initial-quality row originated in a sidecar.
Definition openswmm_initial_quality_impl.cpp:211
SWMM_ENGINE_API int swmm_init_quality_remove(SWMM_Engine engine, int entry_idx)
Remove an initial-quality row and shift later indices down.
Definition openswmm_initial_quality_impl.cpp:163
SWMM_ENGINE_API int swmm_init_quality_file_get(SWMM_Engine engine, char *buf, int buflen)
Copy the authored initial-quality sidecar path token.
Definition openswmm_initial_quality_impl.cpp:195
SWMM_ENGINE_API int swmm_init_quality_count(SWMM_Engine engine)
Count stored per-element initial-quality rows.
Definition openswmm_initial_quality_impl.cpp:85
SWMM_ENGINE_API int swmm_init_quality_set(SWMM_Engine engine, int is_link, int elem_idx, const char *constituent, double value)
Upsert initial concentration/age/temperature by element and resolved constituent.
Definition openswmm_initial_quality_impl.cpp:109
SWMM_ENGINE_API int swmm_init_quality_file_set(SWMM_Engine engine, const char *path)
Set or clear the authored initial-quality sidecar reference.
Definition openswmm_initial_quality_impl.cpp:203