📄 wysockfile.h
字号:
/* Copyright is licensed under GNU LGPL. by I.J.Wang 2003 documentation is in file wysockfile.3wy*/#ifndef WYSOCKFILE_H__#define WYSOCKFILE_H__#define WYSOCKFILE_VERSION 31#include "wybyteflow.h"#include "wy_sockaddr.h"#include <sys/types.h>#include <sys/socket.h>class WyRegFile;class WyChrFile;class WyTerminal;class WyFifoFile;class WySockFile;class WySockFile : public WyByteFlow { static Wy__FtBits cftbits(void) WY__NOTHROW__; static const int DefaultFamily=PF_UNSPEC; int _family; // Hidden const WySockFile &operator=(const WySockFile &rhs); bool operator==(const WySockFile&) const; bool operator!=(const WySockFile&) 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) WySockFile(const WyRegFile&); WySockFile(const WyChrFile&); WySockFile(const WyTerminal&); WySockFile(const WyFifoFile&); //WySockFile(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; WySockFile(); explicit // no implicit conversion WySockFile(WyFileHandle fh); WySockFile(const WySysFile& skf); //[TBD] //WySockFile(const char* pathname,int f); //WySockFile(const WyStr& pathname,int f); WySockFile(int domain, int type, int proto=0); WySockFile(const WySockFile& skf); // [Move Constructor] // // Note: skf must be whole object except in initialization list // WySockFile(WySockFile& skf, Wy::ByMove_t) WY__TSPC(); //virtual ~WySockFile(); // [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& skf); //[Hidden] // // Note: Access these member from base gets an error (implicitly disabled) // //virtual WyRet reset(const char* pathname,int f); //virtual WyRet reset(const WyStr& pathname,int f); // [Added] virtual WyRet reset(int domain, int type, int proto=0); // [Override] virtual WyRet _swap(WySysFile& f) WY__TSPC(); virtual WySockFile* _alloc(WyRet&) const; // [Derived] //virtual WyRet read(void *, size_t, size_t&); //virtual WyRet read(WyStr&, size_t, size_t&); //virtual WyRet write(const void *, size_t count, size_t&) //virtual WyRet write(WyCSeg, size_t&); //virtual WyRet write(const WyStr&, size_t&); // [Added] int family(void) const WY__TSPC(); WyRet sockname(Wy_SockAddr& addr) const; WyRet peername(Wy_SockAddr& addr) const; virtual WyRet shutdown(int how); virtual WyRet bind(const Wy_SockAddr& addr); virtual WyRet listen(int backlog); virtual WyRet accept(WySockFile &skt, Wy_SockAddr &addr); virtual WyRet connect(const Wy_SockAddr& peer_addr); virtual WyRet sendto(const void* msg, size_t len, int flags, const Wy_SockAddr* to, size_t& n_sent); virtual WyRet recvfrom(void* buf, size_t blen, int flags, Wy_SockAddr* from, size_t& n_recv); static WyRet sockpair(int domain, int type, int protocol, WySockFile& s1, WySockFile& s2);};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -