OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
BuiltinPluginInfos.hpp
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
36
37#ifndef OPENSWMM_ENGINE_BUILTIN_PLUGIN_INFOS_HPP
38#define OPENSWMM_ENGINE_BUILTIN_PLUGIN_INFOS_HPP
39
41
42namespace openswmm {
43
45public:
48 static BuiltinDefaultInputPluginInfo& instance() noexcept;
49
52 std::string id() const override { return "org.hydrocouple.openswmm.builtin.input"; }
55 std::string caption() const override { return "Default SWMM Input Plugin"; }
58 std::string description() const override { return "Reads and writes SWMM .inp model files."; }
61 std::string version() const override { return "1.0.0"; }
64 std::string vendor() const override { return "HydroCouple"; }
67 std::string url() const override { return "https://hydrocouple.org"; }
70 std::string license_type() const override { return "Apache-2.0"; }
73 std::string license_text() const override { return "Apache License, Version 2.0"; }
74
78 bool has_input() const noexcept override { return true; }
79
82 std::vector<FileFilter> file_filters() const override;
83};
84
86public:
90
93 std::string id() const override { return "org.hydrocouple.openswmm.builtin.output"; }
96 std::string caption() const override { return "Default SWMM Output Plugin"; }
99 std::string description() const override {
100 return "Writes the SWMM 5.x binary time-series results file (.out).";
101 }
102
104 std::string version() const override { return "1.0.0"; }
107 std::string vendor() const override { return "HydroCouple"; }
110 std::string url() const override { return "https://hydrocouple.org"; }
113 std::string license_type() const override { return "Apache-2.0"; }
116 std::string license_text() const override { return "Apache License, Version 2.0"; }
117
121 bool has_output() const noexcept override { return true; }
122
125 std::vector<FileFilter> file_filters() const override;
126};
127
129public:
132 static BuiltinDefaultReportPluginInfo& instance() noexcept;
133
136 std::string id() const override { return "org.hydrocouple.openswmm.builtin.report"; }
139 std::string caption() const override { return "Default SWMM Report Plugin"; }
142 std::string description() const override {
143 return "Writes the SWMM summary report file (.rpt).";
144 }
145
147 std::string version() const override { return "1.0.0"; }
150 std::string vendor() const override { return "HydroCouple"; }
153 std::string url() const override { return "https://hydrocouple.org"; }
156 std::string license_type() const override { return "Apache-2.0"; }
159 std::string license_text() const override { return "Apache License, Version 2.0"; }
160
164 bool has_report() const noexcept override { return true; }
165
168 std::vector<FileFilter> file_filters() const override;
169};
170
172public:
175 static BuiltinDefaultStateIOPluginInfo& instance() noexcept;
176
179 std::string id() const override { return "org.hydrocouple.openswmm.builtin.state_io"; }
182 std::string caption() const override { return "Default Hot-Start / State IO Plugin"; }
185 std::string description() const override {
186 return "Reads and writes OpenSWMM hot-start files (*.hs) and reads "
187 "legacy SWMM5 hot-start files (*.hsf).";
188 }
189
191 std::string version() const override { return "1.0.0"; }
194 std::string vendor() const override { return "HydroCouple"; }
197 std::string url() const override { return "https://hydrocouple.org"; }
200 std::string license_type() const override { return "Apache-2.0"; }
203 std::string license_text() const override { return "Apache License, Version 2.0"; }
204
208 bool has_state_io() const noexcept override { return true; }
209
213 std::vector<FileFilter> file_filters() const override;
214};
215
216} /* namespace openswmm */
217
218#endif /* OPENSWMM_ENGINE_BUILTIN_PLUGIN_INFOS_HPP */
Interface that describes a plugin component — metadata and factory methods.
Definition BuiltinPluginInfos.hpp:44
std::string vendor() const override
Copy the vendor name.
Definition BuiltinPluginInfos.hpp:64
std::string url() const override
Copy the project URL.
Definition BuiltinPluginInfos.hpp:67
std::vector< FileFilter > file_filters() const override
Copy the builtin format/role advertisement.
Definition BuiltinPluginInfos.cpp:37
bool has_input() const noexcept override
Advertise this builtin metadata's matching capability.
Definition BuiltinPluginInfos.hpp:78
std::string description() const override
Copy the capability description.
Definition BuiltinPluginInfos.hpp:58
std::string license_text() const override
Copy the license display name.
Definition BuiltinPluginInfos.hpp:73
std::string license_type() const override
Copy the SPDX license token.
Definition BuiltinPluginInfos.hpp:70
static BuiltinDefaultInputPluginInfo & instance() noexcept
Access process-lifetime builtin metadata without constructing plugin instances.
Definition BuiltinPluginInfos.cpp:32
std::string id() const override
Copy the stable builtin ID.
Definition BuiltinPluginInfos.hpp:52
std::string version() const override
Copy the metadata version.
Definition BuiltinPluginInfos.hpp:61
std::string caption() const override
Copy the UI caption.
Definition BuiltinPluginInfos.hpp:55
Definition BuiltinPluginInfos.hpp:85
std::vector< FileFilter > file_filters() const override
Copy the builtin format/role advertisement.
Definition BuiltinPluginInfos.cpp:51
std::string license_type() const override
Copy the SPDX license token.
Definition BuiltinPluginInfos.hpp:113
bool has_output() const noexcept override
Advertise this builtin metadata's matching capability.
Definition BuiltinPluginInfos.hpp:121
std::string version() const override
Copy the metadata version.
Definition BuiltinPluginInfos.hpp:104
std::string caption() const override
Copy the UI caption.
Definition BuiltinPluginInfos.hpp:96
std::string url() const override
Copy the project URL.
Definition BuiltinPluginInfos.hpp:110
std::string license_text() const override
Copy the license display name.
Definition BuiltinPluginInfos.hpp:116
std::string vendor() const override
Copy the vendor name.
Definition BuiltinPluginInfos.hpp:107
std::string description() const override
Copy the capability description.
Definition BuiltinPluginInfos.hpp:99
std::string id() const override
Copy the stable builtin ID.
Definition BuiltinPluginInfos.hpp:93
static BuiltinDefaultOutputPluginInfo & instance() noexcept
Access process-lifetime builtin metadata without constructing plugin instances.
Definition BuiltinPluginInfos.cpp:46
Definition BuiltinPluginInfos.hpp:128
std::string license_type() const override
Copy the SPDX license token.
Definition BuiltinPluginInfos.hpp:156
std::string license_text() const override
Copy the license display name.
Definition BuiltinPluginInfos.hpp:159
std::vector< FileFilter > file_filters() const override
Copy the builtin format/role advertisement.
Definition BuiltinPluginInfos.cpp:65
bool has_report() const noexcept override
Advertise this builtin metadata's matching capability.
Definition BuiltinPluginInfos.hpp:164
std::string description() const override
Copy the capability description.
Definition BuiltinPluginInfos.hpp:142
std::string vendor() const override
Copy the vendor name.
Definition BuiltinPluginInfos.hpp:150
static BuiltinDefaultReportPluginInfo & instance() noexcept
Access process-lifetime builtin metadata without constructing plugin instances.
Definition BuiltinPluginInfos.cpp:60
std::string id() const override
Copy the stable builtin ID.
Definition BuiltinPluginInfos.hpp:136
std::string url() const override
Copy the project URL.
Definition BuiltinPluginInfos.hpp:153
std::string caption() const override
Copy the UI caption.
Definition BuiltinPluginInfos.hpp:139
std::string version() const override
Copy the metadata version.
Definition BuiltinPluginInfos.hpp:147
Definition BuiltinPluginInfos.hpp:171
std::string license_type() const override
Copy the SPDX license token.
Definition BuiltinPluginInfos.hpp:200
std::string version() const override
Copy the metadata version.
Definition BuiltinPluginInfos.hpp:191
bool has_state_io() const noexcept override
Advertise this builtin metadata's matching capability.
Definition BuiltinPluginInfos.hpp:208
std::string vendor() const override
Copy the vendor name.
Definition BuiltinPluginInfos.hpp:194
static BuiltinDefaultStateIOPluginInfo & instance() noexcept
Access process-lifetime builtin metadata without constructing plugin instances.
Definition BuiltinPluginInfos.cpp:74
std::string license_text() const override
Copy the license display name.
Definition BuiltinPluginInfos.hpp:203
std::string url() const override
Copy the project URL.
Definition BuiltinPluginInfos.hpp:197
std::string caption() const override
Copy the UI caption.
Definition BuiltinPluginInfos.hpp:182
std::string id() const override
Copy the stable builtin ID.
Definition BuiltinPluginInfos.hpp:179
std::vector< FileFilter > file_filters() const override
Copy the builtin format/role advertisement.
Definition BuiltinPluginInfos.cpp:79
std::string description() const override
Copy the capability description.
Definition BuiltinPluginInfos.hpp:185
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:201
Definition ExchangeLaw.hpp:60