ArcGIS Procedural Runtime  3.2.10650
EncoderInfoBuilder.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_ENCODERINFOBUILDER_H_
19 #define PRTX_ENCODERINFOBUILDER_H_
20 
21 #include "prtx/prtx.h"
22 #include "prtx/Builder.h"
23 #include "prtx/EncodeOptionsValidator.h"
24 #include "prtx/FileExtensions.h"
25 
26 #include "prt/ContentType.h"
27 #include "prt/EncoderInfo.h"
28 
29 #include <string>
30 
31 #ifdef _MSC_VER
32 # pragma warning(push)
33 # pragma warning(disable : 4275)
34 #endif
35 
36 
37 class EncoderInfoImpl;
38 
39 
40 namespace prtx {
41 
42 
48 class PRTX_EXPORTS_API EncoderInfoBuilder : public Builder<const prt::EncoderInfo> {
49 public:
51  virtual ~EncoderInfoBuilder();
52 
58  virtual const prt::EncoderInfo* create(std::wstring* warnings = 0) const;
59 
65  virtual const prt::EncoderInfo* createAndReset(std::wstring* warnings = 0);
66 
70  void setType(prt::ContentType type);
71 
75  void setID(const std::wstring& id);
76 
80  void setName(const std::wstring& name);
81 
85  void setDescription(const std::wstring& desc);
86 
91  void setExtension(const std::wstring& ext);
92 
96  void setExtensions(const prtx::FileExtensions& exts);
97 
102  void setMerit(double merit);
103 
107  void setIcon(
108  const char* icon
109  );
110 
115  void setDefaultOptions(prt::AttributeMap const* defaultOptions);
116 
126  void setInitialShapeAttributes(prt::AttributeMap const* attributes);
127 
144  void addAnnotation(const std::wstring& key, const prt::Annotation* a);
145 
151  void setValidator(prtx::EncodeOptionsValidatorPtr validator);
152 
153 private:
154  EncoderInfoImpl* mInfo;
155 };
156 
157 
158 } /* namespace prtx */
159 
160 
161 #ifdef _MSC_VER
162 # pragma warning(pop)
163 #endif
164 
165 
166 #endif /* PRTX_ENCODERINFOBUILDER_H_ */
Definition: FileExtensions.h:41
Definition: EncoderInfoBuilder.h:48
Definition: EncoderInfo.h:43
std::shared_ptr< EncodeOptionsValidator > EncodeOptionsValidatorPtr
shared pointer for prtx::EncodeOptionsValidator
Definition: EncodeOptionsValidator.h:53
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35
Definition: Annotation.h:56
ContentType
Definition: ContentType.h:28
Definition: Builder.h:37
Definition: AttributeMap.h:32