QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
GstHw::GstHwImportCache< Key, Resource, KeyHash > Class Template Reference

#include <GstHwImportCache.h>

Public Types

using Deleter = std::function< void(const Key &, Resource &)>
 

Public Member Functions

 GstHwImportCache (std::size_t capacity, Deleter deleter)
 
 ~GstHwImportCache ()
 
 GstHwImportCache (const GstHwImportCache &)=delete
 
GstHwImportCacheoperator= (const GstHwImportCache &)=delete
 
Resource * find (const Key &key)
 
void insert (const Key &key, Resource resource)
 
template<class Pred >
void eraseIf (Pred pred)
 Erase every entry whose key or resource satisfies pred, deleting each via the configured deleter.
 
void clear ()
 
bool empty () const noexcept
 
std::size_t size () const noexcept
 

Detailed Description

template<class Key, class Resource, class KeyHash = std::hash<Key>>
class GstHw::GstHwImportCache< Key, Resource, KeyHash >

Bounded LRU cache for GPU import resources (EGLImages, QRhiTexture wrappers). Keyed on a hashable Key; Resource is destroyed via the caller-supplied deleter on eviction, erase and clear. Not internally synchronized — the caller owns whatever locking the resource lifetime requires (DMABuf holds a mutex; the GL path is render-thread-confined).

Definition at line 14 of file GstHwImportCache.h.

Member Typedef Documentation

◆ Deleter

template<class Key , class Resource , class KeyHash = std::hash<Key>>
using GstHw::GstHwImportCache< Key, Resource, KeyHash >::Deleter = std::function<void(const Key&, Resource&)>

Definition at line 17 of file GstHwImportCache.h.

Constructor & Destructor Documentation

◆ GstHwImportCache() [1/2]

template<class Key , class Resource , class KeyHash = std::hash<Key>>
GstHw::GstHwImportCache< Key, Resource, KeyHash >::GstHwImportCache ( std::size_t  capacity,
Deleter  deleter 
)
inline

Definition at line 19 of file GstHwImportCache.h.

◆ ~GstHwImportCache()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
GstHw::GstHwImportCache< Key, Resource, KeyHash >::~GstHwImportCache ( )
inline

◆ GstHwImportCache() [2/2]

template<class Key , class Resource , class KeyHash = std::hash<Key>>
GstHw::GstHwImportCache< Key, Resource, KeyHash >::GstHwImportCache ( const GstHwImportCache< Key, Resource, KeyHash > &  )
delete

Member Function Documentation

◆ clear()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
void GstHw::GstHwImportCache< Key, Resource, KeyHash >::clear ( )
inline

◆ empty()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
bool GstHw::GstHwImportCache< Key, Resource, KeyHash >::empty ( ) const
inlinenoexcept

Definition at line 84 of file GstHwImportCache.h.

◆ eraseIf()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
template<class Pred >
void GstHw::GstHwImportCache< Key, Resource, KeyHash >::eraseIf ( Pred  pred)
inline

Erase every entry whose key or resource satisfies pred, deleting each via the configured deleter.

Definition at line 62 of file GstHwImportCache.h.

◆ find()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
Resource * GstHw::GstHwImportCache< Key, Resource, KeyHash >::find ( const Key &  key)
inline

MRU-promoting lookup; returns the stored Resource pointer or nullptr on miss. The pointer is invalidated by the next insert()/eraseIf()/clear() on this cache (a different-key insert can evict it) — never hold it across one.

Definition at line 28 of file GstHwImportCache.h.

◆ insert()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
void GstHw::GstHwImportCache< Key, Resource, KeyHash >::insert ( const Key &  key,
Resource  resource 
)
inline

Insert (evicting the LRU victim first when at capacity). Replaces any existing entry for key, deleting its old resource. Caller must ensure no live alias to a replaced/evicted resource survives.

Definition at line 40 of file GstHwImportCache.h.

◆ operator=()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
GstHwImportCache & GstHw::GstHwImportCache< Key, Resource, KeyHash >::operator= ( const GstHwImportCache< Key, Resource, KeyHash > &  )
delete

◆ size()

template<class Key , class Resource , class KeyHash = std::hash<Key>>
std::size_t GstHw::GstHwImportCache< Key, Resource, KeyHash >::size ( ) const
inlinenoexcept

Definition at line 86 of file GstHwImportCache.h.


The documentation for this class was generated from the following file: