Public Member Functions | |
QFileDescriptor () | |
default ctor | |
QFileDescriptor (int fds) | |
ctor with file descriptor | |
virtual | ~QFileDescriptor () |
dtor | |
int | FileDescriptor () const |
get file descriptor handled by this object | |
virtual int | HandleCommand (QDescriptorList &descrList) |
handle network command | |
void | SetNext (QFileDescriptor *Next) |
set pointer to next file descriptor in QFileDescriptorList | |
QFileDescriptor * | Next () const |
get pointer to next file descriptor in QFileDescriptorList | |
virtual int | Write (const char *message) const |
wrapper for write() syscall | |
virtual int | Write (const char *message, size_t msgSize) const |
wrapper for write() syscall | |
virtual int | Read (char *buff, int max_ch) const |
wrapper for read() syscall | |
Protected Member Functions | |
void | SetFileDescriptor (int fds) |
set file descriptor associated to this object | |
char * | Buffer () |
return buffer containing data read from network | |
Private Member Functions | |
bool | FindCompleteCommand () |
search buffer for end of command (EOC) character (\r or \n) | |
int | FillBuffer () |
reads all avaliable data from network and stores it into buffer by calling Read(). | |
void | DoParse (const char *Cmd) |
parse and execute requested command and write answer or error to socket | |
Private Attributes | |
int | fFds |
QFileDescriptor * | fNext |
char * | fBuffer |
int | fNextChar |
int | fNlOffset |
int QFileDescriptor::HandleCommand | ( | QDescriptorList & | descrList | ) | [virtual] |
handle network command
descrList | descriptor list this fd belogns to |
Reimplemented in QListeningSocket.
References fBuffer, FillBuffer(), FindCompleteCommand(), fNextChar, fNlOffset, QCommandHandler::HandleCommand(), and Write().
int QFileDescriptor::Write | ( | const char * | message | ) | const [virtual] |
wrapper for write() syscall
message | text to be written to the socket |
Referenced by HandleCommand().
int QFileDescriptor::Write | ( | const char * | message, | |
size_t | msgSize | |||
) | const [virtual] |
wrapper for write() syscall
message | text to be written to the socket, including the terminating command delimiter (\n or \r) |
References FileDescriptor().
int QFileDescriptor::Read | ( | char * | buff, | |
int | max_ch | |||
) | const [virtual] |
wrapper for read() syscall
References FileDescriptor().
Referenced by FillBuffer().
bool QFileDescriptor::FindCompleteCommand | ( | void | ) | [private] |
search buffer for end of command (EOC) character (\r or \n)
References fBuffer, fNextChar, and fNlOffset.
Referenced by HandleCommand().
int QFileDescriptor::FillBuffer | ( | ) | [private] |
reads all avaliable data from network and stores it into buffer by calling Read().
References fBuffer, fNextChar, MAX_COMMAND_LEN, and Read().
Referenced by HandleCommand().
void QFileDescriptor::DoParse | ( | const char * | Cmd | ) | [private] |
parse and execute requested command and write answer or error to socket
Command parsing and execution is performed using classes in the parser package.
int QFileDescriptor::fFds [private] |
file descriptor
Referenced by FileDescriptor(), SetFileDescriptor(), and ~QFileDescriptor().
QFileDescriptor* QFileDescriptor::fNext [private] |
char* QFileDescriptor::fBuffer [private] |
buffer containing data read from socket
Referenced by Buffer(), FillBuffer(), FindCompleteCommand(), HandleCommand(), QFileDescriptor(), and ~QFileDescriptor().
int QFileDescriptor::fNextChar [private] |
index of first free char in fBuffer
Referenced by FillBuffer(), FindCompleteCommand(), and HandleCommand().
int QFileDescriptor::fNlOffset [private] |
size of the last received command including terminating character (\n or \r)
Referenced by FindCompleteCommand(), and HandleCommand().