ArcGIS Procedural Runtime  3.2.10650
/ResolveMap.h
1 /*
2  COPYRIGHT (c) 2012-2024 Esri R&D Center Zurich
3  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
4  Unpublished material - all rights reserved under the
5  Copyright Laws of the United States and applicable international
6  laws, treaties, and conventions.
7 
8  For additional information, contact:
9  Environmental Systems Research Institute, Inc.
10  Attn: Contracts and Legal Services Department
11  380 New York Street
12  Redlands, California, 92373
13  USA
14 
15  email: contracts@esri.com
16 */
17 
18 #ifndef PRTX_RESOLVEMAP_H_
19 #define PRTX_RESOLVEMAP_H_
20 
21 #include "prtx/prtx.h"
22 #include "prtx/URI.h"
23 #include "prt/ResolveMap.h"
24 
25 #include <string>
26 
27 #ifdef __clang__
28 # pragma clang diagnostic push
29 # pragma clang diagnostic ignored "-Woverloaded-virtual"
30 #endif
31 
32 
33 namespace prtx {
34 
35 
40 class PRTX_EXPORTS_API ResolveMap : public prt::ResolveMap {
41 public:
42  ResolveMap() {}
43 
47  virtual prtx::URIPtr resolveKey(const std::wstring& key) const = 0;
48 
49 
53  virtual std::vector<std::wstring> resolveURI(const prtx::URIPtr& uri) const = 0;
54 
55 
69  virtual std::wstring searchKey(const std::wstring& project, const std::wstring& query) const = 0;
70 
77  static prtx::URIPtr resolveKeyWithURIFallback(ResolveMap const* resolveMap, const std::wstring& key);
78 
88  [[deprecated]] static std::wstring replaceLastKeySegment(const std::wstring& key, const std::wstring& newSegment);
89 
109  static std::wstring anchorRelativeKey(
110  const prt::ResolveMap* resolveMap,
111  const std::wstring& anchorKey,
112  const std::wstring& relativeKey);
113 
126  static std::wstring anchorEmbeddedKey(const std::wstring& containerKey, const std::wstring& embeddedKey);
127 
128 protected:
129  virtual ~ResolveMap() {}
130 
131 };
132 
133 
134 } // namespace prtx
135 
136 #ifdef __clang__
137 # pragma clang diagnostic pop
138 #endif
139 
140 
141 #endif /* PRTX_RESOLVEMAP_H_ */
Definition: ResolveMap.h:38
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35
std::shared_ptr< URI > URIPtr
shared pointer implementation of prtx::URI
Definition: URI.h:37
Definition: /ResolveMap.h:40