Qore supports a simple event-\/handling mechanism to provide notification and details of socket and network events in higher-\/level classes. Classes currently supporting events are the \hyperlink{class_qore_1_1_socket}{Socket}, \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client}, \hyperlink{class_qore_1_1_ftp_client}{Ftp\+Client}, and \hyperlink{class_qore_1_1_file}{File} classes.

See \hyperlink{group__event__constants}{Event Constants} for a list of all event constants; details about each event are documented in the following sections.

Event information is placed on the event queue (which must be a \hyperlink{class_qore_1_1_thread_1_1_queue}{Queue} object) in the form of a hash. Each event has at least the following keys\+:~\newline
 {\bfseries Event Hash Common Keys}  \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &This key holds the event code; see information for individual events in the following sections  \\\cline{1-2}
{\ttfamily source}  &This key holds the event source code  \\\cline{1-2}
{\ttfamily id}  &The value of this key is a unique integer that can be used to uniquely identify the object generating the event.  \\\cline{1-2}
\end{TabularC}




 \hypertarget{event_handling_EVENT_PACKET_READ}{}\section{E\+V\+E\+N\+T\+\_\+\+P\+A\+C\+K\+E\+T\+\_\+\+R\+E\+A\+D}\label{event_handling_EVENT_PACKET_READ}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga021ba2dee5ccd3870ed42884f13a88d5}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+P\+A\+C\+K\+E\+T\+\_\+\+R\+E\+A\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after a network packet is received.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga021ba2dee5ccd3870ed42884f13a88d5}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+P\+A\+C\+K\+E\+T\+\_\+\+R\+E\+A\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily read}  &The number of bytes read in the packet.  \\\cline{1-2}
{\ttfamily total\+\_\+read}  &The total number of bytes read in the read loop.  \\\cline{1-2}
{\ttfamily }\mbox{[}total\+\_\+to\+\_\+read\mbox{]} &The total number of bytes to read in the read loop (this key is only present if the total number of bytes to read is known).  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_PACKET_SENT}{}\section{E\+V\+E\+N\+T\+\_\+\+P\+A\+C\+K\+E\+T\+\_\+\+S\+E\+N\+T}\label{event_handling_EVENT_PACKET_SENT}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gaf7edaaff31f786ccf7c426012fa00bb7}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+P\+A\+C\+K\+E\+T\+\_\+\+S\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after a network packet is sent.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gaf7edaaff31f786ccf7c426012fa00bb7}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+P\+A\+C\+K\+E\+T\+\_\+\+S\+E\+N\+T}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily socket}  &The file descriptor number of the socket.  \\\cline{1-2}
{\ttfamily sent}  &The number of bytes sent in the packet.  \\\cline{1-2}
{\ttfamily total\+\_\+sent}  &The total number of bytes sent in the send loop.  \\\cline{1-2}
{\ttfamily total\+\_\+to\+\_\+send}  &The total number of bytes to send in the send loop.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_CONTENT_LENGTH}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+O\+N\+T\+E\+N\+T\+\_\+\+L\+E\+N\+G\+T\+H}\label{event_handling_EVENT_HTTP_CONTENT_LENGTH}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gad0f50dae7f1bfedac9b8e9d8bf31c35b}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+O\+N\+T\+E\+N\+T\+\_\+\+L\+E\+N\+G\+T\+H}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after an H\+T\+T\+P header is received containing a content length header line, but before the message body is received.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gad0f50dae7f1bfedac9b8e9d8bf31c35b}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+O\+N\+T\+E\+N\+T\+\_\+\+L\+E\+N\+G\+T\+H}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily len}  &The number of bytes given for the content length.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_CHUNKED_START}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+S\+T\+A\+R\+T}\label{event_handling_EVENT_HTTP_CHUNKED_START}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga618a2847b6cabc75e1e6ecdc40c88a7f}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+S\+T\+A\+R\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised after receiving an H\+T\+T\+P header with the {\ttfamily Transfer-\/\+Encoding} header set to {\ttfamily chunked} and before the chunked data is read.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga618a2847b6cabc75e1e6ecdc40c88a7f}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+S\+T\+A\+R\+T}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the socket object.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_CHUNKED_END}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+E\+N\+D}\label{event_handling_EVENT_HTTP_CHUNKED_END}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gaa19880a65c20fe3f3cfb89f94b6ad960}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+E\+N\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised after all chunked data is read from the socket.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gaa19880a65c20fe3f3cfb89f94b6ad960}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+E\+N\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the socket object.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_REDIRECT}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+R\+E\+D\+I\+R\+E\+C\+T}\label{event_handling_EVENT_HTTP_REDIRECT}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga6d363c43f9023d8442fcc266db699eca}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+R\+E\+D\+I\+R\+E\+C\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised after a redirect response is received from an H\+T\+T\+P server.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga6d363c43f9023d8442fcc266db699eca}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+R\+E\+D\+I\+R\+E\+C\+T}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the socket object.  \\\cline{1-2}
{\ttfamily location}  &The redirect location given by the H\+T\+T\+P server  \\\cline{1-2}
{\ttfamily }\mbox{[}status\+\_\+message\mbox{]} &Any status message sent by the H\+T\+T\+P server; if no message was sent, then this key will not be present in the event hash.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_CHANNEL_CLOSED}{}\section{E\+V\+E\+N\+T\+\_\+\+C\+H\+A\+N\+N\+E\+L\+\_\+\+C\+L\+O\+S\+E\+D}\label{event_handling_EVENT_CHANNEL_CLOSED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga351b788677e1dfff0a791c79762a527e}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+C\+H\+A\+N\+N\+E\+L\+\_\+\+C\+L\+O\+S\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after the socket is closed.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga351b788677e1dfff0a791c79762a527e}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+C\+H\+A\+N\+N\+E\+L\+\_\+\+C\+L\+O\+S\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_DELETED}{}\section{E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D}\label{event_handling_EVENT_DELETED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga77ac8ca6dd3d9fd6fe51b1b0d82e26fe}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised when the socket object is deleted.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga77ac8ca6dd3d9fd6fe51b1b0d82e26fe}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\+E\+T\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_FTP_SEND_MESSAGE}{}\section{E\+V\+E\+N\+T\+\_\+\+F\+T\+P\+\_\+\+S\+E\+N\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E}\label{event_handling_EVENT_FTP_SEND_MESSAGE}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga75776f172ec78925f339f9ddb6730646}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+F\+T\+P\+\_\+\+S\+E\+N\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gadcdbe58f12675ffc88b9a7366b6bb93f}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately before a message is sent on the F\+T\+P control channel.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga75776f172ec78925f339f9ddb6730646}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+F\+T\+P\+\_\+\+S\+E\+N\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gadcdbe58f12675ffc88b9a7366b6bb93f}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_ftp_client}{Ftp\+Client class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily command}  &A string giving the F\+T\+P command sent (ex\+: {\ttfamily \char`\"{}\+R\+E\+T\+R\char`\"{}}).  \\\cline{1-2}
{\ttfamily }\mbox{[}arg\mbox{]} &The argument to the command; if no argument is sent, then this key will not be present.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_FTP_MESSAGE_RECEIVED}{}\section{E\+V\+E\+N\+T\+\_\+\+F\+T\+P\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}\label{event_handling_EVENT_FTP_MESSAGE_RECEIVED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga3f65c01bb4a3b817d3cd8c8731b89b28}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+F\+T\+P\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gadcdbe58f12675ffc88b9a7366b6bb93f}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after a message is received on the F\+T\+P control channel.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga3f65c01bb4a3b817d3cd8c8731b89b28}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+F\+T\+P\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gadcdbe58f12675ffc88b9a7366b6bb93f}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_ftp_client}{Ftp\+Client class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily command}  &A string giving the F\+T\+P command sent (ex\+: {\ttfamily \char`\"{}\+R\+E\+T\+R\char`\"{}}).  \\\cline{1-2}
{\ttfamily }\mbox{[}arg\mbox{]} &The argument to the command; if no argument is sent, then this key will not be present.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HOSTNAME_LOOKUP}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+O\+S\+T\+N\+A\+M\+E\+\_\+\+L\+O\+O\+K\+U\+P}\label{event_handling_EVENT_HOSTNAME_LOOKUP}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gafd12bc810e5a9cbcb1ac885b233784da}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+O\+S\+T\+N\+A\+M\+E\+\_\+\+L\+O\+O\+K\+U\+P}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately before a hostname lookup is made.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gafd12bc810e5a9cbcb1ac885b233784da}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+O\+S\+T\+N\+A\+M\+E\+\_\+\+L\+O\+O\+K\+U\+P}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily name}  &A string giving the name to be looked up.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HOSTNAME_RESOLVED}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+O\+S\+T\+N\+A\+M\+E\+\_\+\+R\+E\+S\+O\+L\+V\+E\+D}\label{event_handling_EVENT_HOSTNAME_RESOLVED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gabb61e0e324cd908e2543ce6d08330dd3}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+O\+S\+T\+N\+A\+M\+E\+\_\+\+R\+E\+S\+O\+L\+V\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after a successful hostname resolution.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gabb61e0e324cd908e2543ce6d08330dd3}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+O\+S\+T\+N\+A\+M\+E\+\_\+\+R\+E\+S\+O\+L\+V\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily type}  &The type of address for the socket; one of the \hyperlink{group__network__address__family__constants}{Network Address Family Constants}  \\\cline{1-2}
{\ttfamily typename}  &A descriptive name for the address family (ex\+: {\ttfamily \char`\"{}ipv4\char`\"{}}, {\ttfamily \char`\"{}ipv6\char`\"{}})  \\\cline{1-2}
{\ttfamily address}  &A string giving the network address the name was resolved to.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_SEND_MESSAGE}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+S\+E\+N\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E}\label{event_handling_EVENT_HTTP_SEND_MESSAGE}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga3b92fc4b13daef0ebe6ba6f9781bf2c1}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+S\+E\+N\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T} or \hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately before an H\+T\+T\+P message is sent.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga3b92fc4b13daef0ebe6ba6f9781bf2c1}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+S\+E\+N\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}, or \hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily message}  &The first string in the H\+T\+T\+P message (ex\+: G\+E\+T / H\+T\+T\+P/1.\+1).  \\\cline{1-2}
{\ttfamily headers}  &a hash of all headers to send in the message.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_MESSAGE_RECEIVED}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}\label{event_handling_EVENT_HTTP_MESSAGE_RECEIVED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga1d16d8fddcca7cedd6f8b81ad26d9658}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T} or \hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after an H\+T\+T\+P message is received.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga1d16d8fddcca7cedd6f8b81ad26d9658}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}, or \hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily headers}  &A hash of all headers received in the message, plus the following headers giving additional information about the message\+:~\newline
 -\/ {\ttfamily \char`\"{}http\+\_\+version\char`\"{}}\+: giving the H\+T\+T\+P protocol version in the message~\newline
 -\/ {\ttfamily \char`\"{}status\+\_\+code\char`\"{}}\+: giving the H\+T\+T\+P status code if the message is a response~\newline
 -\/ {\ttfamily \char`\"{}status\+\_\+message\char`\"{}}\+: giving any H\+T\+T\+P status message if the message is a response~\newline
 -\/ {\ttfamily \char`\"{}method\char`\"{}}\+: giving the H\+T\+T\+P method if the message is a request~\newline
 -\/ {\ttfamily \char`\"{}path\char`\"{}}\+: providing the path in request messages.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_FOOTERS_RECEIVED}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+F\+O\+O\+T\+E\+R\+S\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}\label{event_handling_EVENT_HTTP_FOOTERS_RECEIVED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gaf76b16c6831986b699782098310efe9a}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+F\+O\+O\+T\+E\+R\+S\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after H\+T\+T\+P footers are received after receiving chunked data.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gaf76b16c6831986b699782098310efe9a}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+F\+O\+O\+T\+E\+R\+S\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}  \\\cline{1-2}
{\ttfamily headers}  &A hash of all footers received in the message.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_CHUNKED_DATA_RECEIVED}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}\label{event_handling_EVENT_HTTP_CHUNKED_DATA_RECEIVED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gabe9ca24b827811f6440c3caac71bee75}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after chunked data is received.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gabe9ca24b827811f6440c3caac71bee75}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+E\+D\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+C\+E\+I\+V\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}  \\\cline{1-2}
{\ttfamily read}  &An integer giving the number of bytes read in the chunk.  \\\cline{1-2}
{\ttfamily total\+\_\+read}  &An integer giving the total number of bytes of chunked data read in the current message.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_HTTP_CHUNK_SIZE}{}\section{E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+\_\+\+S\+I\+Z\+E}\label{event_handling_EVENT_HTTP_CHUNK_SIZE}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gacb75168aba13cf548176914db6f5c4f5}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+\_\+\+S\+I\+Z\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after chunk information is received providing the size of the next chunk.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gacb75168aba13cf548176914db6f5c4f5}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+H\+T\+T\+P\+\_\+\+C\+H\+U\+N\+K\+\_\+\+S\+I\+Z\+E}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_gaca8f942512797c6750ee3d8b47328782}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+H\+T\+T\+P\+C\+L\+I\+E\+N\+T}, indicating the \hyperlink{class_qore_1_1_h_t_t_p_client}{H\+T\+T\+P\+Client class}  \\\cline{1-2}
{\ttfamily size}  &An integer giving the number of bytes in the next chunk.  \\\cline{1-2}
{\ttfamily total\+\_\+read}  &An integer giving the total number of bytes of chunked data read in the current message.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_CONNECTING}{}\section{E\+V\+E\+N\+T\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+N\+G}\label{event_handling_EVENT_CONNECTING}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gacac824e6e4f505757e01fb9d926d8490}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+N\+G}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately before a socket connection is attempted.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gacac824e6e4f505757e01fb9d926d8490}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+C\+O\+N\+N\+E\+C\+T\+I\+N\+G}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily type}  &The type of address for the socket; one of the \hyperlink{group__network__address__family__constants}{Network Address Family Constants}  \\\cline{1-2}
{\ttfamily typename}  &A descriptive name for the address family (ex\+: {\ttfamily \char`\"{}ipv4\char`\"{}}, {\ttfamily \char`\"{}ipv6\char`\"{}})  \\\cline{1-2}
{\ttfamily address}  &A string giving the target address (ex\+: {\ttfamily \char`\"{}\+::1\char`\"{}}, {\ttfamily \char`\"{}192.\+168.\+20.\+4\char`\"{}})  \\\cline{1-2}
{\ttfamily target}  &The target address for the connection.  \\\cline{1-2}
{\ttfamily }\mbox{[}port\mbox{]} &The target port for the connection; if not applicable for the address family then this hash key is not included.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_CONNECTED}{}\section{E\+V\+E\+N\+T\+\_\+\+C\+O\+N\+N\+E\+C\+T\+E\+D}\label{event_handling_EVENT_CONNECTED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gadbc9ff154373b63cc1845cd9b1cec056}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+C\+O\+N\+N\+E\+C\+T\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after a socket connection is established.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gadbc9ff154373b63cc1845cd9b1cec056}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+C\+O\+N\+N\+E\+C\+T\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_START_SSL}{}\section{E\+V\+E\+N\+T\+\_\+\+S\+T\+A\+R\+T\+\_\+\+S\+S\+L}\label{event_handling_EVENT_START_SSL}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gaf0777a5058274a3292ae6b9e2c84261f}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+S\+T\+A\+R\+T\+\_\+\+S\+S\+L}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately before S\+S\+L negotiation is attempted.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gaf0777a5058274a3292ae6b9e2c84261f}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+S\+T\+A\+R\+T\+\_\+\+S\+S\+L}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_SSL_ESTABLISHED}{}\section{E\+V\+E\+N\+T\+\_\+\+S\+S\+L\+\_\+\+E\+S\+T\+A\+B\+L\+I\+S\+H\+E\+D}\label{event_handling_EVENT_SSL_ESTABLISHED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga8f000a2187f2161511f09b9e489c9680}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+S\+S\+L\+\_\+\+E\+S\+T\+A\+B\+L\+I\+S\+H\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after S\+S\+L negotiation has been successfully established.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga8f000a2187f2161511f09b9e489c9680}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+S\+S\+L\+\_\+\+E\+S\+T\+A\+B\+L\+I\+S\+H\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1dc3f29ef71c6de5cc5114382c88755e}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+S\+O\+C\+K\+E\+T}, indicating the \hyperlink{class_qore_1_1_socket}{Socket class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the underlying socket object  \\\cline{1-2}
{\ttfamily cipher}  &A string giving the name of the cipher algorithm used for the connection.  \\\cline{1-2}
{\ttfamily cipher\+\_\+version}  &A string giving the version of the cipher algorithm used for the connection.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_OPEN_FILE}{}\section{E\+V\+E\+N\+T\+\_\+\+O\+P\+E\+N\+\_\+\+F\+I\+L\+E}\label{event_handling_EVENT_OPEN_FILE}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gab9e3b3325f2176a9fbc985d6560b9f08}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+O\+P\+E\+N\+\_\+\+F\+I\+L\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately before a file is opened.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gab9e3b3325f2176a9fbc985d6560b9f08}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+O\+P\+E\+N\+\_\+\+F\+I\+L\+E}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}, indicating the \hyperlink{class_qore_1_1_file}{File class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the \hyperlink{class_qore_1_1_file}{File} object  \\\cline{1-2}
{\ttfamily filename}  &The file's name.  \\\cline{1-2}
{\ttfamily flags}  &The flags used to open the file.  \\\cline{1-2}
{\ttfamily mode}  &The mode to open the file with.  \\\cline{1-2}
{\ttfamily encoding}  &The \hyperlink{character_encoding}{character encoding} given used for reading from or writing to the file.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_FILE_OPENED}{}\section{E\+V\+E\+N\+T\+\_\+\+F\+I\+L\+E\+\_\+\+O\+P\+E\+N\+E\+D}\label{event_handling_EVENT_FILE_OPENED}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_ga83e323f4c6bb013dfefd51ad4482de19}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+F\+I\+L\+E\+\_\+\+O\+P\+E\+N\+E\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after a file has been successfully opened.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_ga83e323f4c6bb013dfefd51ad4482de19}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+F\+I\+L\+E\+\_\+\+O\+P\+E\+N\+E\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}, indicating the \hyperlink{class_qore_1_1_file}{File class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the \hyperlink{class_qore_1_1_file}{File} object  \\\cline{1-2}
{\ttfamily filename}  &The file's name.  \\\cline{1-2}
{\ttfamily flags}  &The flags used to open the file.  \\\cline{1-2}
{\ttfamily mode}  &The mode to open the file with.  \\\cline{1-2}
{\ttfamily encoding}  &The \hyperlink{character_encoding}{character encoding} given used for reading from or writing to the file.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_DATA_READ}{}\section{E\+V\+E\+N\+T\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+A\+D}\label{event_handling_EVENT_DATA_READ}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gaa5c638cda1f133aaecff300db9f870d2}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+A\+D}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after data is read from a file.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gaa5c638cda1f133aaecff300db9f870d2}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+D\+A\+T\+A\+\_\+\+R\+E\+A\+D}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}, indicating the \hyperlink{class_qore_1_1_file}{File class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the \hyperlink{class_qore_1_1_file}{File} object  \\\cline{1-2}
{\ttfamily read}  &The number of bytes read from the file.  \\\cline{1-2}
{\ttfamily total\+\_\+read}  &The total number of bytes read in the read loop.  \\\cline{1-2}
{\ttfamily total\+\_\+to\+\_\+read}  &The total number of bytes to read in the read loop.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}


 \hypertarget{event_handling_EVENT_DATA_WRITTEN}{}\section{E\+V\+E\+N\+T\+\_\+\+D\+A\+T\+A\+\_\+\+W\+R\+I\+T\+T\+E\+N}\label{event_handling_EVENT_DATA_WRITTEN}
\begin{DoxyParagraph}{Event}
\hyperlink{group__event__constants_gaa71090af36659667313c8c739002c263}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+D\+A\+T\+A\+\_\+\+W\+R\+I\+T\+T\+E\+N}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Source}
\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Description}
This event is raised immediately after data is written from a file.~\newline
~\newline
 The event hash contains the following keys\+:~\newline
 \begin{TabularC}{2}
\hline
{\bfseries Key} &{\bfseries Value}  \\\cline{1-2}
{\ttfamily event}  &\hyperlink{group__event__constants_gaa71090af36659667313c8c739002c263}{Qore\+::\+E\+V\+E\+N\+T\+\_\+\+D\+A\+T\+A\+\_\+\+W\+R\+I\+T\+T\+E\+N}  \\\cline{1-2}
{\ttfamily source}  &\hyperlink{group__event__source__constants_ga1cea533c8658a47ddc7ece4cc71ea3a9}{Qore\+::\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}, indicating the \hyperlink{class_qore_1_1_file}{File class}  \\\cline{1-2}
{\ttfamily id}  &A unique integer I\+D for the \hyperlink{class_qore_1_1_file}{File} object  \\\cline{1-2}
{\ttfamily written}  &The number of bytes written to the file.  \\\cline{1-2}
{\ttfamily total\+\_\+written}  &The total number of bytes written in the write loop.  \\\cline{1-2}
{\ttfamily total\+\_\+to\+\_\+write}  &The total number of bytes to write in the write loop.  \\\cline{1-2}
\end{TabularC}

\end{DoxyParagraph}
