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