]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/DiskIO/Mmapped/MmappedFile.h
1 #ifndef SQUID_MMAPPEDFILE_H
2 #define SQUID_MMAPPEDFILE_H
5 #include "DiskIO/DiskFile.h"
6 #include "DiskIO/IORequestor.h"
8 class MmappedFile
: public DiskFile
12 void *operator new(size_t);
13 void operator delete(void *);
14 MmappedFile(char const *path
);
16 virtual void open(int flags
, mode_t mode
, RefCount
<IORequestor
> callback
);
17 virtual void create(int flags
, mode_t mode
, RefCount
<IORequestor
> callback
);
18 virtual void read(ReadRequest
*);
19 virtual void write(WriteRequest
*);
21 virtual bool error() const;
22 virtual int getFD() const { return fd
;}
24 virtual bool canRead() const;
25 virtual bool canWrite() const;
26 virtual bool ioInProgress() const;
29 CBDATA_CLASS(MmappedFile
);
32 RefCount
<IORequestor
> ioRequestor
;
33 //RefCount<ReadRequest> readRequest;
34 //RefCount<WriteRequest> writeRequest;
37 // mmapped memory leads to SEGV and bus errors if it maps beyond file
38 int64_t minOffset
; ///< enforced if not negative (to preserve file headers)
39 int64_t maxOffset
; ///< enforced if not negative (to avoid crashes)
46 #endif /* SQUID_MMAPPEDFILE_H */