]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/DiskIO/DiskThreads/DiskThreads.h
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / DiskIO / DiskThreads / DiskThreads.h
index 8654257ed7a3f5b6263b2486a09faa3765269e31..8db5b35553ff0dd389e585d35d78795f50cc3050 100644 (file)
@@ -1,3 +1,11 @@
+/*
+ * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
 /*
  * DiskThreads.h
  *
 #ifndef __DISKTHREADS_H__
 #define __DISKTHREADS_H__
 
-#include "config.h"
 #include "dlink.h"
-#include "typedefs.h"
+#include "mem/forward.h"
 
-#ifdef AUFS_IO_THREADS
+/* this non-standard-conformant include is needed in order to have stat(2) and struct stat
+   properly defined on some systems (e.g. OpenBSD 5.4) */
+#if HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#if AUFS_IO_THREADS
 #define NUMTHREADS AUFS_IO_THREADS
 #else
 #define NUMTHREADS (Config.cacheSwap.n_configured*16)
@@ -43,24 +56,30 @@ typedef enum _squidaio_request_type squidaio_request_type;
 
 typedef void AIOCB(int fd, void *cbdata, const char *buf, int aio_return, int aio_errno);
 
-struct squidaio_result_t {
-    int aio_return;
-    int aio_errno;
-    enum _squidaio_request_type result_type;
-    void *_data;               /* Internal housekeeping */
-    void *data;                        /* Available to the caller */
+class squidaio_result_t
+{
+public:
+    int aio_return = 0;
+    int aio_errno = 0;
+    enum _squidaio_request_type result_type = _AIO_OP_NONE;
+    void *_data = nullptr;        /* Internal housekeeping */
+    void *data = nullptr;         /* Available to the caller */
 };
 
-struct squidaio_ctrl_t {
+class squidaio_ctrl_t
+{
+    MEMPROXY_CLASS(squidaio_ctrl_t);
+public:
+    squidaio_ctrl_t() : done_handler(NULL), free_func(NULL) {}
 
-    struct squidaio_ctrl_t *next;
-    int fd;
-    int operation;
+    squidaio_ctrl_t *next = nullptr;
+    int fd = 0;
+    int operation = 0;
     AIOCB *done_handler;
-    void *done_handler_data;
+    void *done_handler_data = nullptr;
     squidaio_result_t result;
-    int len;
-    char *bufp;
+    int len = 0;
+    char *bufp = nullptr;
     FREE *free_func;
     dlink_node node;
 };
@@ -100,25 +119,27 @@ int aioQueueSize(void);
 
 class DiskThreadsIOStrategy;
 
-struct AIOCounts {
-    int open_start;
-    int open_finish;
-    int close_start;
-    int close_finish;
-    int cancel;
-    int write_start;
-    int write_finish;
-    int read_start;
-    int read_finish;
-    int stat_start;
-    int stat_finish;
-    int unlink_start;
-    int unlink_finish;
-    int check_callback;
+class AIOCounts
+{
+public:
+    uint64_t open_start = 0;
+    uint64_t open_finish = 0;
+    uint64_t close_start = 0;
+    uint64_t close_finish = 0;
+    uint64_t cancel = 0;
+    uint64_t write_start = 0;
+    uint64_t write_finish = 0;
+    uint64_t read_start = 0;
+    uint64_t read_finish = 0;
+    uint64_t stat_start = 0;
+    uint64_t stat_finish = 0;
+    uint64_t unlink_start = 0;
+    uint64_t unlink_finish = 0;
+    uint64_t check_callback = 0;
 };
 
 extern AIOCounts squidaio_counts;
 extern dlink_list used_list;
 
-
 #endif
+