ArcGIS Procedural Runtime  3.2.10650
FileExtensions.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_FILEEXTENSIONS_H_
19 #define PRTX_FILEEXTENSIONS_H_
20 
21 #include "prtx/prtx.h"
22 #include "prtx/Types.h"
23 
24 #include <string>
25 #include <memory>
26 #include <vector>
27 
28 #ifdef _MSC_VER
29 # pragma warning(push)
30 # pragma warning (disable : 4251)
31 #endif
32 
33 
34 namespace prtx {
35 
36 
41 class PRTX_EXPORTS_API FileExtensions {
42 public:
44  FileExtensions(const FileExtensions& other);
45  FileExtensions& operator=(const FileExtensions& other);
46 
51  FileExtensions(const std::wstring& e);
52 
57  FileExtensions(const WStringVector& v);
58 
63  const std::wstring& toString() const;
64 
69  bool contains(const std::wstring& e) const;
70 
74  const WStringVector& items() const;
75 
79  const std::wstring& item(size_t i) const;
80 
81 private:
82  WStringVector mExts;
83  mutable std::unique_ptr<std::wstring> mStrCache;
84 };
85 
86 
87 } // namespace prtx
88 
89 #ifdef _MSC_VER
90 # pragma warning(pop)
91 #endif
92 
93 #endif /* PRTX_FILEEXTENSIONS_H_ */
Definition: FileExtensions.h:41
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35
std::vector< std::wstring > WStringVector
vector of std::wstring
Definition: Types.h:35