SheafSystem  0.0.0.0
member_names_record.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 // Interface for class member_names_record
18 
19 #ifndef MEMBER_NAMES_RECORD_H
20 #define MEMBER_NAMES_RECORD_H
21 
22 #ifndef SHEAF_DLL_SPEC_H
23 #include "SheafSystem/sheaf_dll_spec.h"
24 #endif
25 
26 #ifndef STD_UTILITY_H
27 #include "SheafSystem/std_utility.h"
28 #endif
29 
30 #ifndef ATTRIBUTES_RECORD_H
31 #include "SheafSystem/attributes_record.h"
32 #endif
33 
34 namespace sheaf
35 {
36 
37 class poset_data_type_map;
38 
45 class SHEAF_DLL_SPEC member_names_record : public attributes_record
46 {
47 public:
48 
49  // =============================================================================
50  // ANY FACET
51  // =============================================================================
52 
53  // CANONICAL MEMBERS
54 
60  virtual member_names_record* clone() const;
61 
65  virtual bool invariant() const;
66 
70  virtual bool is_ancestor_of(const any* other) const;
71 
72 
73  // =============================================================================
74  // MEMBER_NAMES_RECORD FACET
75  // =============================================================================
76 
81 
87 
91  virtual ~member_names_record();
92 
93 protected:
94 
98  void transfer_internal_buffer_to_poset();
99 
103  void transfer_poset_to_internal_buffer();
104 
105 };
106 
107 } // namespace sheaf
108 
109 #endif // ifndef MEMBER_NAMES_RECORD_H
110 
111 
112 
113 
114 
115 
Abstract base class with useful features for all objects.
Definition: any.h:39
A wrapper/adapter for the member names record. Intended for transferring index-name map data between ...
Namespace for the sheaves component of the sheaf system.
A poset specific collection of data converters, various buffers and other data used while transferrin...
An abstract wrapper/adapter for attributes records. Intended for transferring data between the kernel...