![]() |
Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
|

Public Member Functions | |
| shared_ptr< DuckDB > | GetInstance (const string &database, const DBConfig &config_dict) |
| Gets a DB Instance from the cache if already exists (Fails if the configurations do not match) | |
| shared_ptr< DuckDB > | CreateInstance (const string &database, DBConfig &config_dict, bool cache_instance=true, const std::function< void(DuckDB &)> &on_create=nullptr) |
| Creates and caches a new DB Instance (Fails if a cached instance already exists) | |
| shared_ptr< DuckDB > | GetOrCreateInstance (const string &database, DBConfig &config_dict, bool cache_instance, const std::function< void(DuckDB &)> &on_create=nullptr) |
| Either returns an existing entry, or creates and caches a new DB Instance. | |
| shared_ptr< DuckDB > | GetOrCreateInstance (const string &database, DBConfig &config_dict, CacheBehavior cache_behavior=CacheBehavior::AUTOMATIC, const std::function< void(DuckDB &)> &on_create=nullptr) |
Private Member Functions | |
| shared_ptr< DuckDB > | GetInstanceInternal (const string &database, const DBConfig &config, std::unique_lock< std::mutex > &db_instances_lock) |
| shared_ptr< DuckDB > | CreateInstanceInternal (const string &database, DBConfig &config_dict, bool cache_instance, std::unique_lock< std::mutex > db_instances_lock, const std::function< void(DuckDB &)> &on_create) |
Private Attributes | |
| shared_ptr< DatabaseFilePathManager > | path_manager |
| unordered_map< string, weak_ptr< DatabaseCacheEntry > > | db_instances |
| A map with the cached instances <absolute_path/instance> | |
| mutex | cache_lock |
| Lock to alter cache. | |