1/*
2 *
3 * Copyright (c) 2003 Dr John Maddock
4 * Use, modification and distribution is subject to the
5 * Boost Software License, Version 1.0. (See accompanying file
6 * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 *
8 */
9
10#if defined(BOOST_FILESYSTEM_VERSION) && (BOOST_FILESYSTEM_VERSION != 3)
11# error "This library must be built with Boost.Filesystem version 3"
12#else
13#define BOOST_FILESYSTEM_VERSION 3
14#endif
15
16#include <boost/shared_ptr.hpp>
17#include <boost/filesystem/path.hpp>
18
19class fileview
20{
21public:
22 // types:
23 typedef const char& reference;
24 typedef reference const_reference;
25 typedef const char* iterator; // See _lib.container.requirements_
26 typedef iterator const_iterator; // See _lib.container.requirements_
27 typedef std::size_t size_type;
28 typedef std::ptrdiff_t difference_type;
29 typedef char value_type;
30 typedef const char* pointer;
31 typedef pointer const_pointer;
32#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
33 typedef std::reverse_iterator<iterator> reverse_iterator;
34 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
35#endif
36
37 // construct:
38 fileview();
39 fileview(const boost::filesystem::path& p);
40 ~fileview();
41 fileview(const fileview& that);
42 fileview& operator=(const fileview& that);
43 void close();
44 void open(const boost::filesystem::path& p);
45
46 // iterators:
47 const_iterator begin() const;
48 const_iterator end() const;
49#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
50 const_reverse_iterator rbegin() const;
51 const_reverse_iterator rend() const;
52#endif
53
54 // capacity:
55 size_type size() const;
56 size_type max_size() const;
57 bool empty() const;
58
59 // element access:
60 const_reference operator[](size_type n) const;
61 const_reference at(size_type n) const;
62 const_reference front() const;
63 const_reference back() const;
64 void swap(fileview& that);
65
66private:
67 void cow();
68 struct implementation;
69 boost::shared_ptr<implementation> pimpl;
70};
71
72
73

source code of boost/tools/bcp/fileview.hpp