xrootd
|
Namespaces | |
namespace | IOEvents |
Classes | |
class | KernelBuffer |
class | RAtomic |
class | RAtomic< bool > |
class | RAtomic< T * > |
struct | shm |
struct | shm_error |
Functions | |
ssize_t | Read (int fd, KernelBuffer &buffer, uint32_t length, int64_t offset) |
ssize_t | Read (int fd, KernelBuffer &buffer, uint32_t length) |
ssize_t | Write (int fd, KernelBuffer &buffer, int64_t offset) |
ssize_t | Send (int fd, KernelBuffer &buffer) |
ssize_t | Move (KernelBuffer &kbuff, char *&ubuff) |
ssize_t | Move (char *&ubuff, KernelBuffer &kbuff, size_t length) |
Variables | |
static const int | PageSize = 4096 |
static const int | PageMask = 4095 |
static const int | PageBits = 12 |
The classes here define a simple I/O event polling architecture suitable for use with non-blocking devices. As it implements an event model, it is not considered a high performance interface. For increased performance, you need to use multiple polling event loops which effectively implements a limited thread model for handling events. The implementation here is similar to libEvent with better handling of timeouts and I/O polling resumption.
While, channels are multi-thread safe, they cannot interlock with the state of their file descriptor. You must first disable (via SetFD()) or delete the channel before closing its associated file descriptor. This is the only safe way to keep channels and their file descriptors synchronized.
|
inline |
Utility function for moving a user space buffer to kernel space.
|
inline |
Utility function for moving a kernel buffer to user space.
|
inline |
Utility function for reading data from a file descriptor into a kernel buffer.
|
inline |
Utility function for reading data from a file descriptor into a kernel buffer.
|
inline |
Utility function for sending data from a kernel buffer into a socket.
|
inline |
Utility function for writing data from a kernel buffer into a file descriptor.
|
static |
|
static |
|
static |
Referenced by XrdOssCsiCrcUtils::crc32c_combine(), XrdOssCsiCrcUtils::crc32c_extendwith_zero(), XrdOssCsiCrcUtils::crc32c_split1(), XrdOssCsiCrcUtils::crc32c_split2(), XrdOssCsiPages::CRCMismatchError(), XrdCl::EcPgReadResponseHandler::HandleResponse(), XrdCl::AsyncPageReader::InitIOV(), XrdCl::XRootDMsgHandler::NbPgPerRsp(), and XrdOssCsiPages::PageReadError().