PageRenderTime 25ms CodeModel.GetById 15ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 1ms

/trunk/Lib/std/std_sstream.i

#
Swig | 195 lines | 143 code | 41 blank | 11 comment | 0 complexity | 15cccbf1bd8f1867afa9db6d37520644 MD5 | raw file
  1/* 
  2   For wchar support, you need to include the wchar.i file
  3   before this file, ie:
  4   
  5   %include <wchar.i>
  6   %include <std_sstream.i>
  7
  8   or equivalently, just include
  9
 10   %include <std_wsstream.i>
 11*/
 12
 13%include <std_alloc.i>
 14%include <std_basic_string.i>
 15%include <std_string.i>
 16%include <std_ios.i>
 17#if defined(SWIG_WCHAR)
 18%include <std_wstring.i>
 19#endif
 20%include <std_streambuf.i>
 21%include <std_iostream.i>
 22
 23%{
 24#include <sstream>
 25%}
 26
 27
 28namespace std
 29{
 30  template<typename _CharT, typename _Traits = char_traits<_CharT>,
 31	   typename _Alloc = allocator<_CharT> >
 32    class basic_stringbuf : public basic_streambuf<_CharT, _Traits>
 33    {
 34    public:
 35      // Types:
 36      typedef _CharT 					char_type;
 37      typedef _Traits 					traits_type;
 38// 251. basic_stringbuf missing allocator_type
 39      typedef _Alloc				       	allocator_type;
 40      typedef typename traits_type::int_type 		int_type;
 41      typedef typename traits_type::pos_type 		pos_type;
 42      typedef typename traits_type::off_type 		off_type;
 43
 44    public:
 45      // Constructors:
 46      explicit
 47      basic_stringbuf(ios_base::openmode __mode = ios_base::in | ios_base::out);
 48
 49      explicit
 50      basic_stringbuf(const basic_string<_CharT, _Traits, _Alloc>& __str,
 51		      ios_base::openmode __mode = ios_base::in | ios_base::out);
 52
 53      // Get and set:
 54      basic_string<_CharT, _Traits, _Alloc>
 55      str() const;
 56
 57      void
 58      str(const basic_string<_CharT, _Traits, _Alloc>& __s);
 59
 60    };
 61
 62
 63  // 27.7.2  Template class basic_istringstream
 64  template<typename _CharT, typename _Traits = char_traits<_CharT>,
 65	   typename _Alloc = allocator<_CharT> >
 66  class basic_istringstream : public basic_istream<_CharT, _Traits>
 67  {
 68    public:
 69      // Types:
 70      typedef _CharT 					char_type;
 71      typedef _Traits 					traits_type;
 72// 251. basic_stringbuf missing allocator_type
 73      typedef _Alloc				       	allocator_type;
 74      typedef typename traits_type::int_type 		int_type;
 75      typedef typename traits_type::pos_type 		pos_type;
 76      typedef typename traits_type::off_type 		off_type;
 77
 78
 79    public:
 80      // Constructors:
 81      explicit
 82      basic_istringstream(ios_base::openmode __mode = ios_base::in);
 83
 84      explicit
 85      basic_istringstream(const basic_string<_CharT, _Traits, _Alloc>& __str,
 86			  ios_base::openmode __mode = ios_base::in);
 87
 88      ~basic_istringstream();
 89
 90      // Members:
 91      basic_stringbuf<_CharT, _Traits, _Alloc>*
 92      rdbuf() const;
 93
 94      basic_string<_CharT, _Traits, _Alloc>
 95      str() const;
 96
 97      void
 98      str(const basic_string<_CharT, _Traits, _Alloc>& __s);
 99    };
100
101
102  // 27.7.3  Template class basic_ostringstream
103  template<typename _CharT, typename _Traits = char_traits<_CharT>,
104	   typename _Alloc = allocator<_CharT> >
105  class basic_ostringstream : public basic_ostream<_CharT, _Traits>
106  {
107    public:
108      // Types:
109      typedef _CharT 					char_type;
110      typedef _Traits 					traits_type;
111// 251. basic_stringbuf missing allocator_type
112      typedef _Alloc				       	allocator_type;
113      typedef typename traits_type::int_type 		int_type;
114      typedef typename traits_type::pos_type 		pos_type;
115      typedef typename traits_type::off_type 		off_type;
116
117
118    public:
119     // Constructors/destructor:
120      explicit
121      basic_ostringstream(ios_base::openmode __mode = ios_base::out);
122
123      explicit
124      basic_ostringstream(const basic_string<_CharT, _Traits, _Alloc>& __str,
125			  ios_base::openmode __mode = ios_base::out);
126
127      ~basic_ostringstream();
128
129      // Members:
130      basic_stringbuf<_CharT, _Traits, _Alloc>*
131      rdbuf() const;
132
133      basic_string<_CharT, _Traits, _Alloc>
134      str() const;
135
136#if 0
137      void
138      str(const basic_string<_CharT, _Traits, _Alloc>& __s);
139#endif
140    };
141
142
143  // 27.7.4  Template class basic_stringstream
144  template<typename _CharT, typename _Traits = char_traits<_CharT>,
145	   typename _Alloc = allocator<_CharT> >
146  class basic_stringstream : public basic_iostream<_CharT, _Traits>
147  {
148    public:
149      // Types:
150      typedef _CharT 					char_type;
151      typedef _Traits 					traits_type;
152// 251. basic_stringbuf missing allocator_type
153      typedef _Alloc				       	allocator_type;
154      typedef typename traits_type::int_type 		int_type;
155      typedef typename traits_type::pos_type 		pos_type;
156      typedef typename traits_type::off_type 		off_type;
157
158    public:
159      // Constructors/destructors
160      explicit
161      basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in);
162
163      explicit
164      basic_stringstream(const basic_string<_CharT, _Traits, _Alloc>& __str,
165			 ios_base::openmode __m = ios_base::out | ios_base::in);
166
167      ~basic_stringstream();
168
169      // Members:
170      basic_stringbuf<_CharT, _Traits, _Alloc>*
171      rdbuf() const;
172
173      basic_string<_CharT, _Traits, _Alloc>
174      str() const;
175
176      void
177      str(const basic_string<_CharT, _Traits, _Alloc>& __s);
178    };
179
180
181} // namespace std
182
183
184namespace std {
185  %template(istringstream) basic_istringstream<char>;
186  %template(ostringstream) basic_ostringstream<char>;
187  %template(stringstream)  basic_stringstream<char>;
188
189
190#if defined(SWIG_WCHAR)
191  %template(wistringstream) basic_istringstream<wchar_t>;
192  %template(wostringstream) basic_ostringstream<wchar_t>;
193  %template(wstringstream)  basic_stringstream<wchar_t>;
194#endif
195}