ArcGIS Procedural Runtime  3.2.10650
BuiltinAttributes.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_BUILTINATTRIBUTES_H_
19 #define PRTX_BUILTINATTRIBUTES_H_
20 
21 #include "prtx/prtx.h"
22 #include "prtx/Types.h"
23 
24 #include "prt/Attributable.h"
25 
26 #include <string>
27 
28 
29 namespace prtx {
30 
31 
35 class PRTX_EXPORTS_API BuiltinAttributes {
36 protected:
38  virtual ~BuiltinAttributes();
39 
40  virtual void fillBuiltinKeys(WStringVector& keys) const = 0;
41  virtual prt::Attributable::PrimitiveType getBuiltinType(const std::wstring& k) const = 0;
42 };
43 
44 
48 class PRTX_EXPORTS_API BuiltinAttributesGetters : public BuiltinAttributes {
49 protected:
51  virtual ~BuiltinAttributesGetters() {}
52 
53  virtual bool getBuiltinBool(const std::wstring& k, bool& found) const = 0;
54  virtual double getBuiltinFloat(const std::wstring& k, bool& found) const = 0;
55  virtual const std::wstring& getBuiltinString(const std::wstring& k, bool& found) const = 0;
56 };
57 
58 
62 class PRTX_EXPORTS_API BuiltinAttributesSetters /*: public BuiltinAttributes*/ {
63 protected:
65  virtual ~BuiltinAttributesSetters() {}
66 
67  virtual bool setBuiltinBool(const std::wstring& k, bool val) = 0;
68  virtual bool setBuiltinFloat(const std::wstring& k, double val) = 0;
69  virtual bool setBuiltinString(const std::wstring& k, const std::wstring& found) = 0;
70 };
71 
72 } // namespace prtx
73 
74 
75 #endif /* PRTX_BUILTINATTRIBUTES_H_ */
Definition: BuiltinAttributes.h:35
Definition: BuiltinAttributes.h:48
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35
PrimitiveType
Definition: Attributable.h:44
std::vector< std::wstring > WStringVector
vector of std::wstring
Definition: Types.h:35
Definition: BuiltinAttributes.h:62