📄 wyregfile.h
字号:
/* Copyright is licensed under GNU LGPL. by I.J.Wang 2003 Documentation in file wyregfile.3wy*/#ifndef WYREGFILE_H__#define WYREGFILE_H__#define WYREGFILE_VERSION 31#include "wybyteflow.h"// This function may be cancellation point on different systems//off_t wyc_lseek(int fd, off_t offset, int whence);int wyc_ftruncate(int fd, off_t length);int wyc_mkstemp(char *temp);class WyRegFile;class WyChrFile;class WyTerminal;class WyFifoFile;class WySockFile;class WyRegFile : public WyByteFlow { static Wy__FtBits cftbits(void) WY__NOTHROW__; static const off_t DefaultPos=0; off_t _pos; // Hidden const WyRegFile & operator =(const WyRegFile &); bool operator==(const WyRegFile&) const; bool operator!=(const WyRegFile&) const; mode_t ftype(void) const WY__TSPC(); // Hidden WyRet _fsync(void); WyRet _fdatasync(void); WyRet _tcdrain(void); bool _isatty(void) const; // Hidden (for compile time rule-out) //WyRegFile(const WyRegFile&); WyRegFile(const WyChrFile&); WyRegFile(const WyTerminal&); WyRegFile(const WyFifoFile&); WyRegFile(const WySockFile&); //WyRet reset(const WyRegFile&); WyRet reset(const WyChrFile&); WyRet reset(const WyTerminal&); WyRet reset(const WyFifoFile&); WyRet reset(const WySockFile&); public: static const char class_name[]; WY_THROW_REPLY; WyRegFile(); explicit // no implicit conversion WyRegFile(WyFileHandle fh); WyRegFile(const WySysFile& bf); WyRegFile(const char* pathname,int f); WyRegFile(const WyStr& pathname,int f); WyRegFile(const WyRegFile& regf); // [Move Constructor] // // Note: regf must be whole object except in initialization list // WyRegFile(WyRegFile& regf, Wy::ByMove_t) WY__TSPC(); virtual ~WyRegFile() {}; // [Derived] //bool is_default(void) const WY__TSPC(); //WyFileHandle fh(void) const WY__TSPC(); //WyRet stat(WyFileStat& filestat) const; // [Override] virtual WyRet reset(void); virtual WyRet reset(WyFileHandle fh); virtual WyRet reset(const WySysFile& regf); virtual WyRet reset(const char* pathname,int f); virtual WyRet reset(const WyStr& pathname,int f); // [Override] virtual WyRet _swap(WySysFile& regf) WY__TSPC(); virtual WyRegFile* _alloc(WyRet&) const; // [Override] virtual WyRet read(void *buf, size_t count, size_t &n_read); virtual WyRet read(WyStr& buf, size_t count, size_t &n_read); // [Override] virtual WyRet write(const void *, size_t, size_t&); virtual WyRet write(WyCSeg, size_t&); virtual WyRet write(const WyStr&, size_t&); // [Add] off_t pos(void) const; virtual void set_pos(off_t ofst); virtual WyRet seek_end(void); virtual WyRet resize(off_t length); // [Added] virtual WyRet _read_till(void *buf, size_t count, size_t& n_read,char); virtual WyRet _read_till(WyStr &buf,size_t count, size_t& n_read,char); virtual WyRet fsync(void); virtual WyRet fdatasync(void); static WyRet create(WyRegFile&,const char*,int,mode_t); static WyRet create(WyRegFile&,const WyStr&,int,mode_t); static WyRet create_tmpfile(WyRegFile&,WyStr&); static WyRet wy_pread(Wy__TypeFD fd, void *buf, size_t count, size_t& n_read, off_t pos); static WyRet wy_max_pread(Wy__TypeFD fd, void *buf, size_t count, size_t& n_read, off_t pos); static WyRet wy_pwrite(Wy__TypeFD fd, const void *buf, size_t count, size_t &n_written,off_t pos);};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -