ArcGIS Procedural Runtime  3.2.10650
DecoderFactory.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_DECODERFACTORY_H_
19 #define PRTX_DECODERFACTORY_H_
20 
21 #include "prtx/prtx.h"
22 #include "prtx/URI.h"
23 #include "prtx/ExtensionFactory.h"
24 #include "prtx/FileExtensions.h"
25 
26 #include "prt/DecoderInfo.h"
27 
28 #include <string>
29 
30 
31 #ifdef _MSC_VER
32 # pragma warning(push)
33 # pragma warning (disable : 4251 4231 4660)
34 #endif
35 
36 
37 class DecoderInfoImpl;
38 
39 
40 namespace prtx {
41 
47 class PRTX_EXPORTS_API DecoderFactory : public ExtensionFactory {
48 public:
49  DecoderFactory() = delete;
50 
53  ER_CAN_HANDLE
54  };
55 
57  prt::ContentType type,
58  const std::wstring& id,
59  const std::wstring& name,
60  const std::wstring& desc,
61  const FileExtensions& exts = FileExtensions(),
62  const char* icon = 0,
63  EmbeddedResources canHandleER = ER_NO
64  );
65  virtual ~DecoderFactory();
66 
71  prt::DecoderInfo* createDecoderInfo() const;
72 
76  virtual bool canHandleURI(prtx::URIPtr uri) const override;
77 
83  virtual prtx::Extension::ExtensionType getExtensionType() const final override {
84  return Extension::ET_DECODER;
85  }
86 
87 protected:
88  DecoderInfoImpl* mInfo {nullptr};
89 };
90 
91 
92 } /* namespace prtx */
93 
94 
95 #ifdef _MSC_VER
96 # pragma warning(pop)
97 #endif
98 
99 
100 #endif /* PRTX_DECODERFACTORY_H_ */
EmbeddedResources
Definition: DecoderFactory.h:51
ExtensionType
Definition: Extension.h:46
Decoder or the underlying format does not have support for embedded resources.
Definition: DecoderFactory.h:52
Definition: FileExtensions.h:41
virtual prtx::Extension::ExtensionType getExtensionType() const final override
Definition: DecoderFactory.h:83
Definition: DecoderInfo.h:30
Definition: ExtensionFactory.h:48
Definition: DecoderFactory.h:47
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
Extension sub-class is a decoder.
Definition: Extension.h:51