summaryrefslogtreecommitdiff
path: root/Lib/std/std_streambuf.i
blob: e17249135c33828aa0e2b72763cd27c0390b0102 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
%include <std_ios.i>
%{
#ifndef SWIG_STD_NOMODERN_STL
#include <streambuf>
#else
#include <streambuf.h>
#endif
%}

namespace std {

  template<typename _CharT, typename _Traits = char_traits<_CharT> >
  class basic_streambuf 
  {
  public:
    // Types:
    typedef _CharT 					char_type;
    typedef _Traits 					traits_type;
    typedef typename traits_type::int_type 		int_type;
    typedef typename traits_type::pos_type 		pos_type;
    typedef typename traits_type::off_type 		off_type;

  public:
    virtual 
    ~basic_streambuf();

    // Locales:
    locale 
    pubimbue(const locale &__loc);

    locale   
    getloc() const; 

    // Buffer and positioning:
    basic_streambuf<_CharT, _Traits>* 
    pubsetbuf(char_type* __s, streamsize __n);

    pos_type 
    pubseekoff(off_type __off, ios_base::seekdir __way, 
	       ios_base::openmode __mode = std::ios_base::in | std::ios_base::out);

    pos_type 
    pubseekpos(pos_type __sp,
	       ios_base::openmode __mode = std::ios_base::in | std::ios_base::out);

    int 
    pubsync() ;

    // Get and put areas:
    // Get area:
    streamsize 
    in_avail();

    int_type 
    snextc();

    int_type 
    sbumpc();

    int_type 
    sgetc();

    streamsize 
    sgetn(char_type* __s, streamsize __n);

    // Putback:
    int_type 
    sputbackc(char_type __c);

    int_type 
    sungetc();

    // Put area:
    int_type 
    sputc(char_type __c);

    streamsize 
    sputn(const char_type* __s, streamsize __n);

  protected:
    basic_streambuf();

  private:
    basic_streambuf(const basic_streambuf& other);

  }; 
}

namespace std {
  %template(streambuf) basic_streambuf<char>;
#if defined(SWIG_WCHAR)
  %template(wstreambuf) basic_streambuf<wchar_t>;
#endif
}