68#ifndef OPENSWMM_ENGINE_H
69#define OPENSWMM_ENGINE_H
77#ifdef OPENSWMM_ENGINE_STATIC
78# define SWMM_ENGINE_API
81# ifdef openswmm_engine_EXPORTS
82# define SWMM_ENGINE_API __declspec(dllexport)
84# define SWMM_ENGINE_API __declspec(dllimport)
87# define SWMM_ENGINE_API __attribute__((visibility("default")))
174 const char* inp,
const char* rpt,
const char* out);
Header file for SWMM output API.
Callback function typedefs for the OpenSWMM Engine C API.
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:35
void(* SWMM_StepBeginCallback)(SWMM_Engine engine, double sim_time, double dt, void *user_data)
Called at the beginning of each simulation timestep, before physics.
Definition openswmm_callbacks.h:111
void(* SWMM_WarningCallback)(SWMM_Engine engine, int code, const char *message, void *user_data)
Called when the engine emits a warning or non-fatal error.
Definition openswmm_callbacks.h:89
void(* SWMM_StepEndCallback)(SWMM_Engine engine, double sim_time, double dt, void *user_data)
Called at the end of each simulation timestep, after physics.
Definition openswmm_callbacks.h:129
void(* SWMM_ProgressCallback)(SWMM_Engine engine, double elapsed_frac, double sim_time, void *user_data)
Called after each simulation timestep to report progress.
Definition openswmm_callbacks.h:64
OpenSWMM Engine — Control Rules C API.
SWMM_ENGINE_API const char * swmm_get_last_error_msg(SWMM_Engine engine)
Definition openswmm_engine_impl.cpp:116
SWMM_ENGINE_API int swmm_set_progress_callback(SWMM_Engine engine, SWMM_ProgressCallback callback, void *user_data)
Definition openswmm_engine_impl.cpp:79
#define SWMM_ENGINE_API
Definition openswmm_engine.h:87
SWMM_ENGINE_API int swmm_get_routing_step(SWMM_Engine engine, double *dt)
Definition openswmm_engine_impl.cpp:165
SWMM_ENGINE_API int swmm_engine_end(SWMM_Engine engine)
End the simulation → SWMM_STATE_ENDED.
Definition openswmm_engine_impl.cpp:50
SWMM_ENGINE_API int swmm_get_current_time(SWMM_Engine engine, double *current)
Definition openswmm_engine_impl.cpp:159
SWMM_ENGINE_API int swmm_engine_close(SWMM_Engine engine)
Close all files → SWMM_STATE_CLOSED.
Definition openswmm_engine_impl.cpp:60
SWMM_ENGINE_API int swmm_set_warning_callback(SWMM_Engine engine, SWMM_WarningCallback callback, void *user_data)
Definition openswmm_engine_impl.cpp:86
SWMM_ENGINE_API const char * swmm_error_message(int code)
Definition openswmm_engine_impl.cpp:121
SWMM_ENGINE_API int swmm_engine_get_state(SWMM_Engine engine, int *state)
Query the current engine lifecycle state.
Definition openswmm_engine_impl.cpp:69
SWMM_WarnCode
Definition openswmm_engine.h:118
@ SWMM_WARN_NUMERICAL
Definition openswmm_engine.h:125
@ SWMM_WARN_DEPRECATED_KW
Definition openswmm_engine.h:123
@ SWMM_WARN_UNKNOWN_OPTION
Definition openswmm_engine.h:122
@ SWMM_WARN_NONE
Definition openswmm_engine.h:119
@ SWMM_WARN_UNKNOWN_SECTION
Definition openswmm_engine.h:121
@ SWMM_WARN_STABILITY_LIMIT
Definition openswmm_engine.h:126
@ SWMM_WARN_HOTSTART_MISSING
Definition openswmm_engine.h:120
@ SWMM_WARN_PLUGIN_INIT
Definition openswmm_engine.h:124
SWMM_ENGINE_API void swmm_engine_destroy(SWMM_Engine engine)
Destroy the engine handle (any state, NULL safe).
Definition openswmm_engine_impl.cpp:65
SWMM_ENGINE_API int swmm_engine_open(SWMM_Engine engine, const char *inp, const char *rpt, const char *out)
Open and parse a SWMM input file; load plugins → SWMM_STATE_OPENED.
Definition openswmm_engine_impl.cpp:29
SWMM_ObjectType
Definition openswmm_engine.h:149
@ SWMM_OBJ_GAGE
Definition openswmm_engine.h:150
@ SWMM_OBJ_LINK
Definition openswmm_engine.h:153
@ SWMM_OBJ_SHAPE
Definition openswmm_engine.h:161
@ SWMM_OBJ_UNITHYD
Definition openswmm_engine.h:159
@ SWMM_OBJ_LANDUSE
Definition openswmm_engine.h:155
@ SWMM_OBJ_POLLUT
Definition openswmm_engine.h:154
@ SWMM_OBJ_RDII
Definition openswmm_engine.h:158
@ SWMM_OBJ_TIMESER
Definition openswmm_engine.h:156
@ SWMM_OBJ_LID
Definition openswmm_engine.h:162
@ SWMM_OBJ_SUBCATCH
Definition openswmm_engine.h:151
@ SWMM_OBJ_SNOWMELT
Definition openswmm_engine.h:160
@ SWMM_OBJ_NODE
Definition openswmm_engine.h:152
@ SWMM_OBJ_TABLE
Definition openswmm_engine.h:157
SWMM_EngineState
Definition openswmm_engine.h:133
@ SWMM_STATE_RUNNING
Definition openswmm_engine.h:139
@ SWMM_STATE_BUILDING
Definition openswmm_engine.h:142
@ SWMM_STATE_CREATED
Definition openswmm_engine.h:135
@ SWMM_STATE_NONE
Definition openswmm_engine.h:134
@ SWMM_STATE_INITIALIZED
Definition openswmm_engine.h:137
@ SWMM_STATE_ENDED
Definition openswmm_engine.h:140
@ SWMM_STATE_CLOSED
Definition openswmm_engine.h:141
@ SWMM_STATE_OPENED
Definition openswmm_engine.h:136
@ SWMM_STATE_STARTED
Definition openswmm_engine.h:138
SWMM_ENGINE_API SWMM_Engine swmm_engine_create(void)
Create a new engine instance (SWMM_STATE_CREATED).
Definition openswmm_engine_impl.cpp:21
SWMM_ENGINE_API int swmm_get_start_time(SWMM_Engine engine, double *start)
Definition openswmm_engine_impl.cpp:147
SWMM_ENGINE_API int swmm_engine_start(SWMM_Engine engine, int save_results)
Start the simulation → SWMM_STATE_STARTED.
Definition openswmm_engine_impl.cpp:40
SWMM_ErrorCode
Definition openswmm_engine.h:99
@ SWMM_ERR_OUTFILE
Definition openswmm_engine.h:104
@ SWMM_ERR_INPFILE
Definition openswmm_engine.h:102
@ SWMM_ERR_RPTFILE
Definition openswmm_engine.h:103
@ SWMM_ERR_IO
Definition openswmm_engine.h:111
@ SWMM_ERR_CRS
Definition openswmm_engine.h:113
@ SWMM_ERR_BADINDEX
Definition openswmm_engine.h:108
@ SWMM_ERR_INTERNAL
Definition openswmm_engine.h:115
@ SWMM_ERR_LIFECYCLE
Definition openswmm_engine.h:106
@ SWMM_ERR_HOTSTART
Definition openswmm_engine.h:112
@ SWMM_OK
Definition openswmm_engine.h:100
@ SWMM_ERR_BADPARAM
Definition openswmm_engine.h:109
@ SWMM_ERR_NUMERICAL
Definition openswmm_engine.h:114
@ SWMM_ERR_PLUGIN
Definition openswmm_engine.h:110
@ SWMM_ERR_BADHANDLE
Definition openswmm_engine.h:107
@ SWMM_ERR_NOMEM
Definition openswmm_engine.h:101
@ SWMM_ERR_PARSE
Definition openswmm_engine.h:105
SWMM_ENGINE_API int swmm_get_last_error(SWMM_Engine engine)
Definition openswmm_engine_impl.cpp:111
SWMM_ENGINE_API int swmm_engine_report(SWMM_Engine engine)
Write summary report (SWMM_STATE_ENDED).
Definition openswmm_engine_impl.cpp:55
SWMM_ENGINE_API int swmm_get_end_time(SWMM_Engine engine, double *end)
Definition openswmm_engine_impl.cpp:153
SWMM_ENGINE_API int swmm_set_step_end_callback(SWMM_Engine engine, SWMM_StepEndCallback callback, void *user_data)
Definition openswmm_engine_impl.cpp:100
SWMM_ENGINE_API int swmm_engine_initialize(SWMM_Engine engine)
Initialize the simulation → SWMM_STATE_INITIALIZED.
Definition openswmm_engine_impl.cpp:35
SWMM_ENGINE_API int swmm_engine_step(SWMM_Engine engine, double *elapsed_time)
Advance one explicit timestep. elapsed_time==0 when done.
Definition openswmm_engine_impl.cpp:45
SWMM_ENGINE_API int swmm_set_step_begin_callback(SWMM_Engine engine, SWMM_StepBeginCallback callback, void *user_data)
Definition openswmm_engine_impl.cpp:93
Runtime forcing API — inject fluxes with mass-balance tracking.
OpenSWMM Engine — Rain Gage C API.
Hot start file management — transparent C API.
OpenSWMM Engine — Inflows (External, DWF, RDII) C API.
OpenSWMM Engine — Infrastructure (Transects, Streets, Inlets, LIDs) C API.
OpenSWMM Engine — Link (conduit/pump/orifice/weir/outlet) C API.
OpenSWMM Engine — Mass Balance / Continuity C API.
OpenSWMM Engine — Model building and options C API.
OpenSWMM Engine — Node C API.
OpenSWMM Engine — Pollutant / Water Quality C API.
OpenSWMM Engine — Water Quality (Landuse / Buildup / Washoff / Treatment) C API.
OpenSWMM Engine — Spatial Frame C API.
OpenSWMM Engine — Statistics Query C API.
OpenSWMM Engine — Subcatchment C API.
OpenSWMM Engine — Tables (Time Series & Curves) and Patterns C API.