Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
catalog_descriptor.hpp
Go to the documentation of this file.
1#pragma once
2
3// Product-neutral catalog vocabulary.
4//
5// The first consumer of the descriptor machinery called it Forge, but the
6// concepts are useful to any Pulp node provider. This header is an additive
7// source-level seam over the existing implementation. Legacy Forge headers,
8// symbols, JSON, and CLI output remain compatibility authorities; aliases here
9// deliberately avoid an ABI or serialized-format migration.
10
13
14#include <string>
15#include <string_view>
16#include <vector>
17
19
29
35
36inline std::vector<Finding> validate(const Descriptor& descriptor,
37 const std::vector<BakedParameter>& baked,
38 std::string_view realization_mode = {}) {
39 return audit_forge_descriptor(descriptor, baked, realization_mode);
40}
41
42inline std::vector<Finding> validate_export(const std::vector<ExportNode>& nodes) {
43 // Forge's fixed 89-node membership is product-specific. The neutral seam
44 // validates only each provider's descriptor/factory join; Forge callers
45 // retain audit_forge_catalog_export for the Forge inventory check.
46 return audit_catalog_export(nodes);
47}
48
49inline std::string describe(const Finding& finding) {
50 return describe_forge_audit_finding(finding);
51}
52
53// This is the compatibility projection for the existing Forge JSON schema.
54// Neutral providers should serialize their own catalog schema rather than
55// treating the `pulp.forge-catalog.v1` document as a generic contract.
56inline std::string serialize(const std::vector<ExportNode>& nodes) {
57 return serialize_forge_catalog_json(nodes);
58}
59
60} // namespace pulp::host::catalog
Definition catalog_descriptor.hpp:18
ForgeParamDescriptor ParameterDescriptor
Definition catalog_descriptor.hpp:23
std::vector< Finding > validate_export(const std::vector< ExportNode > &nodes)
Definition catalog_descriptor.hpp:42
ForgeParamChoice ParameterChoice
Definition catalog_descriptor.hpp:22
ForgeAuditFinding Finding
Definition catalog_descriptor.hpp:32
ForgeAuditFault AuditFault
Definition catalog_descriptor.hpp:31
ForgeRealizationAxis RealizationAxis
Definition catalog_descriptor.hpp:25
ForgeRealizationSetting RealizationSetting
Definition catalog_descriptor.hpp:26
std::string serialize(const std::vector< ExportNode > &nodes)
Definition catalog_descriptor.hpp:56
std::string describe(const Finding &finding)
Definition catalog_descriptor.hpp:49
ForgeParamCurve ParameterCurve
Definition catalog_descriptor.hpp:21
ForgeParamKind ParameterKind
Definition catalog_descriptor.hpp:20
std::vector< Finding > validate(const Descriptor &descriptor, const std::vector< BakedParameter > &baked, std::string_view realization_mode={})
Definition catalog_descriptor.hpp:36
ForgeRealization Realization
Definition catalog_descriptor.hpp:27
ForgeCatalogExportRealization ExportRealization
Definition catalog_descriptor.hpp:33
ForgeNodeDescriptor Descriptor
Definition catalog_descriptor.hpp:28
ForgeCatalogExportNode ExportNode
Definition catalog_descriptor.hpp:34
ForgeAxisValue AxisValue
Definition catalog_descriptor.hpp:24
CustomNodeBakedParam BakedParameter
Definition catalog_descriptor.hpp:30
std::vector< ForgeAuditFinding > audit_forge_descriptor(const ForgeNodeDescriptor &descriptor, const std::vector< CustomNodeBakedParam > &baked, std::string_view realization_mode={})
Audit one descriptor against the node it describes.
ForgeAuditFault
Definition forge_descriptor_audit.hpp:23
ForgeParamKind
Whether a parameter sweeps continuously or selects among named states.
Definition forge_param_descriptor.hpp:25
ForgeParamCurve
How a value maps to its control travel.
Definition forge_param_descriptor.hpp:29
std::string serialize_forge_catalog_json(const std::vector< ForgeCatalogExportNode > &nodes)
std::string describe_forge_audit_finding(const ForgeAuditFinding &finding)
Human-readable one-line rendering, for a test failure or a CLI report.
std::vector< ForgeAuditFinding > audit_catalog_export(const std::vector< ForgeCatalogExportNode > &nodes)
Audit descriptor/range joins without imposing Forge's catalog membership.
Definition custom_node_type.hpp:71
Definition forge_descriptor_audit.hpp:48
One value of a compile-time realization axis.
Definition forge_param_descriptor.hpp:52
One machine-readable catalog family before JSON serialization.
Definition forge_catalog_export.hpp:22
One actually constructed realization.
Definition forge_catalog_export.hpp:13
Definition forge_param_descriptor.hpp:127
One named state of a stepped parameter.
Definition forge_param_descriptor.hpp:33
Definition forge_param_descriptor.hpp:58
A compile-time construction axis — a choice made when the node is built rather than automated afterwa...
Definition forge_param_descriptor.hpp:94
One axis/value selection used to construct a concrete realization.
Definition forge_param_descriptor.hpp:106
One concrete realization: the exact type_id a graph names, plus the axis settings that produced it.
Definition forge_param_descriptor.hpp:113