DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
dpdklibs
include
dpdklibs
DpdkMempool.hpp
Go to the documentation of this file.
1
26
#ifndef DPDKLIBS_INCLUDE_DPDKLIBS_DPDKMEMPOOL_HPP_
27
#define DPDKLIBS_INCLUDE_DPDKLIBS_DPDKMEMPOOL_HPP_
28
29
#include <rte_mempool.h>
30
31
#include <map>
32
#include <memory>
33
34
namespace
dunedaq::dpdklibs
{
35
36
struct
MempoolDeleter
37
{
38
// No-op for a null handle.
39
void
operator()
(rte_mempool* pool)
const
noexcept
;
40
};
41
42
using
unique_mempool
= std::unique_ptr<rte_mempool, MempoolDeleter>;
43
44
// Move a pool from a default-deleting unique_ptr into unique_mempool. The
45
// default deleter never runs.
46
unique_mempool
47
take_mempool_ownership
(std::unique_ptr<rte_mempool>&& legacy);
48
49
class
BorrowedPoolMap
50
{
51
public
:
52
BorrowedPoolMap
() =
default
;
53
BorrowedPoolMap
(
const
BorrowedPoolMap
&) =
delete
;
54
BorrowedPoolMap
&
operator=
(
const
BorrowedPoolMap
&) =
delete
;
55
BorrowedPoolMap
(
BorrowedPoolMap
&&) =
delete
;
56
BorrowedPoolMap
&
operator=
(
BorrowedPoolMap
&&) =
delete
;
57
58
// Releases every entry. No deleter runs on a borrowed pool.
59
~BorrowedPoolMap
();
60
61
void
borrow
(
int
index, rte_mempool* pool);
62
63
std::map<int, std::unique_ptr<rte_mempool>>&
get
();
64
65
private
:
66
std::map<int, std::unique_ptr<rte_mempool>>
m_map
;
67
};
68
69
}
// namespace dunedaq::dpdklibs
70
71
#endif
// DPDKLIBS_INCLUDE_DPDKLIBS_DPDKMEMPOOL_HPP_
dunedaq::dpdklibs::BorrowedPoolMap::BorrowedPoolMap
BorrowedPoolMap()=default
dunedaq::dpdklibs::BorrowedPoolMap::borrow
void borrow(int index, rte_mempool *pool)
Definition
DpdkMempool.cpp:39
dunedaq::dpdklibs::BorrowedPoolMap::BorrowedPoolMap
BorrowedPoolMap(BorrowedPoolMap &&)=delete
dunedaq::dpdklibs::BorrowedPoolMap::operator=
BorrowedPoolMap & operator=(BorrowedPoolMap &&)=delete
dunedaq::dpdklibs::BorrowedPoolMap::get
std::map< int, std::unique_ptr< rte_mempool > > & get()
Definition
DpdkMempool.cpp:45
dunedaq::dpdklibs::BorrowedPoolMap::BorrowedPoolMap
BorrowedPoolMap(const BorrowedPoolMap &)=delete
dunedaq::dpdklibs::BorrowedPoolMap::m_map
std::map< int, std::unique_ptr< rte_mempool > > m_map
Definition
DpdkMempool.hpp:66
dunedaq::dpdklibs::BorrowedPoolMap::operator=
BorrowedPoolMap & operator=(const BorrowedPoolMap &)=delete
dunedaq::dpdklibs
Definition
ARP.hpp:16
dunedaq::dpdklibs::take_mempool_ownership
unique_mempool take_mempool_ownership(std::unique_ptr< rte_mempool > &&legacy)
Definition
DpdkMempool.cpp:26
dunedaq::dpdklibs::unique_mempool
std::unique_ptr< rte_mempool, MempoolDeleter > unique_mempool
Definition
DpdkMempool.hpp:42
dunedaq::dpdklibs::MempoolDeleter
Definition
DpdkMempool.hpp:37
dunedaq::dpdklibs::MempoolDeleter::operator()
void operator()(rte_mempool *pool) const noexcept
Definition
DpdkMempool.cpp:18
Generated on
for DUNE-DAQ by
1.18.0