MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ safe_copy_data_variant()

void MayaFlux::Kakshya::safe_copy_data_variant ( const DataVariant input,
DataVariant output 
)

Safely copy data from a DataVariant to another DataVariant, handling type conversion.

Parameters
inputSource DataVariant.
outputDestination DataVariant.

Definition at line 36 of file DataUtils.cpp.

37{
38 std::visit([&](const auto& input_vec, auto& output_vec) {
39 using InputType = typename std::decay_t<decltype(input_vec)>::value_type;
40 using OutputType = typename std::decay_t<decltype(output_vec)>::value_type;
41
42 if constexpr (ProcessableData<InputType> && ProcessableData<OutputType>) {
43 std::vector<OutputType> temp_storage;
44 auto input_span = extract_from_variant<OutputType>(input, temp_storage);
45
46 output_vec.resize(input_span.size());
47 std::copy(input_span.begin(), input_span.end(), output_vec.begin());
48 } else {
49 error<std::invalid_argument>(
50 Journal::Component::Kakshya,
51 Journal::Context::Runtime,
52 std::source_location::current(),
53 "Unsupported type conversion from {} to {}",
54 typeid(InputType).name(),
55 typeid(OutputType).name());
56 }
57 },
58 input, output);
59}
Core::GlobalInputConfig input
Definition Config.cpp:38
std::shared_ptr< Core::VKImage > output

References input, MayaFlux::Journal::Kakshya, output, and MayaFlux::Journal::Runtime.

Referenced by MayaFlux::Kakshya::ContiguousAccessProcessor::process(), MayaFlux::Kakshya::CursorAccessProcessor::process(), MayaFlux::Kakshya::RegionOrganizationProcessor::process_region_segment(), and MayaFlux::Kakshya::DynamicSoundStream::set_all_data().

+ Here is the caller graph for this function: