]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/DiskIO/AIO/AIODiskIOStrategy.h
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
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.
9 #ifndef SQUID_SRC_DISKIO_AIO_AIODISKIOSTRATEGY_H
10 #define SQUID_SRC_DISKIO_AIO_AIODISKIOSTRATEGY_H
12 #if HAVE_DISKIO_MODULE_AIO
14 #include "DiskIO/AIO/async_io.h"
15 #include "DiskIO/DiskIOStrategy.h"
17 class AIODiskIOStrategy
: public DiskIOStrategy
22 ~AIODiskIOStrategy() override
;
24 bool shedLoad() override
;
25 /* What is the current load? 999 = 99.9% */
27 /* Return a handle for performing IO operations */
28 RefCount
<DiskFile
> newFile (char const *path
) override
;
29 /* flush all IO operations */
31 /** whether the IO Strategy can use unlinkd */
32 bool unlinkdUseful() const override
;
33 /* unlink a file by path */
34 void unlinkFile (char const *) override
;
36 /* perform any pending callbacks */
37 int callback() override
;
39 /* Init per-instance logic */
42 /* cachemgr output on the IO instance stats */
43 void statfs(StoreEntry
& sentry
)const override
;
44 /* module specific options */
45 ConfigOption
*getOptionTree() const override
;
46 /* a file descriptor */
48 /* queue of requests */
54 #endif /* HAVE_DISKIO_MODULE_AIO */
55 #endif /* SQUID_SRC_DISKIO_AIO_AIODISKIOSTRATEGY_H */