blob: c8af47c27c223172500caeb7abade1c8dd49ab30 [file] [log] [blame]
/*
* Copyright (C) 2024 Intel Corporation. All rights reserved.
* Authors:
* Gustavo A Espinoza <gustavo.adolfo.espinoza.quintero@intel.com>
* <gustavoaespinozaq@hotmail.com>
*
* For conditions of distribution and use, see copyright notice in zlib.h
*/
#ifndef QATZPP_SESSION_HPP
#define QATZPP_SESSION_HPP
#include <qat/cpa.h>
#include <qat/cpa_dc.h>
#include <memory>
#include "io_buffers.h"
#include "qat_task.hpp"
namespace qat
{
class DeflateSession
{
public:
DeflateSession(
std::shared_ptr<Instance> &, CpaDcCompLvl,
CpaDcChecksum, uint32_t numa_node);
~DeflateSession();
std::unique_ptr<QATTask> Deflate(std::unique_ptr<IOBuffers> &&buffers, bool flush_final);
std::unique_ptr<QATTask> Inflate(std::unique_ptr<IOBuffers> &&buffers);
uint32_t GetDeflateBound(uint32_t input_size);
std::shared_ptr<Instance> getInstance() { return qat_instance_; }
private:
std::shared_ptr<Instance> qat_instance_;
CpaDcSessionHandle session_;
};
}
#endif