1 // (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
2 // (C) Copyright 2004-2007 Jonathan Turkanis
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
5 
6 // See http://www.boost.org/libs/iostreams for documentation.
7 
8 // Contains the definitions of several constants used by the test program.
9 
10 #ifndef BOOST_IOSTREAMS_TEST_CONSTANTS_HPP_INCLUDED
11 #define BOOST_IOSTREAMS_TEST_CONSTANTS_HPP_INCLUDED
12 
13 #include <string.h>
14 #include <boost/config.hpp>
15 
16 namespace boost { namespace iostreams { namespace test {
17 
18 // Note: openmode could be a class type, so this header must be included
19 // by just one TU.
20 const BOOST_IOS::openmode in_mode = BOOST_IOS::in | BOOST_IOS::binary;
21 const BOOST_IOS::openmode out_mode = BOOST_IOS::out | BOOST_IOS::binary;
22 
23 // Chunk size for reading or writing in chunks.
24 const int chunk_size = 59;
25 
26 // Chunk size for reading or writing in chunks.
27 const int small_buffer_size = 23;
28 
29 // Number of times data is repeated in test files.
30 const int data_reps = 300;
31 
32 namespace detail {
33 
34 // Returns string which is used to generate test files.
data(char *)35 inline const char* data(char*)
36 {
37     static const char* c =
38         "!\"#$%&'()*+,-./0123456879:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"
39         "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\n";
40     return c;
41 }
42 
43 // Returns string which is used to generate test files.
data(wchar_t *)44 inline const wchar_t* data(wchar_t*)
45 {
46     static const wchar_t* c =
47         L"!\"#$%&'()*+,-./0123456879:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"
48         L"[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\n";
49     return c;
50 }
51 
52 } // End namespace detail.
53 
narrow_data()54 inline const char* narrow_data() { return detail::data((char*)0); }
55 
wide_data()56 inline const wchar_t* wide_data() { return detail::data((wchar_t*)0); }
57 
58 // Length of string returned by data().
data_length()59 inline int data_length()
60 {
61     static int len = (int) strlen(narrow_data());
62     return len;
63 }
64 
65 } } } // End namespaces detail, iostreams, boost.
66 
67 #endif // #ifndef BOOST_IOSTREAMS_TEST_CONSTANTS_HPP_INCLUDED
68