Statistics
| Revision:

root / tmp / org.txm.statsengine.r.core.win32 / res / win32 / library / BH / include / boost / archive / basic_text_iarchive.hpp @ 2486

History | View | Annotate | Download (2.9 kB)

1 2486 sjacqu01
#ifndef BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP
2 2486 sjacqu01
#define BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP
3 2486 sjacqu01
4 2486 sjacqu01
// MS compatible compilers support #pragma once
5 2486 sjacqu01
#if defined(_MSC_VER)
6 2486 sjacqu01
# pragma once
7 2486 sjacqu01
#endif
8 2486 sjacqu01
9 2486 sjacqu01
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
10 2486 sjacqu01
// basic_text_iarchive.hpp
11 2486 sjacqu01
12 2486 sjacqu01
// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
13 2486 sjacqu01
// Use, modification and distribution is subject to the Boost Software
14 2486 sjacqu01
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
15 2486 sjacqu01
// http://www.boost.org/LICENSE_1_0.txt)
16 2486 sjacqu01
17 2486 sjacqu01
//  See http://www.boost.org for updates, documentation, and revision history.
18 2486 sjacqu01
19 2486 sjacqu01
// archives stored as text - note these ar templated on the basic
20 2486 sjacqu01
// stream templates to accommodate wide (and other?) kind of characters
21 2486 sjacqu01
//
22 2486 sjacqu01
// note the fact that on libraries without wide characters, ostream is
23 2486 sjacqu01
// is not a specialization of basic_ostream which in fact is not defined
24 2486 sjacqu01
// in such cases.   So we can't use basic_ostream<IStream::char_type> but rather
25 2486 sjacqu01
// use two template parameters
26 2486 sjacqu01
27 2486 sjacqu01
#include <boost/config.hpp>
28 2486 sjacqu01
#include <boost/detail/workaround.hpp>
29 2486 sjacqu01
30 2486 sjacqu01
#include <boost/archive/detail/common_iarchive.hpp>
31 2486 sjacqu01
32 2486 sjacqu01
#include <boost/archive/detail/abi_prefix.hpp> // must be the last header
33 2486 sjacqu01
34 2486 sjacqu01
#ifdef BOOST_MSVC
35 2486 sjacqu01
#  pragma warning(push)
36 2486 sjacqu01
#  pragma warning(disable : 4511 4512)
37 2486 sjacqu01
#endif
38 2486 sjacqu01
39 2486 sjacqu01
namespace boost {
40 2486 sjacqu01
namespace archive {
41 2486 sjacqu01
42 2486 sjacqu01
namespace detail {
43 2486 sjacqu01
    template<class Archive> class interface_iarchive;
44 2486 sjacqu01
} // namespace detail
45 2486 sjacqu01
46 2486 sjacqu01
/////////////////////////////////////////////////////////////////////////
47 2486 sjacqu01
// class basic_text_iarchive - read serialized objects from a input text stream
48 2486 sjacqu01
template<class Archive>
49 2486 sjacqu01
class BOOST_SYMBOL_VISIBLE basic_text_iarchive :
50 2486 sjacqu01
    public detail::common_iarchive<Archive>
51 2486 sjacqu01
{
52 2486 sjacqu01
#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
53 2486 sjacqu01
public:
54 2486 sjacqu01
#else
55 2486 sjacqu01
protected:
56 2486 sjacqu01
    #if BOOST_WORKAROUND(BOOST_MSVC, < 1500)
57 2486 sjacqu01
        // for some inexplicable reason insertion of "class" generates compile erro
58 2486 sjacqu01
        // on msvc 7.1
59 2486 sjacqu01
        friend detail::interface_iarchive<Archive>;
60 2486 sjacqu01
    #else
61 2486 sjacqu01
        friend class detail::interface_iarchive<Archive>;
62 2486 sjacqu01
    #endif
63 2486 sjacqu01
#endif
64 2486 sjacqu01
    // intermediate level to support override of operators
65 2486 sjacqu01
    // fot templates in the absence of partial function
66 2486 sjacqu01
    // template ordering
67 2486 sjacqu01
    typedef detail::common_iarchive<Archive> detail_common_iarchive;
68 2486 sjacqu01
    template<class T>
69 2486 sjacqu01
    void load_override(T & t){
70 2486 sjacqu01
        this->detail_common_iarchive::load_override(t);
71 2486 sjacqu01
    }
72 2486 sjacqu01
    // text file don't include the optional information
73 2486 sjacqu01
    void load_override(class_id_optional_type & /*t*/){}
74 2486 sjacqu01
75 2486 sjacqu01
    BOOST_ARCHIVE_OR_WARCHIVE_DECL void
76 2486 sjacqu01
    load_override(class_name_type & t);
77 2486 sjacqu01
78 2486 sjacqu01
    BOOST_ARCHIVE_OR_WARCHIVE_DECL void
79 2486 sjacqu01
    init(void);
80 2486 sjacqu01
81 2486 sjacqu01
    basic_text_iarchive(unsigned int flags) :
82 2486 sjacqu01
        detail::common_iarchive<Archive>(flags)
83 2486 sjacqu01
    {}
84 2486 sjacqu01
    ~basic_text_iarchive(){}
85 2486 sjacqu01
};
86 2486 sjacqu01
87 2486 sjacqu01
} // namespace archive
88 2486 sjacqu01
} // namespace boost
89 2486 sjacqu01
90 2486 sjacqu01
#ifdef BOOST_MSVC
91 2486 sjacqu01
#pragma warning(pop)
92 2486 sjacqu01
#endif
93 2486 sjacqu01
94 2486 sjacqu01
#include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
95 2486 sjacqu01
96 2486 sjacqu01
#endif // BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP