|
1 #ifndef BOOST_SERIALIZATION_LEVEL_ENUM_HPP |
|
2 #define BOOST_SERIALIZATION_LEVEL_ENUM_HPP |
|
3 |
|
4 // MS compatible compilers support #pragma once |
|
5 #if defined(_MSC_VER) && (_MSC_VER >= 1020) |
|
6 # pragma once |
|
7 #endif |
|
8 |
|
9 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 |
|
10 // level_enum.hpp: |
|
11 |
|
12 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . |
|
13 // Use, modification and distribution is subject to the Boost Software |
|
14 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
|
15 // http://www.boost.org/LICENSE_1_0.txt) |
|
16 |
|
17 // See http://www.boost.org for updates, documentation, and revision history. |
|
18 |
|
19 namespace boost { |
|
20 namespace serialization { |
|
21 |
|
22 // for each class used in the program, specify which level |
|
23 // of serialization should be implemented |
|
24 |
|
25 // names for each level |
|
26 enum level_type |
|
27 { |
|
28 // Don't serialize this type. An attempt to do so should |
|
29 // invoke a compile time assertion. |
|
30 not_serializable = 0, |
|
31 // write/read this type directly to the archive. In this case |
|
32 // serialization code won't be called. This is the default |
|
33 // case for fundamental types. It presumes a member function or |
|
34 // template in the archive class that can handle this type. |
|
35 // there is no runtime overhead associated reading/writing |
|
36 // instances of this level |
|
37 primitive_type = 1, |
|
38 // Serialize the objects of this type using the objects "serialize" |
|
39 // function or template. This permits values to be written/read |
|
40 // to/from archives but includes no class or version information. |
|
41 object_serializable = 2, |
|
42 /////////////////////////////////////////////////////////////////// |
|
43 // once an object is serialized at one of the above levels, the |
|
44 // corresponding archives cannot be read if the implementation level |
|
45 // for the archive object is changed. |
|
46 /////////////////////////////////////////////////////////////////// |
|
47 // Add class information to the archive. Class information includes |
|
48 // implementation level, class version and class name if available |
|
49 object_class_info = 3 |
|
50 }; |
|
51 |
|
52 } // namespace serialization |
|
53 } // namespace boost |
|
54 |
|
55 #endif // BOOST_SERIALIZATION_LEVEL_ENUM_HPP |