CCF
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ccf::js::InterpreterCache Class Reference

#include <interpreter_cache.h>

Inherits ccf::js::AbstractInterpreterCache.

Public Member Functions

 InterpreterCache (size_t max_cache_size)
 
std::shared_ptr< js::core::Contextget_interpreter (js::TxAccess access, const std::optional< ccf::endpoints::InterpreterReusePolicy > &interpreter_reuse, size_t freshness_marker) override
 
void set_max_cached_interpreters (size_t max) override
 
void set_interpreter_factory (const InterpreterFactory &ip) override
 
- Public Member Functions inherited from ccf::js::AbstractInterpreterCache
virtual ~AbstractInterpreterCache ()=default
 
- Public Member Functions inherited from ccf::AbstractNodeSubSystem
virtual ~AbstractNodeSubSystem ()=default
 

Protected Member Functions

std::shared_ptr< js::core::Contextmake_interpreter (js::TxAccess access)
 

Protected Attributes

ccf::pal::Mutex lock
 
LRU< std::string, std::shared_ptr< js::core::Context > > lru
 
size_t cache_build_marker = 0
 
InterpreterFactory interpreter_factory = nullptr
 

Additional Inherited Members

- Static Public Member Functions inherited from ccf::js::AbstractInterpreterCache
static char const * get_subsystem_name ()
 

Constructor & Destructor Documentation

◆ InterpreterCache()

ccf::js::InterpreterCache::InterpreterCache ( size_t  max_cache_size)
inline

Member Function Documentation

◆ get_interpreter()

std::shared_ptr< js::core::Context > ccf::js::InterpreterCache::get_interpreter ( js::TxAccess  access,
const std::optional< ccf::endpoints::InterpreterReusePolicy > &  interpreter_reuse,
size_t  freshness_marker 
)
inlineoverridevirtual

◆ make_interpreter()

std::shared_ptr< js::core::Context > ccf::js::InterpreterCache::make_interpreter ( js::TxAccess  access)
inlineprotected

◆ set_interpreter_factory()

void ccf::js::InterpreterCache::set_interpreter_factory ( const InterpreterFactory ip)
inlineoverridevirtual

◆ set_max_cached_interpreters()

void ccf::js::InterpreterCache::set_max_cached_interpreters ( size_t  max)
inlineoverridevirtual

Member Data Documentation

◆ cache_build_marker

size_t ccf::js::InterpreterCache::cache_build_marker = 0
protected

◆ interpreter_factory

InterpreterFactory ccf::js::InterpreterCache::interpreter_factory = nullptr
protected

◆ lock

ccf::pal::Mutex ccf::js::InterpreterCache::lock
protected

◆ lru

LRU<std::string, std::shared_ptr<js::core::Context> > ccf::js::InterpreterCache::lru
protected

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