Chris@16
|
1 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
|
Chris@16
|
2 // basic_text_oarchive.ipp:
|
Chris@16
|
3
|
Chris@16
|
4 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
|
Chris@16
|
5 // Use, modification and distribution is subject to the Boost Software
|
Chris@16
|
6 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
7 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8
|
Chris@16
|
9 // See http://www.boost.org for updates, documentation, and revision history.
|
Chris@16
|
10 #include <string>
|
Chris@16
|
11 #include <boost/assert.hpp>
|
Chris@16
|
12 #include <cstring>
|
Chris@16
|
13
|
Chris@101
|
14 #include <boost/config.hpp>
|
Chris@16
|
15 #if defined(BOOST_NO_STDC_NAMESPACE)
|
Chris@16
|
16 namespace std{
|
Chris@16
|
17 using ::memcpy;
|
Chris@16
|
18 }
|
Chris@16
|
19 #endif
|
Chris@16
|
20
|
Chris@16
|
21 #include <boost/archive/basic_text_oarchive.hpp>
|
Chris@16
|
22
|
Chris@16
|
23 namespace boost {
|
Chris@16
|
24 namespace archive {
|
Chris@16
|
25
|
Chris@16
|
26 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
|
Chris@16
|
27 // implementation of basic_text_oarchive
|
Chris@16
|
28
|
Chris@16
|
29 template<class Archive>
|
Chris@16
|
30 BOOST_ARCHIVE_OR_WARCHIVE_DECL(void)
|
Chris@16
|
31 basic_text_oarchive<Archive>::newtoken()
|
Chris@16
|
32 {
|
Chris@16
|
33 switch(delimiter){
|
Chris@16
|
34 default:
|
Chris@16
|
35 BOOST_ASSERT(false);
|
Chris@16
|
36 break;
|
Chris@16
|
37 case eol:
|
Chris@16
|
38 this->This()->put('\n');
|
Chris@16
|
39 delimiter = space;
|
Chris@16
|
40 break;
|
Chris@16
|
41 case space:
|
Chris@16
|
42 this->This()->put(' ');
|
Chris@16
|
43 break;
|
Chris@16
|
44 case none:
|
Chris@16
|
45 delimiter = space;
|
Chris@16
|
46 break;
|
Chris@16
|
47 }
|
Chris@16
|
48 }
|
Chris@16
|
49
|
Chris@16
|
50 template<class Archive>
|
Chris@16
|
51 BOOST_ARCHIVE_OR_WARCHIVE_DECL(void)
|
Chris@16
|
52 basic_text_oarchive<Archive>::init(){
|
Chris@16
|
53 // write signature in an archive version independent manner
|
Chris@16
|
54 const std::string file_signature(BOOST_ARCHIVE_SIGNATURE());
|
Chris@16
|
55 * this->This() << file_signature;
|
Chris@16
|
56 // write library version
|
Chris@16
|
57 const library_version_type v(BOOST_ARCHIVE_VERSION());
|
Chris@16
|
58 * this->This() << v;
|
Chris@16
|
59 }
|
Chris@16
|
60
|
Chris@16
|
61 } // namespace archive
|
Chris@16
|
62 } // namespace boost
|