Skip to content

sgns::sgprocessing::CapabilityValidator

More...

#include <capability_validator.hpp>

Public Classes

Name
struct Impl

Public Functions

Name
CapabilityValidator()
~CapabilityValidator()
CapabilityValidator(const CapabilityValidator & ) =delete
CapabilityValidator & operator=(const CapabilityValidator & ) =delete
CapabilityValidator(CapabilityValidator && ) =delete
CapabilityValidator & operator=(CapabilityValidator && ) =delete
void BuildSnapshot(const std::unordered_map< PassType, std::function< std::unique_ptr< ProcessingProcessor >()>, PassTypeHash > & passFactories, size_t mnnProcessorCount, std::function< VkPhysicalDevice()> ensureVulkanDevice)
const CapabilitySnapshot * GetSnapshot() const
Access the cached snapshot. Returns nullptr before BuildSnapshot().
void CanExecute(const sgns::Pass & pass, CanExecuteCallback callback)

Detailed Description

class sgns::sgprocessing::CapabilityValidator;

Pre-execution capability validation gate.

Built once at startup by ProcessingManager::Init(), then used by the scheduler to validate jobs before claiming them from the network. All checks run against the cached CapabilitySnapshot — no I/O needed at check time.

Public Functions Documentation

function CapabilityValidator

CapabilityValidator()

function ~CapabilityValidator

~CapabilityValidator()

function CapabilityValidator

CapabilityValidator(
    const CapabilityValidator & 
) =delete

function operator=

CapabilityValidator & operator=(
    const CapabilityValidator & 
) =delete

function CapabilityValidator

CapabilityValidator(
    CapabilityValidator && 
) =delete

function operator=

CapabilityValidator & operator=(
    CapabilityValidator && 
) =delete

function BuildSnapshot

void BuildSnapshot(
    const std::unordered_map< PassType, std::function< std::unique_ptr< ProcessingProcessor >()>, PassTypeHash > & passFactories,
    size_t mnnProcessorCount,
    std::function< VkPhysicalDevice()> ensureVulkanDevice
)

Parameters:

  • passFactories — reference to ProcessingManager's m_passFactories, used to enumerate registered PassType→executor mappings (D-11)
  • mnnProcessorCount — number of registered MNN processors (DataType-keyed)
  • ensureVulkanDevice — callable that ensures Vulkan device exists and returns the VkPhysicalDevice handle

Build the capability snapshot once at startup (D-09, D-12). Called by ProcessingManager::Init() after all Register* calls. Acquires VulkanInitMutex internally (D-10).

function GetSnapshot

const CapabilitySnapshot * GetSnapshot() const

Access the cached snapshot. Returns nullptr before BuildSnapshot().

function CanExecute

void CanExecute(
    const sgns::Pass & pass,
    CanExecuteCallback callback
)

Parameters:

  • pass — the job definition to validate
  • callback — invoked with CanExecuteResult (D-03 async pattern)

Validate whether a job can be executed on this node (CAP-02..05). Checks PassType registration, Vulkan limits, MNN model compatibility, GPU memory, and disk space against the cached snapshot.


Updated on 2026-09-17 at 06:29:14 +0000