37#ifndef OPENSWMM_GEOPACKAGE_PLUGIN_INFO_HPP
38#define OPENSWMM_GEOPACKAGE_PLUGIN_INFO_HPP
64 static GeoPackagePluginInfo inst;
77 std::string
id()
const override {
return "org.hydrocouple.openswmm.plugins.geopackage"; }
83 std::string
caption()
const override {
return "GeoPackage I/O Plugin"; }
90 return "Reads and writes SWMM model definitions, simulation results, "
91 "and observed data using the OGC GeoPackage format (SQLite with "
92 "spatial extensions). Supports multi-run storage, network topology "
93 "queries, and calibration workflows in a single .gpkg file.";
101 std::string
version()
const override {
return "1.0.0"; }
107 std::string
vendor()
const override {
return "HydroCouple"; }
113 std::string
url()
const override {
114 return "https://hydrocouple.org/projects/openswmm/plugins/geopackage";
121 std::vector<std::string>
tags()
const override {
122 return {
"geopackage",
"sqlite",
"spatial",
"input",
"output",
123 "report",
"ogc",
"gis",
"calibration"};
142 return "Copyright (c) 2026 Caleb Buahin. All rights reserved.\n"
143 "Licensed under the Apache License, Version 2.0 — see the\n"
144 "LICENSE and NOTICE files for full text.";
155 bool has_input() const noexcept
override {
return true; }
179 const std::string desc =
"OGC GeoPackage";
180 const std::vector<std::string> patterns = {
"*.gpkg"};
181 const std::vector<std::string> mimes = {
"application/geopackage+sqlite3"};
236 bool registered() const noexcept
override {
return registered_; }
257 bool registered_ =
false;
Interface that describes a plugin component — metadata and factory methods.
Interface for output-writing plugins.
Definition IOutputPlugin.hpp:77
Describes a plugin component: metadata, capabilities, and factory methods.
Definition IPluginComponentInfo.hpp:201
Interface for report-writing plugins.
Definition IReportPlugin.hpp:63
IPluginComponentInfo for the GeoPackage I/O plugin.
Definition GeoPackagePluginInfo.hpp:55
bool register_plugin(const RegistrationInfo &info) override
Copy supplied registration metadata and mark the singleton registered.
Definition GeoPackagePluginInfo.cpp:30
bool has_report() const noexcept override
Advertise the built-in GeoPackage report factory.
Definition GeoPackagePluginInfo.hpp:165
std::string caption() const override
Copy plugin caption metadata.
Definition GeoPackagePluginInfo.hpp:83
std::string version() const override
Copy plugin version metadata.
Definition GeoPackagePluginInfo.hpp:101
std::string license_type() const override
Copy plugin license type metadata.
Definition GeoPackagePluginInfo.hpp:134
std::vector< FileFilter > file_filters() const override
Copy file-filter advertisements for all three GeoPackage IO roles.
Definition GeoPackagePluginInfo.hpp:178
std::string url() const override
Copy plugin url metadata.
Definition GeoPackagePluginInfo.hpp:113
bool has_input() const noexcept override
Advertise the built-in GeoPackage input factory.
Definition GeoPackagePluginInfo.hpp:155
IReportPlugin * create_report_plugin() const override
Allocate a fresh GeoPackage report plugin instance.
Definition GeoPackagePluginInfo.cpp:26
IOutputPlugin * create_output_plugin() const override
Allocate a fresh GeoPackage output plugin instance.
Definition GeoPackagePluginInfo.cpp:22
std::string description() const override
Copy plugin description metadata.
Definition GeoPackagePluginInfo.hpp:89
std::string vendor() const override
Copy plugin vendor metadata.
Definition GeoPackagePluginInfo.hpp:107
bool registered() const noexcept override
Read the stored metadata-registration flag.
Definition GeoPackagePluginInfo.hpp:236
std::string license_text() const override
Copy plugin license text metadata.
Definition GeoPackagePluginInfo.hpp:141
bool has_output() const noexcept override
Advertise the built-in GeoPackage output factory.
Definition GeoPackagePluginInfo.hpp:160
static GeoPackagePluginInfo & instance()
Borrow the process-local GeoPackage metadata singleton.
Definition GeoPackagePluginInfo.hpp:63
std::string id() const override
Copy plugin id metadata.
Definition GeoPackagePluginInfo.hpp:77
RegistrationInfo registration_info() const override
Copy stored registration metadata.
Definition GeoPackagePluginInfo.hpp:241
std::vector< std::string > tags() const override
Copy discovery/search tags.
Definition GeoPackagePluginInfo.hpp:121
IInputPlugin * create_input_plugin() const override
Allocate a fresh GeoPackage input plugin instance.
Definition GeoPackagePluginInfo.cpp:18
@ OUTPUT_WRITE
Plugin writes a time-series results file (e.g. *.out).
Definition IPluginComponentInfo.hpp:97
@ REPORT_WRITE
Plugin writes a summary report file (e.g. *.rpt).
Definition IPluginComponentInfo.hpp:98
@ INPUT_READ
Plugin reads a model input file (e.g. *.inp).
Definition IPluginComponentInfo.hpp:96
Definition ExternalContentReader.cpp:50
A file-format filter advertised by a plugin.
Definition IPluginComponentInfo.hpp:137
Registration information for plugin activation.
Definition IPluginComponentInfo.hpp:183