Squid Web Cache master
Loading...
Searching...
No Matches
BlockingFile.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2025 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/* DEBUG: section 47 Store Directory Routines */
10
11#ifndef SQUID_SRC_DISKIO_BLOCKING_BLOCKINGFILE_H
12#define SQUID_SRC_DISKIO_BLOCKING_BLOCKINGFILE_H
13
14#include "cbdata.h"
15#include "DiskIO/DiskFile.h"
16#include "DiskIO/IORequestor.h"
17#include "typedefs.h" //DRCB, DWCB
18
19class BlockingFile : public DiskFile
20{
22
23public:
24 BlockingFile(char const *path);
25 ~BlockingFile() override;
26 void open(int flags, mode_t mode, RefCount<IORequestor> callback) override;
27 void create(int flags, mode_t mode, RefCount<IORequestor> callback) override;
28 void read(ReadRequest *) override;
29 void write(WriteRequest *) override;
30 void close() override;
31 bool error() const override;
32 int getFD() const override { return fd;}
33
34 bool canRead() const override;
35 bool ioInProgress() const override;
36
37private:
38 static DRCB ReadDone;
40 int fd;
41 bool closed;
42 void error (bool const &);
43 bool error_;
44 char const *path_;
48 void doClose();
49 void readDone(int fd, const char *buf, int len, int errflag);
50 void writeDone(int fd, int errflag, size_t len);
51};
52
53#endif /* SQUID_SRC_DISKIO_BLOCKING_BLOCKINGFILE_H */
54
void write(WriteRequest *) override
void readDone(int fd, const char *buf, int len, int errflag)
RefCount< ReadRequest > readRequest
void create(int flags, mode_t mode, RefCount< IORequestor > callback) override
char const * path_
RefCount< WriteRequest > writeRequest
RefCount< IORequestor > ioRequestor
bool error() const override
bool canRead() const override
bool ioInProgress() const override
void read(ReadRequest *) override
int getFD() const override
void close() override
static DWCB WriteDone
void open(int flags, mode_t mode, RefCount< IORequestor > callback) override
CBDATA_CLASS(BlockingFile)
~BlockingFile() override
void writeDone(int fd, int errflag, size_t len)
static DRCB ReadDone
void DRCB(int, const char *buf, int size, int errflag, void *data)
Definition typedefs.h:16
void DWCB(int, int, size_t, void *)
Definition typedefs.h:18
unsigned short mode_t
Definition types.h:129