MayaFlux
0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
GpuExtractor.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
MayaFlux/Yantra/Executors/GpuExecutionContext.hpp
"
4
#include "
UniversalExtractor.hpp
"
5
6
namespace
MayaFlux::Yantra
{
7
8
/**
9
* @class GpuExtractor
10
* @brief Concrete UniversalExtractor that dispatches entirely via a
11
* GpuExecutionContext. CPU path is a hard error.
12
*
13
* @tparam InputType ComputeData type accepted.
14
* @tparam OutputType ComputeData type produced.
15
*/
16
template
<ComputeData InputType = std::vector<Kakshya::DataVariant>,
17
ComputeData OutputType = InputType>
18
class
MAYAFLUX_API
GpuExtractor
:
public
UniversalExtractor
<InputType, OutputType> {
19
public
:
20
using
input_type
=
Datum<InputType>
;
21
using
output_type
=
Datum<OutputType>
;
22
23
/**
24
* @brief Construct with a configured GpuExecutionContext.
25
* @param executor Configured executor. Must not be null.
26
*/
27
explicit
GpuExtractor
(
28
std::shared_ptr<
GpuExecutionContext<InputType, OutputType>
> executor)
29
{
30
assert(executor &&
"GpuExtractor: executor must not be null"
);
31
m_executor = executor;
32
this->set_gpu_backend(std::move(executor));
33
}
34
35
/**
36
* @brief Returns the attached GpuExecutionContext for further configuration.
37
*/
38
[[nodiscard]] std::shared_ptr<GpuExecutionContext<InputType, OutputType>>
39
get_executor
()
const
{
return
m_executor; }
40
41
[[nodiscard]] std::string
get_extractor_name
()
const override
42
{
43
return
"GpuExtractor"
;
44
}
45
46
[[nodiscard]]
ExtractionType
get_extraction_type
()
const override
47
{
48
return
ExtractionType::CUSTOM;
49
}
50
51
[[nodiscard]] std::vector<std::string>
get_available_methods
()
const override
52
{
53
return
{
"gpu_extract"
};
54
}
55
56
protected
:
57
output_type
extract_implementation
(
const
input_type
&)
override
58
{
59
error<std::runtime_error>(
60
Journal::Component::Yantra,
61
Journal::Context::BufferProcessing,
62
std::source_location::current(),
63
"GpuExtractor: GPU unavailable and no CPU fallback provided"
);
64
}
65
66
private
:
67
std::shared_ptr<GpuExecutionContext<InputType, OutputType>>
m_executor
;
68
};
69
70
}
// namespace MayaFlux::Yantra
GpuExecutionContext.hpp
UniversalExtractor.hpp
Modern, digital-first universal extractor framework for Maya Flux.
MayaFlux::Yantra::GpuExecutionContext
Type-parameterised shell over GpuDispatchCore.
Definition
GpuExecutionContext.hpp:32
MayaFlux::Yantra::GpuExtractor::get_available_methods
std::vector< std::string > get_available_methods() const override
Get available extraction methods for this extractor.
Definition
GpuExtractor.hpp:51
MayaFlux::Yantra::GpuExtractor::get_extraction_type
ExtractionType get_extraction_type() const override
Gets the extraction type category for this extractor.
Definition
GpuExtractor.hpp:46
MayaFlux::Yantra::GpuExtractor::GpuExtractor
GpuExtractor(std::shared_ptr< GpuExecutionContext< InputType, OutputType > > executor)
Construct with a configured GpuExecutionContext.
Definition
GpuExtractor.hpp:27
MayaFlux::Yantra::GpuExtractor::get_executor
std::shared_ptr< GpuExecutionContext< InputType, OutputType > > get_executor() const
Returns the attached GpuExecutionContext for further configuration.
Definition
GpuExtractor.hpp:39
MayaFlux::Yantra::GpuExtractor::get_extractor_name
std::string get_extractor_name() const override
Get extractor-specific name (derived classes override this)
Definition
GpuExtractor.hpp:41
MayaFlux::Yantra::GpuExtractor::m_executor
std::shared_ptr< GpuExecutionContext< InputType, OutputType > > m_executor
Definition
GpuExtractor.hpp:67
MayaFlux::Yantra::GpuExtractor::extract_implementation
output_type extract_implementation(const input_type &) override
Pure virtual extraction implementation - derived classes implement this.
Definition
GpuExtractor.hpp:57
MayaFlux::Yantra::GpuExtractor
Concrete UniversalExtractor that dispatches entirely via a GpuExecutionContext.
Definition
GpuExtractor.hpp:18
MayaFlux::Yantra::UniversalExtractor
Template-flexible extractor base with instance-defined I/O types.
Definition
UniversalExtractor.hpp:84
MayaFlux::Yantra::ExtractionType
ExtractionType
Categories of extraction operations for discovery and organization.
Definition
UniversalExtractor.hpp:46
MayaFlux::Yantra
Definition
ComputeRegistry.hpp:5
MayaFlux::Yantra::Datum
Input/Output container for computation pipeline data flow with structure preservation.
Definition
DataIO.hpp:24
src
MayaFlux
Yantra
Extractors
GpuExtractor.hpp
Generated by
1.9.8