/* * Copyright (C) 2024 Intel Corporation. All rights reserved. * Authors: * Gustavo A Espinoza * * * For conditions of distribution and use, see copyright notice in zlib.h */ #include #include #include "qat_task.hpp" namespace qat { QATTask::QATTask(std::shared_ptr &qat_instance, std::unique_ptr &&buffers, std::unique_ptr &&dc_results): qat_instance_(qat_instance), io_buffers_(std::move(buffers)), dc_results_(std::move(dc_results)), completed_(false) { } void QATTask::WaitCompletion() { if (completed_) { return; } while (!completed_) { icp_sal_DcPollInstance(qat_instance_->GetHandle(), 0); } } IOBuffers *QATTask::GetBuffers() { return io_buffers_.get(); } CpaDcRqResults *QATTask::GetResults() { return dc_results_.get(); } void dc_callback(void *callback_tag, CpaStatus status) { if (!callback_tag) { return; } // Ugly and dangerous QATTask* task = static_cast(callback_tag); task->completed_ = true; } }