SheafSystem  0.0.0.0
poset_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 poset_data_type_map
19 
20 #ifndef POSET_DATA_TYPE_MAP_H
21 #define POSET_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 //#ifndef NAME_MULTIMAP_H
32 //#include "SheafSystem/name_multimap.h"
33 //#endif
34 
35 #ifndef RECORD_INDEX_H
36 #include "SheafSystem/record_index.h"
37 #endif
38 
39 #ifndef STD_UNORDERED_MAP_H
40 #include "SheafSystem/std_unordered_map.h"
41 #endif
42 
43 #ifndef STD_STRING_H
44 #include "SheafSystem/std_string.h"
45 #endif
46 
47 #ifndef STD_VECTOR_H
48 #include "SheafSystem/std_vector.h"
49 #endif
50 
51 namespace sheaf
52 {
53 
54 class subposet;
55 
62 class SHEAF_DLL_SPEC poset_data_type_map : public data_type_map
63 {
64 
65 
66 public:
67 
68  // ===========================================================
69  // ANY FACET
70  // ===========================================================
71 
77  virtual poset_data_type_map* clone() const;
78 
82  virtual bool invariant() const;
83 
87  virtual bool is_ancestor_of(const any* other) const;
88 
89  // ===========================================================
90  // POSET_DATA_TYPE_MAP FACET
91  // ===========================================================
92 
97  poset_data_type_map(const data_type_map& xprim_map);
98 
104 
108  virtual ~poset_data_type_map();
109 
114  {
115  return _converters[_toc_index];
116  };
117 
122  {
123  return _converters[_dof_tuple_id_index];
124  };
125 
130  {
131  return _converters[_offset_index];
132  };
133 
134 
141  // void put_member_record_type_aliases(const scoped_index& xtoc_index,
142  // const scoped_index& xdof_tuple_id_index,
143  // const scoped_index& xoffset_index);
144  void put_member_record_type_aliases(int xtoc_index,
145  int xdof_tuple_id_index,
146  int xoffset_index);
147 
148 private:
149 
150  // Default constructor; private to prevent default construction.
151 
153 
154  // Type indices for member_record fields
155 
156  // scoped_index _toc_index;
157  // scoped_index _dof_tuple_id_index;
158  // scoped_index _offset_index;
159 
160  int _toc_index;
161  int _dof_tuple_id_index;
162  int _offset_index;
163 
164 };
165 
166 } // namespace sheaf
167 
168 #endif // ifndef POSET_DATA_TYPE_MAP_H
169 
170 
171 
172 
173 
174 
Abstract base class with useful features for all objects.
Definition: any.h:39
A poset specific collection of data converters, various buffers and other data used while transferrin...
data_converter * offset_converter() const
The data converter for implementation type offset.
data_converter * toc_converter() const
The data converter for implementation type toc.
Function object to convert between internal and external data formats.
Namespace for the sheaves component of the sheaf system.
data_converter * dof_tuple_id_converter() const
The data converter for implementation type dof_tuple_id.
A collection of data converters that map data types between internal and external representations...
Definition: data_type_map.h:49