blob: 1a2b4afcab10f14e0789c8ef2a71d99e5a6d18c3 [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_QAT_INSTANCE_HPP
#define QATZPP_QAT_INSTANCE_HPP
#include <qat/cpa_dc.h>
#include <memory>
#include <mutex>
#include <vector>
namespace qat
{
class Instance
{
public:
Instance(CpaInstanceHandle);
~Instance();
CpaInstanceHandle GetHandle() { return instance_; }
CpaDcInstanceCapabilities GetCapabilities();
CpaInstanceInfo2 GetInfo();
int Start(void);
static std::vector<std::shared_ptr<Instance>> Create();
private:
CpaInstanceHandle instance_;
uint16_t num_intermediate_buffer_lists_;
CpaBufferList **intermediate_buffer_array_;
bool started_;
std::mutex mutex_;
};
}
#endif