Alexandria 2.31.0
SDC-CH common library for the Euclid project
|
The CachedProvider wraps another XYDatasetProvider and keeps in memory the results, so following calls are cheaper. More...
#include <CachedProvider.h>
Public Member Functions | |
virtual | ~CachedProvider ()=default |
Destructor. | |
CachedProvider (std::shared_ptr< XYDatasetProvider > provider) | |
std::vector< QualifiedName > | listContents (const std::string &group) override |
Virtual function to list all files contents in the "group" path. | |
std::unique_ptr< XYDataset > | getDataset (const QualifiedName &qualified_name) override |
Virtual function for getting from a qualified name the dataset of XYDataset type. | |
std::string | getParameter (const QualifiedName &qualified_name, const std::string &key_word) override |
![]() | |
virtual | ~XYDatasetProvider ()=default |
Private Attributes | |
std::shared_ptr< XYDatasetProvider > | m_provider |
std::map< std::string, std::vector< QualifiedName > > | m_list_cache |
std::map< QualifiedName, std::unique_ptr< XYDataset > > | m_dataset |
The CachedProvider wraps another XYDatasetProvider and keeps in memory the results, so following calls are cheaper.
Definition at line 44 of file CachedProvider.h.
|
virtualdefault |
Destructor.
|
explicit |
Definition at line 29 of file CachedProvider.cpp.
|
overridevirtual |
Virtual function for getting from a qualified name the dataset of XYDataset type.
qualified_name | Qualified name of the dataset |
Implements Euclid::XYDataset::XYDatasetProvider.
Definition at line 40 of file CachedProvider.cpp.
References m_dataset, m_provider, std::make_pair(), and std::move().
|
overridevirtual |
Implements Euclid::XYDataset::XYDatasetProvider.
Definition at line 52 of file CachedProvider.cpp.
References m_provider.
|
overridevirtual |
Virtual function to list all files contents in the "group" path.
let's take the following example. if you have a group sets to "A/B/C" and under the "C" repository there is the following structure : C/file1 C/file2 C/D/file3 etc... then the vector of strings returned will contain the following elements: vector[0] = "A/B/C/file1" vector[1] = "A/B/C/file2" vector[3] = "A/B/C/D/file3" etc... Note: The empty string for the group means the root group
group | Name of the dataset group |
Implements Euclid::XYDataset::XYDatasetProvider.
Definition at line 31 of file CachedProvider.cpp.
References std::vector< T >::insert(), m_list_cache, m_provider, and std::make_pair().
|
private |
Definition at line 93 of file CachedProvider.h.
Referenced by getDataset().
|
private |
Definition at line 92 of file CachedProvider.h.
Referenced by listContents().
|
private |
Definition at line 91 of file CachedProvider.h.
Referenced by getDataset(), getParameter(), and listContents().