xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Classes | Functions | Variables
XrdSys Namespace Reference

Namespaces

 IOEvents
 

Classes

class  KernelBuffer
 
class  RAtomic
 
class  RAtomic< T * >
 
class  RAtomic< bool >
 

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
 

Detailed Description

IOEvents

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.

Function Documentation

ssize_t XrdSys::Move ( KernelBuffer &  kbuff,
char *&  ubuff 
)
inline

Utility function for moving a kernel buffer to user space.

See Also
KernelBuffer::ToUser

References XrdSys::KernelBuffer::ToUser().

ssize_t XrdSys::Move ( char *&  ubuff,
KernelBuffer &  kbuff,
size_t  length 
)
inline

Utility function for moving a user space buffer to kernel space.

See Also
KernelBuffer::FromUser

References XrdSys::KernelBuffer::FromUser().

ssize_t XrdSys::Read ( int  fd,
KernelBuffer &  buffer,
uint32_t  length,
int64_t  offset 
)
inline

Utility function for reading data from a file descriptor into a kernel buffer.

See Also
KernelBuffer::ReadFromFD

References XrdSys::KernelBuffer::ReadFromFD().

ssize_t XrdSys::Read ( int  fd,
KernelBuffer &  buffer,
uint32_t  length 
)
inline

Utility function for reading data from a file descriptor into a kernel buffer.

See Also
KernelBuffer::ReadFromFD

References XrdSys::KernelBuffer::ReadFromFD().

ssize_t XrdSys::Send ( int  fd,
KernelBuffer &  buffer 
)
inline

Utility function for sending data from a kernel buffer into a socket.

See Also
KernelBuffer::WriteToFD

References XrdSys::KernelBuffer::WriteToFD().

ssize_t XrdSys::Write ( int  fd,
KernelBuffer &  buffer,
int64_t  offset 
)
inline

Utility function for writing data from a kernel buffer into a file descriptor.

See Also
KernelBuffer::WriteToFD

References XrdSys::KernelBuffer::WriteToFD().

Variable Documentation

const int XrdSys::PageBits = 12
static
const int XrdSys::PageMask = 4095
static
const int XrdSys::PageSize = 4096
static