yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
model_registry.h
Go to the documentation of this file.
1#ifndef YAZE_SRC_CLI_SERVICE_AI_MODEL_REGISTRY_H_
2#define YAZE_SRC_CLI_SERVICE_AI_MODEL_REGISTRY_H_
3
4#include <memory>
5#include <mutex>
6#include <string>
7#include <vector>
8
9#include "absl/status/statusor.h"
12
13namespace yaze {
14namespace cli {
15
17 public:
18 static ModelRegistry& GetInstance();
19
20 // Register a service instance to be queried for models
21 void RegisterService(std::shared_ptr<AIService> service);
22
23 // Clear all registered services
24 void ClearServices();
25
26 // List models from all registered services
27 absl::StatusOr<std::vector<ModelInfo>> ListAllModels();
28
29 private:
30 ModelRegistry() = default;
31 ~ModelRegistry() = default;
32 ModelRegistry(const ModelRegistry&) = delete;
34
35 std::vector<std::shared_ptr<AIService>> services_;
36 std::mutex mutex_;
37};
38
39} // namespace cli
40} // namespace yaze
41
42#endif // YAZE_SRC_CLI_SERVICE_AI_MODEL_REGISTRY_H_
static ModelRegistry & GetInstance()
void RegisterService(std::shared_ptr< AIService > service)
ModelRegistry(const ModelRegistry &)=delete
ModelRegistry & operator=(const ModelRegistry &)=delete
absl::StatusOr< std::vector< ModelInfo > > ListAllModels()
std::vector< std::shared_ptr< AIService > > services_