Minsky
classdesc_access.h
Go to the documentation of this file.
1 /*
2  @copyright Steve Keen 2012
3  @author Russell Standish
4  This file is part of Minsky.
5 
6  Minsky is free software: you can redistribute it and/or modify it
7  under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  Minsky is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with Minsky. If not, see <http://www.gnu.org/licenses/>.
18 */
19 #ifndef CLASSDESC_ACCESS_H
20 #define CLASSDESC_ACCESS_H
21 
22 namespace classdesc
23 {
24  template <class T> struct base_cast;
25 }
26 
28 {
29  template <class T> struct access_pack;
30  template <class T> struct access_unpack;
31  template <class T> struct access_xml_pack;
32  template <class T> struct access_xml_unpack;
33  template <class T> struct access_xsd_generate;
34  template <class T> struct access_random_init;
35 }
36 
37 // redefine this to include xml_* descriptors
38 #undef CLASSDESC_ACCESS
39 #define CLASSDESC_ACCESS(type) \
40  friend struct classdesc_access::access_pack<type>; \
41  friend struct classdesc_access::access_unpack<type>; \
42  friend struct classdesc_access::access_xml_pack<type>; \
43  friend struct classdesc_access::access_xml_unpack<type>; \
44  friend struct classdesc_access::access_xsd_generate<type>; \
45  friend struct classdesc_access::access_random_init<type>
46 
47 #endif