DiskdFile.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2017 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 79 Squid-side DISKD I/O functions. */
10 
11 #ifndef __STORE_DISKDFILE_H__
12 #define __STORE_DISKDFILE_H__
13 
14 #include "cbdata.h"
15 #include "DiskIO/DiskFile.h"
16 
17 class DiskdIOStrategy;
18 
19 struct diomsg;
20 
24 class DiskdFile : public DiskFile
25 {
27 
28 public:
29  DiskdFile(char const *path, DiskdIOStrategy *);
30  ~DiskdFile();
31  virtual void open(int flags, mode_t aMode, RefCount<IORequestor> callback);
32  virtual void create(int flags, mode_t aMode, RefCount<IORequestor> callback);
33  virtual void read(ReadRequest *);
34  virtual void write(WriteRequest *);
35  virtual void close();
36  virtual bool error() const;
37  virtual bool canRead() const;
38  virtual bool ioInProgress() const;
39 
40  /* Temporary */
41  int getID() const {return id;}
42 
43  void completed(diomsg *);
44 
45 private:
46  int id;
47  char const *path_;
51  void openDone(diomsg *);
52  void createDone (diomsg *);
53  void readDone (diomsg *);
54  void writeDone (diomsg *);
55  void closeDone (diomsg *);
56  int mode;
57  void notifyClient();
58  bool canNotifyClient() const;
59  void ioAway();
60  void ioCompleted();
61  size_t inProgressIOs;
62 };
63 
64 #endif
65 
~DiskdFile()
Definition: DiskdFile.cc:46
virtual bool error() const
Definition: DiskdFile.cc:175
RefCount< IORequestor > ioRequestor
Definition: DiskdFile.h:50
void const char HLPCB * callback
Definition: stub_helper.cc:16
virtual bool ioInProgress() const
Definition: DiskdFile.cc:404
Definition: diomsg.h:30
void openDone(diomsg *)
Definition: DiskdFile.cc:245
virtual void read(ReadRequest *)
Definition: DiskdFile.cc:118
void notifyClient()
Definition: DiskdFile.cc:198
DiskdFile(char const *path, DiskdIOStrategy *)
Definition: DiskdFile.cc:33
void ioAway()
Definition: DiskdFile.cc:314
void closeDone(diomsg *)
Definition: DiskdFile.cc:326
int getID() const
Definition: DiskdFile.h:41
char const * path_
Definition: DiskdFile.h:47
CBDATA_CLASS(DiskdFile)
int mode
Definition: DiskdFile.h:56
size_t inProgressIOs
Definition: DiskdFile.h:61
bool canNotifyClient() const
Definition: DiskdFile.cc:187
unsigned short mode_t
Definition: types.h:150
void writeDone(diomsg *)
Definition: DiskdFile.cc:376
virtual void close()
Definition: DiskdFile.cc:148
virtual void create(int flags, mode_t aMode, RefCount< IORequestor > callback)
Definition: DiskdFile.cc:84
void createDone(diomsg *)
Definition: DiskdFile.cc:262
bool errorOccured
Definition: DiskdFile.h:48
DiskdIOStrategy * IO
Definition: DiskdFile.h:49
void completed(diomsg *)
Definition: DiskdFile.cc:208
int id
Definition: DiskdFile.h:46
virtual void open(int flags, mode_t aMode, RefCount< IORequestor > callback)
Definition: DiskdFile.cc:53
void readDone(diomsg *)
Definition: DiskdFile.cc:347
virtual bool canRead() const
Definition: DiskdFile.cc:181
virtual void write(WriteRequest *)
Definition: DiskdFile.cc:279
void ioCompleted()
Definition: DiskdFile.cc:320

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors