00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef _CPP_BASIC_FILE
00035 #define _CPP_BASIC_FILE 1
00036
00037 #pragma GCC system_header
00038
00039 #include <bits/c++config.h>
00040 #include <bits/std_ios.h>
00041
00042 namespace std
00043 {
00044
00045
00046
00047
00048
00049
00050 template<typename _CharT>
00051 struct __basic_file_base: public __c_file_type
00052 {
00053 virtual
00054 ~__basic_file_base() { };
00055
00056 virtual int
00057 overflow(int __c = EOF) = 0;
00058
00059 virtual int
00060 underflow() = 0;
00061
00062 virtual int
00063 uflow() = 0;
00064
00065 virtual int
00066 pbackfail(int __c) = 0;
00067
00068 virtual streamsize
00069 xsputn(const _CharT* __s, streamsize __n) = 0;
00070
00071 virtual streamsize
00072 xsgetn(_CharT* __s, streamsize __n) = 0;
00073
00074 virtual streamoff
00075 seekoff(streamoff __off, ios_base::seekdir __way,
00076 ios_base::openmode __mode = ios_base::in | ios_base::out) = 0;
00077
00078 virtual streamoff
00079 seekpos(streamoff __pos,
00080 ios_base::openmode __mode = ios_base::in | ios_base::out) = 0;
00081
00082 virtual streambuf*
00083 setbuf(_CharT* __b, int __len) = 0;
00084
00085 virtual int
00086 sync() = 0;
00087
00088 virtual int
00089 doallocate() = 0;
00090
00091 virtual streamsize
00092 sys_read(_CharT* __s, streamsize __n) = 0;
00093
00094 virtual streamsize
00095 sys_write(const _CharT* __s, streamsize __n) = 0;
00096
00097 virtual streamoff
00098 sys_seek(streamoff __off, ios_base::seekdir __way) = 0;
00099
00100 virtual int
00101 sys_close() = 0;
00102
00103 virtual int
00104 sys_stat(void* __v) = 0;
00105
00106 virtual int
00107 showmanyc() = 0;
00108
00109 virtual void
00110 imbue(void* __v) = 0;
00111 };
00112
00113
00114
00115
00116 template<typename _CharT>
00117 #ifdef _GLIBCPP_BASIC_FILE_INHERITANCE
00118 class __basic_file: public __basic_file_base<_CharT>
00119 #else
00120 class __basic_file
00121 #endif
00122 {
00123 #if _GLIBCPP_BASIC_FILE_ENCAPSULATION
00124 __c_file_type* _M_cfile;
00125 bool _M_cfile_created;
00126 #else
00127 # ifdef _GLIBCPP_USE_WCHAR_T
00128 __c_wfile_type _M_wfile;
00129 # endif
00130 #endif
00131
00132 public:
00133 __basic_file(__c_lock* __lock = 0);
00134
00135 void
00136 _M_open_mode(ios_base::openmode __mode, int& __p_mode, int& __rw_mode,
00137 char* __c_mode);
00138
00139
00140 __basic_file*
00141 open(const char* __name, ios_base::openmode __mode, int __prot = 0664);
00142
00143
00144
00145
00146
00147 __basic_file*
00148 sys_open(__c_file_type* __file, ios_base::openmode __mode);
00149
00150 _CharT
00151 sys_getc();
00152
00153 _CharT
00154 sys_ungetc(_CharT);
00155
00156 __basic_file*
00157 close();
00158
00159 bool
00160 is_open();
00161
00162
00163
00164
00165
00166 virtual
00167 ~__basic_file();
00168
00169 virtual int
00170 overflow(int __c = EOF);
00171
00172 virtual int
00173 underflow();
00174
00175 virtual int
00176 uflow();
00177
00178 virtual int
00179 pbackfail(int __c);
00180
00181
00182
00183
00184 virtual streamsize
00185 xsputn(const _CharT* __s, streamsize __n);
00186
00187
00188
00189
00190 virtual streamsize
00191 xsgetn(_CharT* __s, streamsize __n);
00192
00193
00194
00195
00196 virtual streamoff
00197 seekoff(streamoff __off, ios_base::seekdir __way,
00198 ios_base::openmode __mode = ios_base::in | ios_base::out);
00199
00200
00201
00202
00203 virtual streamoff
00204 seekpos(streamoff __pos,
00205 ios_base::openmode __mode = ios_base::in | ios_base::out);
00206
00207 virtual streambuf*
00208 setbuf(_CharT* __b, int __len);
00209
00210 virtual int
00211 sync();
00212
00213 virtual int
00214 doallocate();
00215
00216
00217
00218
00219 virtual streamsize
00220 sys_read(_CharT* __s, streamsize __n);
00221
00222
00223
00224
00225 virtual streamsize
00226 sys_write(const _CharT* __s, streamsize __n);
00227
00228
00229
00230
00231 virtual streamoff
00232 sys_seek(streamoff __off, ios_base::seekdir __way);
00233
00234 virtual int
00235 sys_close();
00236
00237 virtual int
00238 sys_stat(void* __v);
00239
00240 virtual int
00241 showmanyc();
00242
00243 virtual void
00244 imbue(void* __v);
00245 };
00246 }
00247
00248
00249
00250 #include <bits/basic_file_model.h>
00251
00252 #endif // _CPP_BASIC_FILE