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