1 %include <std_char_traits.i> 2 %include <std_basic_string.i> 3 %include <std_except.i> 4 %{ 5 #ifndef SWIG_STD_NOMODERN_STL 6 # include <ios> 7 #else 8 # include <streambuf.h> 9 #endif 10 %} 11 12 namespace std { 13 14 template<typename _CharT, typename _Traits = char_traits<_CharT> > 15 class basic_streambuf; 16 17 template<typename _CharT, typename _Traits = char_traits<_CharT> > 18 class basic_istream; 19 20 template<typename _CharT, typename _Traits = char_traits<_CharT> > 21 class basic_ostream; 22 23 // 27.4.2 Class ios_base 24 typedef size_t streamsize; 25 26 class locale; 27 28 29 class ios_base 30 { 31 public: 32 33 #ifdef SWIG_NESTED_CLASSES 34 // 27.4.2.1.1 Class ios_base::failure 35 class failure : public exception 36 { 37 public: 38 explicit failure(const string& __str) throw(); 39 }; 40 #endif 41 42 // 27.4.2.1.2 Type ios_base::fmtflags 43 typedef int fmtflags; 44 // 27.4.2.1.2 Type fmtflags 45 static const fmtflags boolalpha ; 46 static const fmtflags dec ; 47 static const fmtflags fixed ; 48 static const fmtflags hex ; 49 static const fmtflags internal ; 50 static const fmtflags left ; 51 static const fmtflags oct ; 52 static const fmtflags right ; 53 static const fmtflags scientific ; 54 static const fmtflags showbase ; 55 static const fmtflags showpoint ; 56 static const fmtflags showpos ; 57 static const fmtflags skipws ; 58 static const fmtflags unitbuf ; 59 static const fmtflags uppercase ; 60 static const fmtflags adjustfield ; 61 static const fmtflags basefield ; 62 static const fmtflags floatfield ; 63 64 // 27.4.2.1.3 Type ios_base::iostate 65 typedef int iostate; 66 static const iostate badbit ; 67 static const iostate eofbit ; 68 static const iostate failbit ; 69 static const iostate goodbit ; 70 71 // 27.4.2.1.4 Type openmode 72 typedef int openmode; 73 static const openmode app ; 74 static const openmode ate ; 75 static const openmode binary ; 76 static const openmode in ; 77 static const openmode out ; 78 static const openmode trunc ; 79 80 // 27.4.2.1.5 Type seekdir 81 typedef int seekdir; 82 static const seekdir beg ; 83 static const seekdir cur ; 84 static const seekdir end ; 85 86 87 // Callbacks; 88 enum event 89 { 90 erase_event, 91 imbue_event, 92 copyfmt_event 93 }; 94 95 typedef void (*event_callback) (event, ios_base&, int); 96 97 void 98 register_callback(event_callback __fn, int __index); 99 100 // Fmtflags state: 101 inline fmtflags 102 flags() const ; 103 104 inline fmtflags 105 flags(fmtflags __fmtfl); 106 107 inline fmtflags 108 setf(fmtflags __fmtfl); 109 110 inline fmtflags 111 setf(fmtflags __fmtfl, fmtflags __mask); 112 113 inline void 114 unsetf(fmtflags __mask) ; 115 116 inline streamsize 117 precision() const ; 118 119 inline streamsize 120 precision(streamsize __prec); 121 122 inline streamsize 123 width() const ; 124 125 inline streamsize 126 width(streamsize __wide); 127 128 static bool 129 sync_with_stdio(bool __sync = true); 130 131 // Locales: 132 locale 133 imbue(const locale& __loc); 134 135 inline locale 136 getloc() const { return _M_ios_locale; } 137 138 // Storage: 139 static int 140 xalloc() throw(); 141 142 inline long& 143 iword(int __ix); 144 145 inline void*& 146 pword(int __ix); 147 148 // Destructor 149 ~ios_base(); 150 151 protected: 152 ios_base(); 153 154 //50. Copy constructor and assignment operator of ios_base 155 private: 156 ios_base(const ios_base&); 157 158 ios_base& 159 operator=(const ios_base&); 160 }; 161 162 template<typename _CharT, typename _Traits = char_traits<_CharT> > 163 class basic_ios : public ios_base 164 { 165 public: 166 // Types: 167 typedef _CharT char_type; 168 typedef typename _Traits::int_type int_type; 169 typedef typename _Traits::pos_type pos_type; 170 typedef typename _Traits::off_type off_type; 171 typedef _Traits traits_type; 172 173 public: 174 175 iostate 176 rdstate() const; 177 178 void 179 clear(iostate __state = goodbit); 180 181 void 182 setstate(iostate __state); 183 184 bool 185 good() const; 186 187 bool 188 eof() const; 189 190 bool 191 fail() const; 192 193 bool 194 bad() const; 195 196 iostate 197 exceptions() const; 198 199 void 200 exceptions(iostate __except); 201 202 // Constructor/destructor: 203 explicit 204 basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base(); 205 206 virtual 207 ~basic_ios() ; 208 209 // Members: 210 basic_ostream<_CharT, _Traits>* 211 tie() const; 212 213 basic_ostream<_CharT, _Traits>* 214 tie(basic_ostream<_CharT, _Traits>* __tiestr); 215 216 basic_streambuf<_CharT, _Traits>* 217 rdbuf() const; 218 219 basic_streambuf<_CharT, _Traits>* 220 rdbuf(basic_streambuf<_CharT, _Traits>* __sb); 221 222 basic_ios& 223 copyfmt(const basic_ios& __rhs); 224 225 char_type 226 fill() const; 227 228 char_type 229 fill(char_type __ch); 230 231 // Locales: 232 locale 233 imbue(const locale& __loc); 234 235 char 236 narrow(char_type __c, char __dfault) const; 237 238 char_type 239 widen(char __c) const; 240 241 protected: 242 // 27.4.5.1 basic_ios constructors 243 basic_ios(); 244 private: 245 ios_base(const ios_base&); 246 247 ios_base& 248 operator=(const ios_base&); 249 }; 250 251 } 252 253 namespace std { 254 %template(ios) basic_ios<char>; 255 #if defined(SWIG_WCHAR) 256 %template(wios) basic_ios<wchar_t>; 257 #endif 258 } 259 260 261