Alexandria  2.18
Please provide a description of the project.
CachedProvider.h
Go to the documentation of this file.
1 
24 #ifndef _XYDATASET_CACHEDPROVIDER_H
25 #define _XYDATASET_CACHEDPROVIDER_H
26 
27 #include <map>
28 #include <string>
29 
30 #include "ElementsKernel/Export.h"
31 #include "QualifiedName.h"
32 #include "XYDatasetProvider.h"
33 
34 namespace Euclid {
35 namespace XYDataset {
36 
45 
46 public:
50  virtual ~CachedProvider() = default;
51 
53 
75  std::vector<QualifiedName> listContents(const std::string& group) override;
76 
86  std::unique_ptr<XYDataset> getDataset(const QualifiedName& qualified_name) override;
87 
88  std::string getParameter(const QualifiedName& qualified_name, const std::string& key_word) override;
89 
90 private:
94 
95 }; // End of CachedProvider class
96 
97 } // namespace XYDataset
98 } // namespace Euclid
99 
100 #endif
The CachedProvider wraps another XYDatasetProvider and keeps in memory the results,...
virtual ~CachedProvider()=default
Destructor.
std::shared_ptr< XYDatasetProvider > m_provider
std::map< QualifiedName, std::unique_ptr< XYDataset > > m_dataset
std::map< std::string, std::vector< QualifiedName > > m_list_cache
Represents a name qualified with a set of groups.
Definition: QualifiedName.h:66
This interface class provides the dataset following a qualified name object.
#define ELEMENTS_API