ArcGIS Procedural Runtime  3.2.10650
Extension.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_EXTENSION_H_
19 #define PRTX_EXTENSION_H_
20 
21 #include "prtx/prtx.h"
22 
23 #include "prt/ContentType.h"
24 
25 #include <string>
26 
27 #ifdef _MSC_VER
28 # pragma warning(push)
29 # pragma warning(disable : 4275)
30 #endif
31 
32 
33 namespace prtx {
34 
35 
41 class PRTX_EXPORTS_API Extension {
42 public:
52  ET_COUNT
53  };
54 
55 protected:
56  Extension() = default;
57 
58 public:
59  Extension(const Extension&) = delete;
60  Extension& operator=(const Extension&) = delete;
61  virtual ~Extension() = default;
62 
69  static ExtensionType toExtensionType(const std::wstring& etStr);
70 
77  static const std::wstring& toString(const ExtensionType& et);
78 
85  static prt::ContentType toContentType(const std::wstring& ctStr);
86 
93  static const std::wstring& toString(const prt::ContentType& ct);
94 
100  virtual ExtensionType getExtensionType() const = 0;
101 
107  virtual prt::ContentType getContentType() const = 0;
108 };
109 
110 
111 } // namespace prtx
112 
113 
114 #ifdef _MSC_VER
115 # pragma warning(pop)
116 #endif
117 
118 
119 #endif /* PRTX_EXTENSION_H_ */
Extension sub-class is undefined.
Definition: Extension.h:47
ExtensionType
Definition: Extension.h:46
Extension sub-class is an encoder.
Definition: Extension.h:50
Definition: Extension.h:41
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35
ContentType
Definition: ContentType.h:28
Extension sub-class is a decoder.
Definition: Extension.h:51
Extension sub-class is a stream adaptor.
Definition: Extension.h:48
Extension sub-class is a resolve map provider.
Definition: Extension.h:49