yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::cli::ModelRegistry Class Reference

#include <model_registry.h>

Public Member Functions

void RegisterService (std::shared_ptr< AIService > service)
 
void ClearServices ()
 
absl::StatusOr< std::vector< ModelInfo > > ListAllModels (bool force_refresh=false)
 

Static Public Member Functions

static ModelRegistryGetInstance ()
 

Private Member Functions

 ModelRegistry ()=default
 
 ~ModelRegistry ()=default
 
 ModelRegistry (const ModelRegistry &)=delete
 
ModelRegistryoperator= (const ModelRegistry &)=delete
 
void InvalidateCacheLocked ()
 

Private Attributes

std::vector< std::shared_ptr< AIService > > services_
 
std::vector< ModelInfocached_models_
 
std::chrono::steady_clock::time_point cache_timestamp_ {}
 
bool cache_valid_ = false
 
std::mutex mutex_
 

Detailed Description

Definition at line 17 of file model_registry.h.

Constructor & Destructor Documentation

◆ ModelRegistry() [1/2]

yaze::cli::ModelRegistry::ModelRegistry ( )
privatedefault

◆ ~ModelRegistry()

yaze::cli::ModelRegistry::~ModelRegistry ( )
privatedefault

◆ ModelRegistry() [2/2]

yaze::cli::ModelRegistry::ModelRegistry ( const ModelRegistry & )
privatedelete

Member Function Documentation

◆ GetInstance()

ModelRegistry & yaze::cli::ModelRegistry::GetInstance ( )
static

Definition at line 15 of file model_registry.cc.

Referenced by yaze::cli::api::HandleListModels().

◆ RegisterService()

void yaze::cli::ModelRegistry::RegisterService ( std::shared_ptr< AIService > service)

Definition at line 20 of file model_registry.cc.

References InvalidateCacheLocked(), mutex_, and services_.

Here is the call graph for this function:

◆ ClearServices()

void yaze::cli::ModelRegistry::ClearServices ( )

Definition at line 26 of file model_registry.cc.

References InvalidateCacheLocked(), mutex_, and services_.

Here is the call graph for this function:

◆ ListAllModels()

absl::StatusOr< std::vector< ModelInfo > > yaze::cli::ModelRegistry::ListAllModels ( bool force_refresh = false)

Definition at line 37 of file model_registry.cc.

References cache_timestamp_, cache_valid_, cached_models_, mutex_, and services_.

◆ operator=()

ModelRegistry & yaze::cli::ModelRegistry::operator= ( const ModelRegistry & )
privatedelete

◆ InvalidateCacheLocked()

void yaze::cli::ModelRegistry::InvalidateCacheLocked ( )
private

Definition at line 32 of file model_registry.cc.

References cache_valid_, and cached_models_.

Referenced by ClearServices(), and RegisterService().

Member Data Documentation

◆ services_

std::vector<std::shared_ptr<AIService> > yaze::cli::ModelRegistry::services_
private

Definition at line 39 of file model_registry.h.

Referenced by ClearServices(), ListAllModels(), and RegisterService().

◆ cached_models_

std::vector<ModelInfo> yaze::cli::ModelRegistry::cached_models_
private

Definition at line 40 of file model_registry.h.

Referenced by InvalidateCacheLocked(), and ListAllModels().

◆ cache_timestamp_

std::chrono::steady_clock::time_point yaze::cli::ModelRegistry::cache_timestamp_ {}
private

Definition at line 41 of file model_registry.h.

Referenced by ListAllModels().

◆ cache_valid_

bool yaze::cli::ModelRegistry::cache_valid_ = false
private

Definition at line 42 of file model_registry.h.

Referenced by InvalidateCacheLocked(), and ListAllModels().

◆ mutex_

std::mutex yaze::cli::ModelRegistry::mutex_
private

Definition at line 43 of file model_registry.h.

Referenced by ClearServices(), ListAllModels(), and RegisterService().


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