capability/capability_validator.hpp¶
Namespaces¶
| Name |
|---|
| sgns |
| sgns::sgprocessing Artifact and manifest binary serialization. |
Classes¶
| Name | |
|---|---|
| class | sgns::sgprocessing::CapabilityValidator |
Types¶
| Name | |
|---|---|
| using std::function< void(CanExecuteResult)> | CanExecuteCallback Callback type for async CanExecute (D-03). |
Types Documentation¶
using CanExecuteCallback¶
Callback type for async CanExecute (D-03).
Source code¶
#ifndef SGPROCMGR_CAPABILITY_VALIDATOR_HPP
#define SGPROCMGR_CAPABILITY_VALIDATOR_HPP
#include <capability/capability_types.hpp>
#include <Pass.hpp>
#include <functional>
#include <memory>
#include <unordered_map>
namespace sgns::sgprocessing
{
// Forward declaration — ProcessingManager provides the factory map.
class ProcessingProcessor;
using CanExecuteCallback = std::function<void( CanExecuteResult )>;
class CapabilityValidator
{
public:
CapabilityValidator();
~CapabilityValidator();
// Non-copyable, non-movable (owns PIMPL)
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;
void CanExecute( const sgns::Pass &pass, CanExecuteCallback callback );
#ifdef SGPROCMGR_TEST_FRIEND
void SetSnapshotForTest( CapabilitySnapshot snap );
#endif
private:
struct Impl;
std::unique_ptr<Impl> m_impl;
};
} // namespace sgns::sgprocessing
#endif // SGPROCMGR_CAPABILITY_VALIDATOR_HPP
Updated on 2026-09-17 at 06:29:15 +0000