Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
control_protocol.hpp File Reference
#include <pulp/inspect/control_artifacts.hpp>
#include <cstddef>
#include <cstdint>
#include <optional>
#include <string>
#include <string_view>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::inspect::ControlProtocolRange
struct  pulp::inspect::ControlNegotiationOffer
struct  pulp::inspect::ControlNegotiationResult
struct  pulp::inspect::ControlRequestEnvelope
struct  pulp::inspect::ControlCancelEnvelope
struct  pulp::inspect::ControlProgressEnvelope
 A bounded progress observation for one admitted operation. More...
struct  pulp::inspect::ControlSessionOpenEnvelope
struct  pulp::inspect::ControlSessionOpenResult
struct  pulp::inspect::ControlManagementEnvelope
 Finite broker-management family used by installed control adapters. More...
struct  pulp::inspect::ControlManagementResult
struct  pulp::inspect::ControlHostOpenEnvelope
struct  pulp::inspect::ControlHostOpenResult
struct  pulp::inspect::ControlHostReadyEnvelope
struct  pulp::inspect::ControlHostReadyResult
struct  pulp::inspect::ControlHostHeartbeatEnvelope
struct  pulp::inspect::ControlHostHeartbeatResult
struct  pulp::inspect::ControlHostPreflightChallengeEnvelope
struct  pulp::inspect::ControlHostPreflightResponseEnvelope
struct  pulp::inspect::ControlHostPreflightBootstrapEnvelope
struct  pulp::inspect::ControlHostPreflightReceiptEnvelope
struct  pulp::inspect::ControlHostExecuteEnvelope
 Broker-to-host execution request. More...
struct  pulp::inspect::ControlHostAuthorityEndEnvelope
struct  pulp::inspect::ControlHostProgressEnvelope
struct  pulp::inspect::ControlHostCancelEnvelope
struct  pulp::inspect::ControlArtifactReadEnvelope
 Flattened, bounded wire representation of artifact metadata. More...
struct  pulp::inspect::ControlArtifactReadResponseEnvelope
struct  pulp::inspect::ControlHealthEnvelope
struct  pulp::inspect::ControlHealthResult
struct  pulp::inspect::ControlErrorEnvelope
struct  pulp::inspect::ControlHostArtifactPublication
 Host-authored execution outcome. More...
struct  pulp::inspect::ControlHostCompleteEnvelope
struct  pulp::inspect::ControlArtifactHandle
struct  pulp::inspect::ControlReceiptEnvelope
struct  pulp::inspect::ControlLegacyInspectorError
 Lossless compatibility detail for a failed operation declared with the legacy-inspector-json-v1 adapter encoding. More...
struct  pulp::inspect::ControlEnvelope
struct  pulp::inspect::ControlProtocolDiagnostics
struct  pulp::inspect::ControlJsonSchemaDiagnostics

Namespaces

namespace  pulp
namespace  pulp::inspect

Typedefs

using pulp::inspect::ControlEnvelopePayload

Enumerations

enum class  pulp::inspect::ControlNegotiationStatus : std::uint8_t {
  pulp::inspect::Accepted , pulp::inspect::InvalidOffer , pulp::inspect::NoCommonVersion , pulp::inspect::DowngradeRejected ,
  pulp::inspect::UnsupportedMandatoryFeature
}
enum class  pulp::inspect::ControlReceiptState : std::uint8_t {
  pulp::inspect::Admitted , pulp::inspect::Running , pulp::inspect::Completed , pulp::inspect::Failed ,
  pulp::inspect::Cancelled , pulp::inspect::CompletedAfterRevocation , pulp::inspect::UnknownNeedsRefresh
}
enum class  pulp::inspect::ControlResultCode : std::uint8_t {
  pulp::inspect::NotImplemented , pulp::inspect::NotBuilt , pulp::inspect::HostUnavailable , pulp::inspect::Inactive ,
  pulp::inspect::PolicyDenied , pulp::inspect::GrantRequired , pulp::inspect::GrantExpired , pulp::inspect::ConsentRequired ,
  pulp::inspect::LeaseConflict , pulp::inspect::StateConflict , pulp::inspect::SessionStale , pulp::inspect::InvalidRequest ,
  pulp::inspect::DeadlineExceeded , pulp::inspect::Cancelled , pulp::inspect::CompletedAfterRevocation , pulp::inspect::UnknownNeedsRefresh ,
  pulp::inspect::ResourceExhausted , pulp::inspect::InternalError
}
enum class  pulp::inspect::ControlRetryClassification : std::uint8_t { pulp::inspect::Never , pulp::inspect::AfterRefresh , pulp::inspect::AfterGrant , pulp::inspect::AfterBackoff }
enum class  pulp::inspect::ControlProtocolError : std::uint8_t {
  pulp::inspect::None , pulp::inspect::EnvelopeTooLarge , pulp::inspect::Parse , pulp::inspect::RootType ,
  pulp::inspect::UnknownField , pulp::inspect::MissingField , pulp::inspect::InvalidType , pulp::inspect::UnsupportedSchema ,
  pulp::inspect::UnsupportedVersion , pulp::inspect::InvalidValue , pulp::inspect::LimitExceeded , pulp::inspect::HashMismatch
}
enum class  pulp::inspect::ControlEnvelopeDirection : std::uint8_t {
  pulp::inspect::ClientToBroker , pulp::inspect::BrokerToClient , pulp::inspect::HostToBroker , pulp::inspect::BrokerToHost ,
  pulp::inspect::HostToLauncher , pulp::inspect::LauncherToHost
}
enum class  pulp::inspect::ControlJsonSchemaError : std::uint8_t {
  pulp::inspect::None , pulp::inspect::InvalidDocument , pulp::inspect::InvalidSchema , pulp::inspect::UnsupportedKeyword ,
  pulp::inspect::LimitExceeded , pulp::inspect::ValidationFailed
}

Functions

ControlNegotiationResult pulp::inspect::negotiate_control_protocol (const ControlNegotiationOffer &local, const ControlNegotiationOffer &peer, std::uint32_t local_security_floor=kControlProtocolVersion)
 Selects the highest common revision at or above local_security_floor.
bool pulp::inspect::control_envelope_allowed (const ControlEnvelope &envelope, ControlEnvelopeDirection direction)
 Direction is transport state, not payload authority.
bool pulp::inspect::validate_control_json_schema (std::string_view instance_json, std::string_view schema_json, ControlJsonSchemaDiagnostics *diagnostics=nullptr)
 Validates an untrusted JSON instance against the bounded JSON Schema subset used by Product A operation descriptors.
bool pulp::inspect::validate_control_output_json_schema (std::string_view instance_json, std::string_view schema_json, ControlJsonSchemaDiagnostics *diagnostics=nullptr)
 Validates an operation result using the larger, still-bounded result budget.
std::string_view pulp::inspect::control_negotiation_status_id (ControlNegotiationStatus status)
std::string_view pulp::inspect::control_receipt_state_id (ControlReceiptState state)
std::string_view pulp::inspect::control_result_code_id (ControlResultCode code)
std::string_view pulp::inspect::control_retry_classification_id (ControlRetryClassification retry)
bool pulp::inspect::control_receipt_state_is_terminal (ControlReceiptState state)
bool pulp::inspect::valid_control_receipt_transition (ControlReceiptState from, ControlReceiptState to)
bool pulp::inspect::valid_control_progress_transition (const ControlProgressEnvelope &previous, const ControlProgressEnvelope &next)
 Checks that a later observation belongs to the same admitted operation and advances both sequence and completed work without changing the total.
std::optional< std::string > pulp::inspect::canonicalize_control_json (std::string_view json)
 Canonicalizes an arbitrary JSON value by recursively sorting object keys.
std::optional< std::string > pulp::inspect::control_request_hash (const ControlRequestEnvelope &request)
 Hashes the authority and operation binding plus canonical request parameters.
std::optional< std::string > pulp::inspect::encode_control_legacy_inspector_error (const ControlLegacyInspectorError &error)
 Encodes/decodes the strict compatibility object carried in a failed adapter receipt's detail_json.
std::optional< ControlLegacyInspectorError > pulp::inspect::decode_control_legacy_inspector_error (std::string_view detail_json)
std::string pulp::inspect::encode_control_envelope (const ControlEnvelope &envelope)
 Emits one deterministic JSON representation.
std::optional< ControlEnvelope > pulp::inspect::decode_control_envelope (std::string_view json, ControlProtocolDiagnostics *diagnostics=nullptr)

Variables

constexpr std::uint32_t pulp::inspect::kControlProtocolVersion = 1
constexpr std::string_view pulp::inspect::kControlEnvelopeSchema = "dev.pulp.control/envelope@1"
constexpr std::string_view pulp::inspect::kControlLegacyInspectorJsonEncoding = "legacy-inspector-json-v1"
constexpr std::size_t pulp::inspect::kControlMaximumRequestPayloadBytes = 512u * 1024u
constexpr std::size_t pulp::inspect::kControlMaximumEnvelopeBytes = 2u * 1024u * 1024u
constexpr std::size_t pulp::inspect::kControlHostMaximumArtifactPublications = 1
constexpr std::size_t pulp::inspect::kControlHostMaximumArtifactPublicationBytes = 1u * 1024u * 1024u
constexpr std::size_t pulp::inspect::kControlMaximumResultDetailBytes = 1600u * 1024u
constexpr std::size_t pulp::inspect::kControlReceiptMaximumRequestIdBytes = 128
 Receipt normalization and wire encoding use these same field boundaries.
constexpr std::size_t pulp::inspect::kControlReceiptMaximumOperationIdBytes = 256
constexpr std::size_t pulp::inspect::kControlReceiptMaximumExplanationBytes = 1024
constexpr std::size_t pulp::inspect::kControlReceiptMaximumCancellationReasonBytes = 1024
constexpr std::size_t pulp::inspect::kControlReceiptMaximumArtifacts = 64
constexpr std::size_t pulp::inspect::kControlReceiptMaximumArtifactIdBytes = 128
constexpr std::size_t pulp::inspect::kControlReceiptMaximumArtifactMediaTypeBytes = 128
constexpr std::size_t pulp::inspect::kControlReceiptMaximumEvidenceIds = 64
constexpr std::size_t pulp::inspect::kControlReceiptMaximumEvidenceIdBytes = 128
constexpr std::size_t pulp::inspect::kControlMaximumArtifactReadBytes = 1024u * 1024u
constexpr std::size_t pulp::inspect::kControlMaximumArtifactChunkBase64Bytes
constexpr std::size_t pulp::inspect::kControlMaximumStatusIdBytes = 64
constexpr std::size_t pulp::inspect::kControlMaximumErrorCodeBytes = 128
constexpr std::size_t pulp::inspect::kControlMaximumSdkVersionBytes = 128
constexpr std::size_t pulp::inspect::kControlMaximumArtifactMetadataFieldBytes = 512
constexpr std::size_t pulp::inspect::kControlMaximumArtifactContentTypeBytes = 256
constexpr std::size_t pulp::inspect::kControlHostPreflightMaximumBootstrapBase64Bytes = 24u * 1024u