Aikido
CatkinResourceRetriever.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_IO_CATKINRESOURCERETRIEVER_HPP_
2 #define AIKIDO_IO_CATKINRESOURCERETRIEVER_HPP_
3 
4 #include <string>
5 #include <unordered_map>
6 #include <vector>
7 
8 #include <dart/common/ResourceRetriever.hpp>
9 
10 namespace aikido {
11 namespace io {
12 
17 class CatkinResourceRetriever : public virtual dart::common::ResourceRetriever
18 {
19 public:
23 
28  explicit CatkinResourceRetriever(
29  const dart::common::ResourceRetrieverPtr& _delegate);
30 
31  virtual ~CatkinResourceRetriever() = default;
32 
33  // Documentation inherited.
34  bool exists(const dart::common::Uri& _uri) override;
35 
36  // Documentation inherited.
37  dart::common::ResourcePtr retrieve(const dart::common::Uri& _uri) override;
38 
39 private:
40  struct Workspace
41  {
42  std::string mPath;
43  std::unordered_map<std::string, std::string> mSourceMap;
44  };
45 
46  std::vector<Workspace> getWorkspaces() const;
47  dart::common::Uri resolvePackageUri(const dart::common::Uri& _uri) const;
48 
49  dart::common::ResourceRetrieverPtr mDelegate;
50  std::vector<Workspace> mWorkspaces;
51 };
52 
53 } // namespace io
54 } // namespace aikido
55 
56 #endif // AIKIDO_IO_CATKINRESOURCERETRIEVER_HPP_
aikido::io::CatkinResourceRetriever::Workspace
Definition: CatkinResourceRetriever.hpp:40
aikido::io::CatkinResourceRetriever::~CatkinResourceRetriever
virtual ~CatkinResourceRetriever()=default
aikido::io::CatkinResourceRetriever::CatkinResourceRetriever
CatkinResourceRetriever()
Constructs a resource retriever that delegates to a LocalResourceRetriever to resolve 'file://' URIs.
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::io::CatkinResourceRetriever::Workspace::mPath
std::string mPath
Definition: CatkinResourceRetriever.hpp:42
aikido::io::CatkinResourceRetriever::exists
bool exists(const dart::common::Uri &_uri) override
aikido::io::CatkinResourceRetriever::Workspace::mSourceMap
std::unordered_map< std::string, std::string > mSourceMap
Definition: CatkinResourceRetriever.hpp:43
aikido::io::CatkinResourceRetriever::resolvePackageUri
dart::common::Uri resolvePackageUri(const dart::common::Uri &_uri) const
aikido::io::CatkinResourceRetriever::getWorkspaces
std::vector< Workspace > getWorkspaces() const
aikido::io::CatkinResourceRetriever::mWorkspaces
std::vector< Workspace > mWorkspaces
Definition: CatkinResourceRetriever.hpp:50
aikido::io::CatkinResourceRetriever
Retreive resources specified by 'package://' URIs.
Definition: CatkinResourceRetriever.hpp:17
aikido::io::CatkinResourceRetriever::mDelegate
dart::common::ResourceRetrieverPtr mDelegate
Definition: CatkinResourceRetriever.hpp:49
aikido::io::CatkinResourceRetriever::retrieve
dart::common::ResourcePtr retrieve(const dart::common::Uri &_uri) override