39#ifndef OPENSWMM_MODEL_H
40#define OPENSWMM_MODEL_H
126typedef const char* (*SWMM_StageOutputCallback)(
void* user_data,
const char* final_path,
int kind);
201 const char* output_plugin_id);
245 char* args_buf,
int args_buf_sz);
410 const char* owner,
char* absolute_buf,
int absolute_buflen,
411 char* original_buf,
int original_buflen);
429 const char* owner,
const char* new_path);
849 int name_buflen,
int* type,
char* desc_buf,
867 const char* description);
901 const char* obj_name,
const char* flag_name,
char* buf,
902 int buflen,
int* found);
925 const char* obj_name,
const char* flag_name,
944 const char* obj_name,
const char* flag_name);
#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_model_write(SWMM_Engine engine, const char *new_inp_path)
Serialize the current model with the built-in INP writer.
Definition openswmm_model_impl.cpp:455
SWMM_ENGINE_API int swmm_userflag_value_set(SWMM_Engine engine, const char *obj_type, const char *obj_name, const char *flag_name, const char *value)
Parse a copied assignment using an existing flag schema.
Definition openswmm_model_impl.cpp:2690
SWMM_ENGINE_API int swmm_options_set_start_date(SWMM_Engine engine, double value)
Assign the simulation start calendar value directly.
Definition openswmm_model_impl.cpp:2468
SWMM_ENGINE_API int swmm_options_set_end_date(SWMM_Engine engine, double value)
Assign the simulation end calendar value directly.
Definition openswmm_model_impl.cpp:2484
SWMM_ENGINE_API int swmm_userflag_def_count(SWMM_Engine engine, int *count)
Count user-flag schema definitions.
Definition openswmm_model_impl.cpp:2611
SWMM_ENGINE_API int swmm_userflag_get_bool(SWMM_Engine engine, const char *name, int *value)
Read a model-level BOOLEAN flag assignment.
Definition openswmm_model_impl.cpp:2510
SWMM_ENGINE_API int swmm_title_set(SWMM_Engine engine, const char *text)
Replace title entries by splitting copied text at newline characters.
Definition openswmm_model_impl.cpp:1080
SWMM_ENGINE_API int swmm_options_key_at(int index, char *buf, int buflen)
Copy one standard option key by position.
Definition openswmm_model_impl.cpp:2387
SWMM_ENGINE_API int swmm_model_write_compat(SWMM_Engine engine, const char *new_inp_path, int profile)
Serialize the model to a selected INP compatibility profile.
Definition openswmm_model_impl.cpp:481
SWMM_ENGINE_API SWMM_Engine swmm_engine_new(void)
Create an empty programmatically editable engine in SWMM_STATE_BUILDING.
Definition openswmm_model_impl.cpp:328
SWMM_ENGINE_API int swmm_finalize_model(SWMM_Engine engine)
Resolve and initialize a programmatically built model.
Definition openswmm_model_impl.cpp:373
SWMM_InpProfile
Definition openswmm_model.h:148
@ SWMM_INP_PROFILE_SWMM5_STOCK
Definition openswmm_model.h:151
@ SWMM_INP_PROFILE_SWMM5
Definition openswmm_model.h:150
@ SWMM_INP_PROFILE_FULL
Definition openswmm_model.h:149
SWMM_ENGINE_API int swmm_options_set_report_start(SWMM_Engine engine, double value)
Assign the report start calendar value directly.
Definition openswmm_model_impl.cpp:2500
SWMM_ENGINE_API int swmm_plugins_count(SWMM_Engine engine, int *count)
Count stored [PLUGINS] specifications.
Definition openswmm_model_impl.cpp:576
SWMM_ENGINE_API int swmm_options_ext_key_count(SWMM_Engine engine, int *count)
Number of keys swmm_options_get_ext() currently accepts on this engine.
Definition openswmm_model_impl.cpp:2420
SWMM_ENGINE_API int swmm_plugin_set(SWMM_Engine engine, const char *path_or_id, const char *args)
Add or replace a copied plugin specification by exact path/ID key.
Definition openswmm_model_impl.cpp:597
SWMM_ENGINE_API int swmm_options_set_ext(SWMM_Engine engine, const char *key, const char *value)
Set a recognized 2D option or retain a generic extension key/value.
Definition openswmm_model_impl.cpp:2293
SWMM_ENGINE_API int swmm_options_get_ext(SWMM_Engine engine, const char *key, char *buf, int buflen)
Read a live 2D option or stored extension string.
Definition openswmm_model_impl.cpp:2252
SWMM_ENGINE_API int swmm_title_clear(SWMM_Engine engine)
Remove all title/note entries.
Definition openswmm_model_impl.cpp:1100
SWMM_ENGINE_API int swmm_userflag_set_int(SWMM_Engine engine, const char *name, int value)
Define a INTEGER flag and assign its model-level value.
Definition openswmm_model_impl.cpp:2583
SWMM_ENGINE_API int swmm_userflag_get_int(SWMM_Engine engine, const char *name, int *value)
Read a model-level INTEGER flag assignment.
Definition openswmm_model_impl.cpp:2530
SWMM_ENGINE_API int swmm_userflag_set_real(SWMM_Engine engine, const char *name, double value)
Define a REAL flag and assign its model-level value.
Definition openswmm_model_impl.cpp:2594
SWMM_ENGINE_API int swmm_userflag_value_clear(SWMM_Engine engine, const char *obj_type, const char *obj_name, const char *flag_name)
Remove one per-object assignment, leaving its schema intact.
Definition openswmm_model_impl.cpp:2733
SWMM_ENGINE_API int swmm_userflag_undefine(SWMM_Engine engine, const char *name)
Remove a schema and all assignments of that flag.
Definition openswmm_model_impl.cpp:2649
SWMM_ENGINE_API int swmm_options_set(SWMM_Engine engine, const char *key, const char *value)
Parse and assign a supported standard simulation option.
Definition openswmm_model_impl.cpp:1617
const char *(* SWMM_StageOutputCallback)(void *user_data, const char *final_path, int kind)
Map a final writer output path to its private physical staging destination.
Definition openswmm_model.h:126
SWMM_ENGINE_API int swmm_get_crs(SWMM_Engine engine, char *buf, int buflen)
Copy the configured coordinate-reference-system string.
Definition openswmm_model_impl.cpp:2441
SWMM_ENGINE_API int swmm_title_add_line(SWMM_Engine engine, const char *line)
Append a copied title/note entry.
Definition openswmm_model_impl.cpp:1072
SWMM_ENGINE_API int swmm_options_get_report_start(SWMM_Engine engine, double *value)
Read the configured report start calendar value.
Definition openswmm_model_impl.cpp:2492
SWMM_ENGINE_API int swmm_file_path_get(SWMM_Engine engine, SWMM_FilePathRole role, const char *owner, char *absolute_buf, int absolute_buflen, char *original_buf, int original_buflen)
Read resolved and original strings for an existing external-file slot.
Definition openswmm_model_impl.cpp:869
SWMM_ENGINE_API int swmm_files_get(SWMM_Engine engine, const char *key, char *buf, int buflen)
Read a legacy [FILES] authoring field by case-insensitive key.
Definition openswmm_model_impl.cpp:640
SWMM_ENGINE_API int swmm_files_set(SWMM_Engine engine, const char *key, const char *value)
Set one copied legacy [FILES] authoring field.
Definition openswmm_model_impl.cpp:684
SWMM_ENGINE_API int swmm_options_get_end_date(SWMM_Engine engine, double *value)
Read the configured simulation end calendar value.
Definition openswmm_model_impl.cpp:2476
SWMM_ENGINE_API int swmm_plugin_get(SWMM_Engine engine, int idx, char *path_buf, int path_buf_sz, char *args_buf, int args_buf_sz)
Read one stored [PLUGINS] row without resolving/loading it.
Definition openswmm_model_impl.cpp:584
SWMM_ENGINE_API int swmm_validate_model(SWMM_Engine engine)
Check the minimal programmatic topology prerequisites without changing state.
Definition openswmm_model_impl.cpp:338
SWMM_ENGINE_API int swmm_options_get_start_date(SWMM_Engine engine, double *value)
Read the configured simulation start calendar value.
Definition openswmm_model_impl.cpp:2460
SWMM_ENGINE_API int swmm_model_write_staged(SWMM_Engine engine, const char *final_inp_path, SWMM_StageOutputCallback mapper, void *user_data)
Serialize built-in INP outputs through a mandatory caller staging mapper.
Definition openswmm_model_impl.cpp:465
SWMM_ENGINE_API int swmm_userflag_def_get(SWMM_Engine engine, int index, char *name_buf, int name_buflen, int *type, char *desc_buf, int desc_buflen)
Read a flag definition by insertion-order index.
Definition openswmm_model_impl.cpp:2619
SWMM_ENGINE_API int swmm_userflag_get_real(SWMM_Engine engine, const char *name, double *value)
Read a model-level REAL flag assignment.
Definition openswmm_model_impl.cpp:2550
SWMM_ENGINE_API int swmm_model_write_with_plugin(SWMM_Engine engine, const char *new_path, const char *output_plugin_id)
Serialize through a transient named input/writer plugin.
Definition openswmm_model_impl.cpp:506
SWMM_ENGINE_API int swmm_userflag_define(SWMM_Engine engine, const char *name, int type, const char *description)
Define or replace a flag schema without converting assigned values.
Definition openswmm_model_impl.cpp:2636
SWMM_ENGINE_API int swmm_plugin_remove(SWMM_Engine engine, const char *path_or_id)
Remove the first exact-matching stored plugin specification.
Definition openswmm_model_impl.cpp:620
SWMM_ENGINE_API int swmm_title_get_line(SWMM_Engine engine, int index, char *buf, int buflen)
Copy one stored title/note line.
Definition openswmm_model_impl.cpp:1059
SWMM_ENGINE_API int swmm_title_get_count(SWMM_Engine engine, int *count)
Count stored [TITLE] note lines.
Definition openswmm_model_impl.cpp:1051
SWMM_ENGINE_API int swmm_userflag_set_bool(SWMM_Engine engine, const char *name, int value)
Define a BOOLEAN flag and assign its model-level value.
Definition openswmm_model_impl.cpp:2570
SWMM_FilePathRole
Identifies a single external-file slot on the model.
Definition openswmm_model.h:361
@ SWMM_FILE_RAINGAGE_DATA
Definition openswmm_model.h:374
@ SWMM_FILE_INFLOWS
Definition openswmm_model.h:366
@ SWMM_FILE_HOTSTART_USE
Definition openswmm_model.h:368
@ SWMM_FILE_LID_REPORT
Definition openswmm_model.h:385
@ SWMM_FILE_TIMESERIES_DATA
Definition openswmm_model.h:376
@ SWMM_FILE_RAINFALL
Definition openswmm_model.h:363
@ SWMM_FILE_OUTFLOWS
Definition openswmm_model.h:367
@ SWMM_FILE_RDII
Definition openswmm_model.h:365
@ SWMM_FILE_RUNOFF
Definition openswmm_model.h:364
@ SWMM_FILE_CLIMATE_TEMP
Definition openswmm_model.h:369
@ SWMM_FILE_HOTSTART_SAVE
Definition openswmm_model.h:372
@ SWMM_FILE_OUTPUT_2D
Definition openswmm_model.h:382
@ SWMM_FILE_MESH_2D
Definition openswmm_model.h:381
SWMM_ENGINE_API int swmm_userflag_value_get(SWMM_Engine engine, const char *obj_type, const char *obj_name, const char *flag_name, char *buf, int buflen, int *found)
Format a stored per-object flag assignment as text.
Definition openswmm_model_impl.cpp:2657
SWMM_ENGINE_API int swmm_file_path_set(SWMM_Engine engine, SWMM_FilePathRole role, const char *owner, const char *new_path)
Replace an external-file token and invalidate its cached absolute path.
Definition openswmm_model_impl.cpp:884
SWMM_ENGINE_API int swmm_options_ext_key_at(SWMM_Engine engine, int index, char *buf, int buflen)
Copy one key accepted by swmm_options_get_ext() by position.
Definition openswmm_model_impl.cpp:2428
SWMM_ENGINE_API int swmm_options_get(SWMM_Engine engine, const char *key, char *buf, int buflen)
Format a supported standard option in input-compatible string form.
Definition openswmm_model_impl.cpp:1138
SWMM_ENGINE_API int swmm_options_key_count(void)
Number of standard option keys accepted by swmm_options_get() and swmm_options_set().
Definition openswmm_model_impl.cpp:2383