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:
46 static BuiltinDefaultInputPluginInfo& instance() noexcept;
47
48 std::string id() const override { return "org.hydrocouple.openswmm.builtin.input"; }
49 std::string caption() const override { return "Default SWMM Input Plugin"; }
50 std::string description() const override {
51 return "Reads and writes SWMM .inp model files.";
52 }
53 std::string version() const override { return "1.0.0"; }
54 std::string vendor() const override { return "HydroCouple"; }
55 std::string url() const override { return "https://hydrocouple.org"; }
56 std::string license_type() const override { return "Apache-2.0"; }
57 std::string license_text() const override { return "Apache License, Version 2.0"; }
58
59 bool has_input() const noexcept override { return true; }
60
61 std::vector<FileFilter> file_filters() const override;
62};
63
65public:
67
68 std::string id() const override { return "org.hydrocouple.openswmm.builtin.output"; }
69 std::string caption() const override { return "Default SWMM Output Plugin"; }
70 std::string description() const override {
71 return "Writes the SWMM 5.x binary time-series results file (.out).";
72 }
73 std::string version() const override { return "1.0.0"; }
74 std::string vendor() const override { return "HydroCouple"; }
75 std::string url() const override { return "https://hydrocouple.org"; }
76 std::string license_type() const override { return "Apache-2.0"; }
77 std::string license_text() const override { return "Apache License, Version 2.0"; }
78
79 bool has_output() const noexcept override { return true; }
80
81 std::vector<FileFilter> file_filters() const override;
82};
83
85public:
87
88 std::string id() const override { return "org.hydrocouple.openswmm.builtin.report"; }
89 std::string caption() const override { return "Default SWMM Report Plugin"; }
90 std::string description() const override {
91 return "Writes the SWMM summary report file (.rpt).";
92 }
93 std::string version() const override { return "1.0.0"; }
94 std::string vendor() const override { return "HydroCouple"; }
95 std::string url() const override { return "https://hydrocouple.org"; }
96 std::string license_type() const override { return "Apache-2.0"; }
97 std::string license_text() const override { return "Apache License, Version 2.0"; }
98
99 bool has_report() const noexcept override { return true; }
100
101 std::vector<FileFilter> file_filters() const override;
102};
103
105public:
106 static BuiltinDefaultStateIOPluginInfo& instance() noexcept;
107
108 std::string id() const override { return "org.hydrocouple.openswmm.builtin.state_io"; }
109 std::string caption() const override { return "Default Hot-Start / State IO Plugin"; }
110 std::string description() const override {
111 return "Reads and writes OpenSWMM hot-start files (*.hs) and reads "
112 "legacy SWMM5 hot-start files (*.hsf).";
113 }
114 std::string version() const override { return "1.0.0"; }
115 std::string vendor() const override { return "HydroCouple"; }
116 std::string url() const override { return "https://hydrocouple.org"; }
117 std::string license_type() const override { return "Apache-2.0"; }
118 std::string license_text() const override { return "Apache License, Version 2.0"; }
119
120 bool has_state_io() const noexcept override { return true; }
121
122 std::vector<FileFilter> file_filters() const override;
123};
124
125} /* namespace openswmm */
126
127#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
Vendor / author name.
Definition BuiltinPluginInfos.hpp:54
std::string url() const override
URL to the plugin's home page or documentation.
Definition BuiltinPluginInfos.hpp:55
std::vector< FileFilter > file_filters() const override
File-format filters this plugin handles.
Definition BuiltinPluginInfos.cpp:37
bool has_input() const noexcept override
True if this plugin can create an IInputPlugin.
Definition BuiltinPluginInfos.hpp:59
std::string description() const override
Detailed description of what this plugin does.
Definition BuiltinPluginInfos.hpp:50
std::string license_text() const override
Full license text for this plugin.
Definition BuiltinPluginInfos.hpp:57
std::string license_type() const override
SPDX license identifier for this plugin.
Definition BuiltinPluginInfos.hpp:56
static BuiltinDefaultInputPluginInfo & instance() noexcept
Definition BuiltinPluginInfos.cpp:32
std::string id() const override
Unique plugin identifier in reverse-DNS notation.
Definition BuiltinPluginInfos.hpp:48
std::string version() const override
Plugin version string (Semantic Versioning recommended).
Definition BuiltinPluginInfos.hpp:53
std::string caption() const override
Human-readable display name of the plugin.
Definition BuiltinPluginInfos.hpp:49
Definition BuiltinPluginInfos.hpp:64
std::vector< FileFilter > file_filters() const override
File-format filters this plugin handles.
Definition BuiltinPluginInfos.cpp:55
std::string license_type() const override
SPDX license identifier for this plugin.
Definition BuiltinPluginInfos.hpp:76
bool has_output() const noexcept override
True if this plugin can create an IOutputPlugin.
Definition BuiltinPluginInfos.hpp:79
std::string version() const override
Plugin version string (Semantic Versioning recommended).
Definition BuiltinPluginInfos.hpp:73
std::string caption() const override
Human-readable display name of the plugin.
Definition BuiltinPluginInfos.hpp:69
std::string url() const override
URL to the plugin's home page or documentation.
Definition BuiltinPluginInfos.hpp:75
std::string license_text() const override
Full license text for this plugin.
Definition BuiltinPluginInfos.hpp:77
std::string vendor() const override
Vendor / author name.
Definition BuiltinPluginInfos.hpp:74
std::string description() const override
Detailed description of what this plugin does.
Definition BuiltinPluginInfos.hpp:70
std::string id() const override
Unique plugin identifier in reverse-DNS notation.
Definition BuiltinPluginInfos.hpp:68
static BuiltinDefaultOutputPluginInfo & instance() noexcept
Definition BuiltinPluginInfos.cpp:50
Definition BuiltinPluginInfos.hpp:84
std::string license_type() const override
SPDX license identifier for this plugin.
Definition BuiltinPluginInfos.hpp:96
std::string license_text() const override
Full license text for this plugin.
Definition BuiltinPluginInfos.hpp:97
std::vector< FileFilter > file_filters() const override
File-format filters this plugin handles.
Definition BuiltinPluginInfos.cpp:73
bool has_report() const noexcept override
True if this plugin can create an IReportPlugin.
Definition BuiltinPluginInfos.hpp:99
std::string description() const override
Detailed description of what this plugin does.
Definition BuiltinPluginInfos.hpp:90
std::string vendor() const override
Vendor / author name.
Definition BuiltinPluginInfos.hpp:94
static BuiltinDefaultReportPluginInfo & instance() noexcept
Definition BuiltinPluginInfos.cpp:68
std::string id() const override
Unique plugin identifier in reverse-DNS notation.
Definition BuiltinPluginInfos.hpp:88
std::string url() const override
URL to the plugin's home page or documentation.
Definition BuiltinPluginInfos.hpp:95
std::string caption() const override
Human-readable display name of the plugin.
Definition BuiltinPluginInfos.hpp:89
std::string version() const override
Plugin version string (Semantic Versioning recommended).
Definition BuiltinPluginInfos.hpp:93
Definition BuiltinPluginInfos.hpp:104
std::string license_type() const override
SPDX license identifier for this plugin.
Definition BuiltinPluginInfos.hpp:117
std::string version() const override
Plugin version string (Semantic Versioning recommended).
Definition BuiltinPluginInfos.hpp:114
bool has_state_io() const noexcept override
True if this plugin can create an IStateIOPlugin.
Definition BuiltinPluginInfos.hpp:120
std::string vendor() const override
Vendor / author name.
Definition BuiltinPluginInfos.hpp:115
static BuiltinDefaultStateIOPluginInfo & instance() noexcept
Definition BuiltinPluginInfos.cpp:86
std::string license_text() const override
Full license text for this plugin.
Definition BuiltinPluginInfos.hpp:118
std::string url() const override
URL to the plugin's home page or documentation.
Definition BuiltinPluginInfos.hpp:116
std::string caption() const override
Human-readable display name of the plugin.
Definition BuiltinPluginInfos.hpp:109
std::string id() const override
Unique plugin identifier in reverse-DNS notation.
Definition BuiltinPluginInfos.hpp:108
std::vector< FileFilter > file_filters() const override
File-format filters this plugin handles.
Definition BuiltinPluginInfos.cpp:91
std::string description() const override
Detailed description of what this plugin does.
Definition BuiltinPluginInfos.hpp:110
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:195
Definition NodeCoupling.cpp:16