32#ifndef OPENSWMM_HDF5_PLUGIN_INFO_HPP
33#define OPENSWMM_HDF5_PLUGIN_INFO_HPP
53 static Hdf5PluginInfo inst;
63 std::string
id()
const override {
return "org.hydrocouple.openswmm.plugins.hdf5"; }
69 std::string
caption()
const override {
return "HDF5 Model I/O Plugin"; }
76 return "Writes SWMM model definitions to a columnar HDF5 container: one "
77 "group per object class, one array per attribute, in AUTHORED "
78 "units. Intended for array-shaped consumers — h5py, xarray, "
79 "MATLAB, notebooks — that want the model without parsing text or "
80 "issuing SQL. See src/engine/io/hdf5/STRATEGY.md.";
87 std::string
version()
const override {
return "1.0.0"; }
92 std::string
vendor()
const override {
return "HydroCouple"; }
98 std::string
url()
const override {
99 return "https://hydrocouple.org/projects/openswmm/plugins/hdf5";
106 std::vector<std::string>
tags()
const override {
107 return {
"hdf5",
"h5",
"columnar",
"input",
"output",
"export",
"analysis",
"python"};
123 return "Copyright (c) 2026 Caleb Buahin. All rights reserved.\n"
124 "Licensed under the Apache License, Version 2.0 — see the\n"
125 "LICENSE and NOTICE files for full text.";
139 bool has_input() const noexcept
override {
return true; }
157 const std::string desc =
"OpenSWMM HDF5 model";
158 const std::vector<std::string> patterns = {
"*.h5",
"*.hdf5"};
159 const std::vector<std::string> mimes = {
"application/x-hdf5"};
Interface that describes a plugin component — metadata and factory methods.
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:201
Singleton describing the HDF5 I/O plugin.
Definition Hdf5PluginInfo.hpp:46
bool has_output() const noexcept override
Report the plugin's has output metadata.
Definition Hdf5PluginInfo.hpp:144
static Hdf5PluginInfo & instance()
Access the built-in HDF5 plugin metadata singleton.
Definition Hdf5PluginInfo.hpp:52
std::string description() const override
Report the plugin's description metadata.
Definition Hdf5PluginInfo.hpp:75
std::string license_text() const override
Report the plugin's license text metadata.
Definition Hdf5PluginInfo.hpp:122
bool has_input() const noexcept override
Report the plugin's has input metadata.
Definition Hdf5PluginInfo.hpp:139
bool has_report() const noexcept override
Report the plugin's has report metadata.
Definition Hdf5PluginInfo.hpp:149
std::string url() const override
Report the plugin's url metadata.
Definition Hdf5PluginInfo.hpp:98
IInputPlugin * create_input_plugin() const override
Allocate an independent HDF5 model I/O plugin instance.
Definition Hdf5PluginInfo.cpp:33
std::vector< std::string > tags() const override
Report the plugin's tags metadata.
Definition Hdf5PluginInfo.hpp:106
std::string version() const override
Report the plugin's version metadata.
Definition Hdf5PluginInfo.hpp:87
std::string caption() const override
Report the plugin's caption metadata.
Definition Hdf5PluginInfo.hpp:69
std::string id() const override
Report the plugin's id metadata.
Definition Hdf5PluginInfo.hpp:63
std::string vendor() const override
Report the plugin's vendor metadata.
Definition Hdf5PluginInfo.hpp:92
std::vector< FileFilter > file_filters() const override
Report the plugin's file filters metadata.
Definition Hdf5PluginInfo.hpp:156
std::string license_type() const override
Report the plugin's license type metadata.
Definition Hdf5PluginInfo.hpp:116
@ INPUT_READ
Plugin reads a model input file (e.g. *.inp).
Definition IPluginComponentInfo.hpp:96
Definition Hdf5InputPlugin.cpp:34
A file-format filter advertised by a plugin.
Definition IPluginComponentInfo.hpp:137