SheafSystem  0.0.0.0
file_data_type_map.h
1 
2 //
3 // Copyright (c) 2014 Limit Point Systems, Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 
18 // Interface for class file_data_type_map
19 
20 #ifndef FILE_DATA_TYPE_MAP_H
21 #define FILE_DATA_TYPE_MAP_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 #ifndef DATA_TYPE_MAP_H
28 #include "SheafSystem/data_type_map.h"
29 #endif
30 
31 namespace sheaf
32 {
33 
39 class SHEAF_DLL_SPEC file_data_type_map : public data_type_map
40 {
41 
42 
43 public:
44 
45  // ===========================================================
46  // ANY FACET
47  // ===========================================================
48 
54  virtual file_data_type_map* clone() const;
55 
59  virtual bool invariant() const;
60 
64  virtual bool is_ancestor_of(const any* other) const;
65 
66  // ===========================================================
67  // FILE_DATA_TYPE_MAP FACET
68  // ===========================================================
69 
73  file_data_type_map(hid_t xfile, bool xcreate_ext_types);
74 
80 
84  virtual ~file_data_type_map();
85 
86 protected:
87 
88  // Default constructor;
89  // protected to prevent default construction
90 
92 
93 private:
94 
95  // ///
97  // ///
98  // static string external_hdf_type_name(int xi);
99 
100  // ///
102  // ///
103  // static hid_t predefined_internal_hdf_type(int xi);
104 
109  void create_internal_hdf_types(hid_t* xinternal_hdf_types, size_t xinternal_hdf_types_ub);
110 
114  void close_internal_hdf_types();
115 
119  void create_external_hdf_types(const hid_t* xinternal_hdf_types,
120  size_t xinternal_hdf_types_ub,
121  hid_t* xexternal_hdf_types,
122  size_t xexternal_hdf_types_ub);
123 
127  void open_external_hdf_types(hid_t* xexternal_hdf_types, size_t xexternal_hdf_types_ub);
128 
132  void close_external_hdf_types();
133 
134 };
135 
136 } // namespace sheaf
137 
138 #endif // ifndef FILE_DATA_TYPE_MAP_H
139 
140 
141 
142 
143 
144 
A collection of data converters that map data types between internal and external representations ass...
Abstract base class with useful features for all objects.
Definition: any.h:39
Namespace for the sheaves component of the sheaf system.
A collection of data converters that map data types between internal and external representations...
Definition: data_type_map.h:49