]> git.ipfire.org Git - thirdparty/squid.git/blob - src/DiskIO/DiskThreads/CommIO.h
SourceLayout: shuffle CommIO into DiskThreads library
[thirdparty/squid.git] / src / DiskIO / DiskThreads / CommIO.h
1 #ifndef SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H
2 #define SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H
3
4 #include "fde.h"
5
6 class CommIO
7 {
8
9 public:
10 static inline void NotifyIOCompleted();
11 static void ResetNotifications();
12 static void Initialise();
13 static void NotifyIOClose();
14
15 private:
16 static void NULLFDHandler(int, void *);
17 static void FlushPipe();
18 static bool Initialised;
19 static bool DoneSignalled;
20 static int DoneFD;
21 static int DoneReadFD;
22 };
23
24
25 /* Inline code. TODO: make structued approach to inlining */
26 void
27 CommIO::NotifyIOCompleted()
28 {
29 if (!Initialised)
30 Initialise();
31
32 if (!DoneSignalled) {
33 DoneSignalled = true;
34 FD_WRITE_METHOD(DoneFD, "!", 1);
35 }
36 };
37
38 #endif /* SQUID_SRC_DISKIO_DISKTHREADS_COMMIO_H */