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) 16namespace std{ 17 using ::memcpy; 18} 19#endif 20 21#include <boost/archive/basic_text_oarchive.hpp> 22 23namespace boost { 24namespace archive { 25 26/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 27// implementation of basic_text_oarchive 28 29template<class Archive> 30BOOST_ARCHIVE_OR_WARCHIVE_DECL void 31basic_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 50template<class Archive> 51BOOST_ARCHIVE_OR_WARCHIVE_DECL void 52basic_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 boost::serialization::library_version_type v(BOOST_ARCHIVE_VERSION()); 58 * this->This() << v; 59} 60 61} // namespace archive 62} // namespace boost 63