#include <UFSStoreState.h>
![Inheritance graph](classFs_1_1Ufs_1_1UFSStoreState__inherit__graph.png)
![Collaboration graph](classFs_1_1Ufs_1_1UFSStoreState__coll__graph.png)
Classes | |
class | _queued_read |
class | _queued_write |
Public Types | |
enum | CloseHow { wroteAll, writerGone, readerDone } |
typedef RefCount< StoreIOState > | Pointer |
typedef void | STRCB(void *their_data, const char *buf, ssize_t len, StoreIOState::Pointer self) |
typedef void | STIOCB(void *their_data, int errflag, StoreIOState::Pointer self) |
typedef RefCount< IORequestor > | Pointer |
Public Member Functions | |
UFSStoreState (SwapDir *SD, StoreEntry *anEntry, STIOCB *callback_, void *callback_data_) | |
~UFSStoreState () override | |
void | close (int how) override |
finish or abort swapping per CloseHow More... | |
void | closeCompleted () override |
void | ioCompletedNotification () override |
void | readCompleted (const char *buf, int len, int errflag, RefCount< ReadRequest >) override |
void | writeCompleted (int errflag, size_t len, RefCount< WriteRequest >) override |
void | read_ (char *buf, size_t size, off_t offset, STRCB *callback, void *callback_data) override |
bool | write (char const *buf, size_t size, off_t offset, FREE *free_func) override |
void * | operator new (size_t amount) |
void | operator delete (void *address) |
off_t | offset () const |
bool | touchingStoreEntry () const |
Public Attributes | |
RefCount< DiskFile > | theFile |
bool | opening |
bool | creating |
bool | closing |
bool | reading |
bool | writing |
sdirno | swap_dirn |
sfileno | swap_filen |
StoreEntry * | e |
mode_t | mode |
off_t | offset_ |
number of bytes written or read for this entry so far More... | |
STIOCB * | callback |
void * | callback_data |
struct { | |
STRCB * callback | |
void * callback_data | |
} | read |
bool | write_draining |
bool | try_closing |
Protected Member Functions | |
virtual void | doCloseCallback (int errflag) |
bool | kickReadQueue () |
void | drainWriteQueue () |
void | tryClosing () |
Protected Attributes | |
std::queue< Ufs::UFSStoreState::_queued_read > | pending_reads |
std::queue< Ufs::UFSStoreState::_queued_write > | pending_writes |
struct { | |
bool write_draining | |
bool try_closing | |
} | flags |
char * | read_buf |
Private Member Functions | |
CBDATA_CLASS (UFSStoreState) | |
void | openDone () |
void | freePending () |
void | doWrite () |
Detailed Description
Definition at line 23 of file UFSStoreState.h.
Member Typedef Documentation
◆ Pointer [1/2]
|
inherited |
Definition at line 21 of file StoreIOState.h.
◆ Pointer [2/2]
|
inherited |
Definition at line 22 of file IORequestor.h.
◆ STIOCB
|
inherited |
Definition at line 39 of file StoreIOState.h.
◆ STRCB
|
inherited |
Definition at line 29 of file StoreIOState.h.
Member Enumeration Documentation
◆ CloseHow
|
inherited |
Enumerator | |
---|---|
wroteAll | success: caller supplied all data it wanted to swap out |
writerGone | failure: caller left before swapping out everything |
readerDone | success or failure: either way, stop swapping in |
Definition at line 57 of file StoreIOState.h.
Constructor & Destructor Documentation
◆ UFSStoreState()
Fs::Ufs::UFSStoreState::UFSStoreState | ( | SwapDir * | SD, |
StoreEntry * | anEntry, | ||
STIOCB * | callback_, | ||
void * | callback_data_ | ||
) |
Definition at line 327 of file UFSStoreState.cc.
References StoreIOState::e, flags, Store::Disk::index, StoreIOState::swap_dirn, StoreIOState::swap_filen, and StoreEntry::swap_filen.
◆ ~UFSStoreState()
|
override |
Definition at line 346 of file UFSStoreState.cc.
References assert.
Member Function Documentation
◆ CBDATA_CLASS()
|
private |
◆ close()
|
overridevirtual |
Implements StoreIOState.
Definition at line 115 of file UFSStoreState.cc.
◆ closeCompleted()
|
overridevirtual |
Implements IORequestor.
Definition at line 88 of file UFSStoreState.cc.
References asHex(), assert, debugs, DISK_ERROR, and DISK_OK.
◆ doCloseCallback()
|
protectedvirtual |
Definition at line 298 of file UFSStoreState.cc.
References cbdataReferenceValidDone, and debugs.
◆ doWrite()
|
private |
Definition at line 192 of file UFSStoreState.cc.
References assert, DBG_IMPORTANT, debugs, and MYNAME.
◆ drainWriteQueue()
|
protected |
Definition at line 393 of file UFSStoreState.cc.
◆ freePending()
|
private |
Definition at line 353 of file UFSStoreState.cc.
References debugs.
◆ ioCompletedNotification()
|
overridevirtual |
Implements IORequestor.
Definition at line 27 of file UFSStoreState.cc.
References asHex(), assert, closing, creating, debugs, DiskFile::error(), FILE_MODE, StoreIOState::mode, openDone(), opening, StoreIOState::swap_dirn, StoreIOState::swap_filen, theFile, and tryClosing().
◆ kickReadQueue()
|
protected |
Definition at line 365 of file UFSStoreState.cc.
References cbdataReferenceValidDone, and debugs.
◆ offset()
|
inlineinherited |
Definition at line 48 of file StoreIOState.h.
References StoreIOState::offset_.
Referenced by store_client::fileRead(), MemObject::objectBytesOnDisk(), MemObject::stat(), and StoreEntry::swapOut().
◆ openDone()
|
private |
Definition at line 63 of file UFSStoreState.cc.
References DBG_CRITICAL, debugs, and FILE_MODE.
Referenced by ioCompletedNotification().
◆ operator delete()
|
inherited |
Definition at line 25 of file StoreIOState.cc.
References assert.
◆ operator new()
|
inherited |
Definition at line 18 of file StoreIOState.cc.
References assert.
◆ read_()
|
overridevirtual |
Implements StoreIOState.
Definition at line 124 of file UFSStoreState.cc.
References asHex(), assert, cbdataReference, debugs, and size.
◆ readCompleted()
|
overridevirtual |
Implements IORequestor.
Definition at line 229 of file UFSStoreState.cc.
References asHex(), assert, cbdataReferenceValidDone, debugs, and RefCount< C >::getRaw().
◆ touchingStoreEntry()
|
inherited |
Definition at line 52 of file StoreIOState.cc.
References StoreIOState::e, StoreIOState::swap_filen, and StoreEntry::swap_filen.
Referenced by Rock::SwapDir::writeCompleted(), and Rock::SwapDir::writeError().
◆ tryClosing()
|
protected |
Definition at line 429 of file UFSStoreState.cc.
References debugs.
Referenced by ioCompletedNotification().
◆ write()
|
overridevirtual |
write the given buffer and free it when it is no longer needed
- Parameters
-
offset zero for the very first write and -1 for all other writes
- Return values
-
false if write failed (callback has been or will be called)
Implements StoreIOState.
Definition at line 158 of file UFSStoreState.cc.
References asHex(), DBG_IMPORTANT, debugs, INDEXSD, Store::Disk::maxObjectSize(), and size.
◆ writeCompleted()
|
overridevirtual |
Implements IORequestor.
Definition at line 272 of file UFSStoreState.cc.
Member Data Documentation
◆ callback [1/2]
|
inherited |
Definition at line 76 of file StoreIOState.h.
◆ callback [2/2]
|
inherited |
Definition at line 80 of file StoreIOState.h.
◆ callback_data
|
inherited |
Definition at line 77 of file StoreIOState.h.
Referenced by StoreIOState::~StoreIOState().
◆ closing
bool Fs::Ufs::UFSStoreState::closing |
Definition at line 39 of file UFSStoreState.h.
Referenced by ioCompletedNotification().
◆ creating
bool Fs::Ufs::UFSStoreState::creating |
Definition at line 38 of file UFSStoreState.h.
Referenced by Fs::Ufs::UFSStrategy::create(), and ioCompletedNotification().
◆ e
|
inherited |
Definition at line 73 of file StoreIOState.h.
Referenced by Rock::IoState::IoState(), StoreIOState::touchingStoreEntry(), UFSStoreState(), Rock::SwapDir::writeCompleted(), and Rock::SwapDir::writeError().
◆ flags
struct { ... } Fs::Ufs::UFSStoreState::flags |
Referenced by UFSStoreState().
◆ mode
|
inherited |
Definition at line 74 of file StoreIOState.h.
Referenced by Fs::Ufs::UFSStrategy::create(), ioCompletedNotification(), and Fs::Ufs::UFSStrategy::open().
◆ offset_
|
inherited |
Definition at line 75 of file StoreIOState.h.
Referenced by StoreIOState::offset().
◆ opening
bool Fs::Ufs::UFSStoreState::opening |
Definition at line 37 of file UFSStoreState.h.
Referenced by ioCompletedNotification(), and Fs::Ufs::UFSStrategy::open().
◆ pending_reads
|
protected |
Definition at line 72 of file UFSStoreState.h.
◆ pending_writes
|
protected |
Definition at line 102 of file UFSStoreState.h.
◆ read
struct { ... } StoreIOState::read |
Referenced by StoreIOState::StoreIOState(), and StoreIOState::~StoreIOState().
◆ read_buf
|
protected |
Definition at line 126 of file UFSStoreState.h.
◆ reading
bool Fs::Ufs::UFSStoreState::reading |
Definition at line 40 of file UFSStoreState.h.
◆ swap_dirn
|
inherited |
Definition at line 71 of file StoreIOState.h.
Referenced by ioCompletedNotification(), storeSwapOutStart(), and UFSStoreState().
◆ swap_filen
|
inherited |
Definition at line 72 of file StoreIOState.h.
Referenced by Fs::Ufs::UFSStrategy::create(), ioCompletedNotification(), storeSwapOutStart(), StoreIOState::touchingStoreEntry(), UFSStoreState(), Rock::SwapDir::writeCompleted(), and Rock::SwapDir::writeError().
◆ theFile
Definition at line 36 of file UFSStoreState.h.
Referenced by Fs::Ufs::UFSStrategy::create(), ioCompletedNotification(), and Fs::Ufs::UFSStrategy::open().
◆ try_closing
bool Fs::Ufs::UFSStoreState::try_closing |
DPW 2006-05-24 The try_closing flag is set by UFSStoreState::tryClosing() when UFSStoreState wants to close the file, but cannot because of pending I/Os. If set, UFSStoreState will try to close again in the I/O callbacks.
Definition at line 120 of file UFSStoreState.h.
◆ write_draining
bool Fs::Ufs::UFSStoreState::write_draining |
DPW 2006-05-24 the write_draining flag is used to avoid recursion inside the UFSStoreState::drainWriteQueue() method.
Definition at line 112 of file UFSStoreState.h.
◆ writing
bool Fs::Ufs::UFSStoreState::writing |
Definition at line 41 of file UFSStoreState.h.
The documentation for this class was generated from the following files:
- src/fs/ufs/UFSStoreState.h
- src/fs/ufs/UFSStoreState.cc
Introduction
- About Squid
- Why Squid?
- Squid Developers
- How to Donate
- How to Help Out
- Getting Squid
- Squid Source Packages
- Squid Deployment Case-Studies
- Squid Software Foundation
Documentation
- Quick Setup
- Configuration:
- FAQ and Wiki
- Guide Books:
- Non-English
- More...
Support
- Security Advisories
- Bugzilla Database
- Mailing lists
- Contacting us
- Commercial services
- Project Sponsors
- Squid-based products