ArcGIS Procedural Runtime  3.2.10650
ResolveMapProvider.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_PROVIDER_H_
19 #define PRTX_RESOLVEMAP_PROVIDER_H_
20 
21 #include "prt/ContentType.h"
22 #include "prt/Cache.h"
23 
24 #include "prtx/prtx.h"
25 #include "prtx/Content.h"
26 #include "prtx/URI.h"
27 #include "prtx/Extension.h"
28 #include "prtx/ResolveMap.h"
29 
30 #include <string>
31 #include <iosfwd>
32 #include <memory>
33 
34 
35 namespace prtx {
36 
37 
38 class ResolveMapProvider;
39 using ResolveMapProviderPtr = std::shared_ptr<ResolveMapProvider>;
40 
50 class PRTX_EXPORTS_API ResolveMapProvider : public Extension {
51 protected:
52  ResolveMapProvider() = default;
53 
54 public:
55  virtual ~ResolveMapProvider() = default;
56 
73  virtual prt::ResolveMap const* createResolveMap(
74  prtx::URIPtr uri
75  ) const = 0;
76 
84  virtual prtx::Extension::ExtensionType getExtensionType() const final override {
86  }
87 
95  virtual prt::ContentType getContentType() const final override {
96  return prt::CT_UNDEFINED;
97  }
98 };
99 
100 } // namespace prtx
101 
102 
103 #endif /* PRTX_RESOLVEMAP_PROVIDER_H_ */
Extension does not make use of specific content type.
Definition: ContentType.h:29
Definition: ResolveMap.h:38
ExtensionType
Definition: Extension.h:46
virtual prtx::Extension::ExtensionType getExtensionType() const final override
Definition: ResolveMapProvider.h:84
virtual prt::ContentType getContentType() const final override
Definition: ResolveMapProvider.h:95
Definition: Extension.h:41
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
ContentType
Definition: ContentType.h:28
Definition: ResolveMapProvider.h:50
Extension sub-class is a resolve map provider.
Definition: Extension.h:49