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_MMAPPEDFILE_H
10#define SQUID_MMAPPEDFILE_H
11
12#include "cbdata.h"
13#include "DiskIO/DiskFile.h"
14#include "DiskIO/IORequestor.h"
15
16class MmappedFile : public DiskFile
17{
19
20public:
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
35private:
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_MMAPPEDFILE_H */
52
~MmappedFile() override
Definition: MmappedFile.cc:64
bool ioInProgress() const override
we only support blocking I/O
Definition: MmappedFile.cc:215
int64_t maxOffset
enforced if not negative (to avoid crashes)
Definition: MmappedFile.h:44
RefCount< IORequestor > ioRequestor
Definition: MmappedFile.h:37
int getFD() const override
Definition: MmappedFile.h:29
bool error() const override
Definition: MmappedFile.cc:139
char const * path_
Definition: MmappedFile.h:36
void write(WriteRequest *) override
Definition: MmappedFile.cc:175
bool canWrite() const override
Definition: MmappedFile.cc:133
void read(ReadRequest *) override
Definition: MmappedFile.cc:145
void open(int flags, mode_t mode, RefCount< IORequestor > callback) override
Definition: MmappedFile.cc:72
int64_t minOffset
enforced if not negative (to preserve file headers)
Definition: MmappedFile.h:43
MmappedFile(char const *path)
Definition: MmappedFile.cc:56
void create(int flags, mode_t mode, RefCount< IORequestor > callback) override
Definition: MmappedFile.cc:102
CBDATA_CLASS(MmappedFile)
void doClose()
Definition: MmappedFile.cc:108
void close() override
Definition: MmappedFile.cc:118
bool canRead() const override
Definition: MmappedFile.cc:127
unsigned short mode_t
Definition: types.h:129

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors