dummy_io.h (3162B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 3 * You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #ifndef dummy_io_h__ 6 #define dummy_io_h__ 7 8 #include "prerror.h" 9 #include "prio.h" 10 11 #include "nss_scoped_ptrs.h" 12 13 class DummyIOLayerMethods { 14 public: 15 static ScopedPRFileDesc CreateFD(PRDescIdentity id, 16 DummyIOLayerMethods *methods); 17 18 virtual PRStatus Close(PRFileDesc *f); 19 virtual int32_t Read(PRFileDesc *f, void *buf, int32_t length); 20 virtual int32_t Write(PRFileDesc *f, const void *buf, int32_t length); 21 virtual int32_t Available(PRFileDesc *f); 22 virtual int64_t Available64(PRFileDesc *f); 23 virtual PRStatus Sync(PRFileDesc *f); 24 virtual int32_t Seek(PRFileDesc *f, int32_t offset, PRSeekWhence how); 25 virtual int64_t Seek64(PRFileDesc *f, int64_t offset, PRSeekWhence how); 26 virtual PRStatus FileInfo(PRFileDesc *f, PRFileInfo *info); 27 virtual PRStatus FileInfo64(PRFileDesc *f, PRFileInfo64 *info); 28 virtual int32_t Writev(PRFileDesc *f, const PRIOVec *iov, int32_t iov_size, 29 PRIntervalTime to); 30 virtual PRStatus Connect(PRFileDesc *f, const PRNetAddr *addr, 31 PRIntervalTime to); 32 virtual PRFileDesc *Accept(PRFileDesc *sd, PRNetAddr *addr, 33 PRIntervalTime to); 34 virtual PRStatus Bind(PRFileDesc *f, const PRNetAddr *addr); 35 virtual PRStatus Listen(PRFileDesc *f, int32_t depth); 36 virtual PRStatus Shutdown(PRFileDesc *f, int32_t how); 37 virtual int32_t Recv(PRFileDesc *f, void *buf, int32_t buflen, int32_t flags, 38 PRIntervalTime to); 39 virtual int32_t Send(PRFileDesc *f, const void *buf, int32_t amount, 40 int32_t flags, PRIntervalTime to); 41 virtual int32_t Recvfrom(PRFileDesc *f, void *buf, int32_t amount, 42 int32_t flags, PRNetAddr *addr, PRIntervalTime to); 43 virtual int32_t Sendto(PRFileDesc *f, const void *buf, int32_t amount, 44 int32_t flags, const PRNetAddr *addr, 45 PRIntervalTime to); 46 virtual int16_t Poll(PRFileDesc *f, int16_t in_flags, int16_t *out_flags); 47 virtual int32_t AcceptRead(PRFileDesc *sd, PRFileDesc **nd, PRNetAddr **raddr, 48 void *buf, int32_t amount, PRIntervalTime t); 49 virtual int32_t TransmitFile(PRFileDesc *sd, PRFileDesc *f, 50 const void *headers, int32_t hlen, 51 PRTransmitFileFlags flags, PRIntervalTime t); 52 virtual PRStatus Getpeername(PRFileDesc *f, PRNetAddr *addr); 53 virtual PRStatus Getsockname(PRFileDesc *f, PRNetAddr *addr); 54 virtual PRStatus Getsockoption(PRFileDesc *f, PRSocketOptionData *opt); 55 virtual PRStatus Setsockoption(PRFileDesc *f, const PRSocketOptionData *opt); 56 virtual int32_t Sendfile(PRFileDesc *out, PRSendFileData *in, 57 PRTransmitFileFlags flags, PRIntervalTime to); 58 virtual PRStatus ConnectContinue(PRFileDesc *f, int16_t flags); 59 virtual int32_t Reserved(PRFileDesc *f); 60 }; 61 62 #endif // dummy_io_h__