MmappedFile.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 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_SRC_DISKIO_MMAPPED_MMAPPEDFILE_H
10 #define SQUID_SRC_DISKIO_MMAPPED_MMAPPEDFILE_H
11 
12 #include "cbdata.h"
13 #include "DiskIO/DiskFile.h"
14 #include "DiskIO/IORequestor.h"
15 
16 class MmappedFile : public DiskFile
17 {
19 
20 public:
21  MmappedFile(char const *path);
22  ~MmappedFile() override;
23  void open(int flags, mode_t mode, RefCount<IORequestor> callback) override;
24  void create(int flags, mode_t mode, RefCount<IORequestor> callback) override;
25  void read(ReadRequest *) override;
26  void write(WriteRequest *) override;
27  void close() override;
28  bool error() const override;
29  int getFD() const override { return fd;}
30 
31  bool canRead() const override;
32  bool canWrite() const override;
33  bool ioInProgress() const override;
34 
35 private:
36  char const *path_;
38  //RefCount<ReadRequest> readRequest;
39  //RefCount<WriteRequest> writeRequest;
40  int fd;
41 
42  // mmapped memory leads to SEGV and bus errors if it maps beyond file
43  int64_t minOffset;
44  int64_t maxOffset;
45 
46  bool error_;
47 
48  void doClose();
49 };
50 
51 #endif /* SQUID_SRC_DISKIO_MMAPPED_MMAPPEDFILE_H */
52 
void close() override
Definition: MmappedFile.cc:118
bool ioInProgress() const override
we only support blocking I/O
Definition: MmappedFile.cc:215
bool canWrite() const override
Definition: MmappedFile.cc:133
const char * path_
Definition: MmappedFile.h:36
bool canRead() const override
Definition: MmappedFile.cc:127
int64_t minOffset
enforced if not negative (to preserve file headers)
Definition: MmappedFile.h:43
void read(ReadRequest *) override
Definition: MmappedFile.cc:145
void open(int flags, mode_t mode, RefCount< IORequestor > callback) override
Definition: MmappedFile.cc:72
bool error() const override
Definition: MmappedFile.cc:139
RefCount< IORequestor > ioRequestor
Definition: MmappedFile.h:37
CBDATA_CLASS(MmappedFile)
~MmappedFile() override
Definition: MmappedFile.cc:64
int64_t maxOffset
enforced if not negative (to avoid crashes)
Definition: MmappedFile.h:44
void write(WriteRequest *) override
Definition: MmappedFile.cc:175
unsigned short mode_t
Definition: types.h:129
MmappedFile(char const *path)
Definition: MmappedFile.cc:56
int getFD() const override
Definition: MmappedFile.h:29
void doClose()
Definition: MmappedFile.cc:108
void create(int flags, mode_t mode, RefCount< IORequestor > callback) override
Definition: MmappedFile.cc:102

 

Introduction

Documentation

Support

Miscellaneous