1 /* 2 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors 3 * 4 * Squid software is distributed under GPLv2+ license and includes 5 * contributions from numerous individuals and organizations. 6 * Please see the COPYING and CONTRIBUTORS files for details. 7 */ 8 9 #ifndef SQUID_IOREQUESTOR_H 10 #define SQUID_IOREQUESTOR_H 11 12 #include "base/RefCount.h" 13 14 class ReadRequest; 15 16 class WriteRequest; 17 18 class IORequestor : public RefCountable 19 { 20 21 public: 22 typedef RefCount<IORequestor> Pointer; 23 virtual void ioCompletedNotification() = 0; 24 virtual void closeCompleted() = 0; 25 virtual void readCompleted(const char *buf, int len, int errflag, RefCount<ReadRequest>) = 0; 26 virtual void writeCompleted(int errflag, size_t len, RefCount<WriteRequest>) = 0; 27 }; 28 29 #endif /* SQUID_IOREQUESTOR_H */ 30 31