<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Vidalia: ControlConnection Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>ControlConnection Class Reference</h1><!-- doxytag: class="ControlConnection" --> <p><code>#include <<a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>></code></p> <p><a href="class_control_connection-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection_1_1_receive_waiter.html">ReceiveWaiter</a></td></tr> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> { <br/> <a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ada8fca398689e2de1266ae02a7032a5516">Unset</a>, <a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77adaa6ea0b95567f8d0cc5f5d8ef93899ca8">Disconnected</a>, <a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ada9f904aa084cadfd82bb74fa554c4ac2f">Disconnecting</a>, <a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77adabd3d25f7cb53a85649ed2e47c19fef97">Connecting</a>, <br/> <a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77adaa5310cd01386f5d985911e51adfea403">Connected</a> <br/> }</td></tr> <tr><td colspan="2"><h2>Signals</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a4c11c6081d1e5838832b6c1b0750571b">connected</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a41452502fd8508b45b15296871ba22ed">disconnected</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a48c3be68d03244159c580d32429c94b4">connectFailed</a> (QString errmsg)</td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#afd4d3c320a0b3725daeb5ce9ed02edc5">ControlConnection</a> (<a class="el" href="class_tor_events.html">TorEvents</a> *events=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a7eaa62d1e9832b206a3154224d8286c7">~ControlConnection</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a08bef3c75868948687a0f33aa02a32b8">connect</a> (const QHostAddress &addr, quint16 port)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a0f737e7f32923003556eb6787a089ccd">cancelConnect</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a63ff0aa4d96112e21566a64f5a25d8a7">disconnect</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a9503aa0c9eab967da5686ffa4edc447f">isConnected</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a34bcf7d414507cba5dd9905b78282f17">status</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#aa5e4ff44b7c6e0773eda0a2f90505657">send</a> (const <a class="el" href="class_control_command.html">ControlCommand</a> &cmd, <a class="el" href="class_control_reply.html">ControlReply</a> &reply, QString *errmsg=0)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#ab220fc648a52ceb380272548d72320be">send</a> (const <a class="el" href="class_control_command.html">ControlCommand</a> &cmd, QString *errmsg=0)</td></tr> <tr><td colspan="2"><h2>Private Slots</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#af18111442847fa19e5dbc16d5834f342">connect</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a9dad84fe644cb9c0a786b1c7962240e8">onReadyRead</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a16d9c59d084b2a0101b356eb1a4ea315">onConnected</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a79eaeff93b3c688ff572e439fc9d4df8">onDisconnected</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a0f3c03d48accbfaeea2539c982009196">onError</a> (QAbstractSocket::SocketError error)</td></tr> <tr><td colspan="2"><h2>Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a3ad24531cc04488a33850731c171499d">setStatus</a> (<a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> status)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a999aac9c733ab7f829a20a5042625bd6">statusString</a> (<a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> status)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a5163cd5b981c83373ed6c41e05063de5">run</a> ()</td></tr> <tr><td colspan="2"><h2>Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_control_socket.html">ControlSocket</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a19bab8aff5488d33d9d89f54b413d425">_sock</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_tor_events.html">TorEvents</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#aec45c94f839cf699724de0cf0131cfdc">_events</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a9e88a144a3321f31ebccd51f1aa4ccc2">_status</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QHostAddress </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a89f24cc2722d64f83ac4407d0c4c6ae9">_addr</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">quint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a205fdd450015f8b7d34ae2b7282d4835">_port</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QMutex </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a1147b8d98aba5e5d12e0a2d1792372ae">_connMutex</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QMutex </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#ac9d5bd332d6dfe9cd3e0a977f2cae0e9">_recvMutex</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QMutex </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a86de4e5b680f5fe1a7064e5191134498">_statusMutex</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a237dde266f22e3a1a76abc0137d255a5">_connectAttempt</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QTimer * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#ab13316cbf2e92eb183ca79d4e3da553e">_connectTimer</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QQueue< <a class="el" href="class_control_connection_1_1_receive_waiter.html">ReceiveWaiter</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#a31fbf6a6d44dcb7f1444bfb8655eb898">_recvQueue</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_send_command_event_1_1_send_waiter.html">SendCommandEvent::SendWaiter</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_connection.html#afb1f68bd6b76a157470ea2327ff62563">_sendWaiter</a></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00033">33</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a60fe264cf74ba322bc0fe4693e2e77ad"></a><!-- doxytag: member="ControlConnection::Status" ref="a60fe264cf74ba322bc0fe4693e2e77ad" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">ControlConnection::Status</a></td> </tr> </table> </div> <div class="memdoc"> <p>Control connection status </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a60fe264cf74ba322bc0fe4693e2e77ada8fca398689e2de1266ae02a7032a5516"></a><!-- doxytag: member="Unset" ref="a60fe264cf74ba322bc0fe4693e2e77ada8fca398689e2de1266ae02a7032a5516" args="" -->Unset</em> </td><td> <p>Control connection status is not yet set. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a60fe264cf74ba322bc0fe4693e2e77adaa6ea0b95567f8d0cc5f5d8ef93899ca8"></a><!-- doxytag: member="Disconnected" ref="a60fe264cf74ba322bc0fe4693e2e77adaa6ea0b95567f8d0cc5f5d8ef93899ca8" args="" -->Disconnected</em> </td><td> <p>Control connection disconnected. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a60fe264cf74ba322bc0fe4693e2e77ada9f904aa084cadfd82bb74fa554c4ac2f"></a><!-- doxytag: member="Disconnecting" ref="a60fe264cf74ba322bc0fe4693e2e77ada9f904aa084cadfd82bb74fa554c4ac2f" args="" -->Disconnecting</em> </td><td> <p>Control connection is disconnecting. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a60fe264cf74ba322bc0fe4693e2e77adabd3d25f7cb53a85649ed2e47c19fef97"></a><!-- doxytag: member="Connecting" ref="a60fe264cf74ba322bc0fe4693e2e77adabd3d25f7cb53a85649ed2e47c19fef97" args="" -->Connecting</em> </td><td> <p>Control connection attempt pending. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a60fe264cf74ba322bc0fe4693e2e77adaa5310cd01386f5d985911e51adfea403"></a><!-- doxytag: member="Connected" ref="a60fe264cf74ba322bc0fe4693e2e77adaa5310cd01386f5d985911e51adfea403" args="" -->Connected</em> </td><td> <p>Control connection established. </p> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00039">39</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="afd4d3c320a0b3725daeb5ce9ed02edc5"></a><!-- doxytag: member="ControlConnection::ControlConnection" ref="afd4d3c320a0b3725daeb5ce9ed02edc5" args="(TorEvents *events=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ControlConnection::ControlConnection </td> <td>(</td> <td class="paramtype"><a class="el" href="class_tor_events.html">TorEvents</a> * </td> <td class="paramname"> <em>events</em> = <code>0</code></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Default constructor. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00032">32</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00096">_events</a>, <a class="el" href="_control_connection_8h_source.html#l00126">_sendWaiter</a>, <a class="el" href="_control_connection_8h_source.html#l00095">_sock</a>, <a class="el" href="_control_connection_8h_source.html#l00097">_status</a>, and <a class="el" href="_control_connection_8h_source.html#l00040">Unset</a>.</p> </div> </div> <a class="anchor" id="a7eaa62d1e9832b206a3154224d8286c7"></a><!-- doxytag: member="ControlConnection::~ControlConnection" ref="a7eaa62d1e9832b206a3154224d8286c7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ControlConnection::~ControlConnection </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destructor. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00041">41</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00126">_sendWaiter</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a0f737e7f32923003556eb6787a089ccd"></a><!-- doxytag: member="ControlConnection::cancelConnect" ref="a0f737e7f32923003556eb6787a089ccd" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::cancelConnect </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Cancels a pending control connection to Tor. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00151">151</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00041">Disconnected</a>, <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>, and <a class="el" href="namespacetc.html#a161e534a110ff1f23f8a13a9ebdc00ee">tc::warn()</a>.</p> <p>Referenced by <a class="el" href="_tor_control_8cpp_source.html#l00147">TorControl::onStopped()</a>.</p> </div> </div> <a class="anchor" id="af18111442847fa19e5dbc16d5834f342"></a><!-- doxytag: member="ControlConnection::connect" ref="af18111442847fa19e5dbc16d5834f342" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::connect </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [private, slot]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Connects to Tor's control interface.</p> <p>Attempt to establish a connection to Tor's control interface. We will try a maximum of MAX_CONNECT_ATTEMPTS, waiting CONNECT_RETRY_DELAY between each attempt, to give slow Tors a chance to finish binding their control port. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00076">76</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00098">_addr</a>, <a class="el" href="_control_connection_8h_source.html#l00103">_connectAttempt</a>, <a class="el" href="_control_connection_8h_source.html#l00100">_connMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00099">_port</a>, <a class="el" href="_control_connection_8h_source.html#l00095">_sock</a>, <a class="el" href="namespacetc.html#aee5c749751dca91b96d6d024b1c4a076">tc::debug()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00026">MAX_CONNECT_ATTEMPTS</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a08bef3c75868948687a0f33aa02a32b8"></a><!-- doxytag: member="ControlConnection::connect" ref="a08bef3c75868948687a0f33aa02a32b8" args="(const QHostAddress &addr, quint16 port)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::connect </td> <td>(</td> <td class="paramtype">const QHostAddress & </td> <td class="paramname"> <em>addr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">quint16 </td> <td class="paramname"> <em>port</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Connect to the specified Tor control interface. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00053">53</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00098">_addr</a>, <a class="el" href="_control_connection_8h_source.html#l00103">_connectAttempt</a>, <a class="el" href="_control_connection_8h_source.html#l00099">_port</a>, <a class="el" href="_control_connection_8h_source.html#l00095">_sock</a>, <a class="el" href="_control_connection_8h_source.html#l00043">Connecting</a>, <a class="el" href="namespacetc.html#aa7353218fd7baef0876bbb422ce818af">tc::error()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>.</p> <p>Referenced by <a class="el" href="_tor_control_8cpp_source.html#l00191">TorControl::connect()</a>.</p> </div> </div> <a class="anchor" id="a4c11c6081d1e5838832b6c1b0750571b"></a><!-- doxytag: member="ControlConnection::connected" ref="a4c11c6081d1e5838832b6c1b0750571b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::connected </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [signal]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Emitted when a control connection has been established. </p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00100">onConnected()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a48c3be68d03244159c580d32429c94b4"></a><!-- doxytag: member="ControlConnection::connectFailed" ref="a48c3be68d03244159c580d32429c94b4" args="(QString errmsg)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::connectFailed </td> <td>(</td> <td class="paramtype">QString </td> <td class="paramname"> <em>errmsg</em></td> <td> ) </td> <td><code> [signal]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Emitted when a control connection fails. </p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00118">onError()</a>.</p> </div> </div> <a class="anchor" id="a63ff0aa4d96112e21566a64f5a25d8a7"></a><!-- doxytag: member="ControlConnection::disconnect" ref="a63ff0aa4d96112e21566a64f5a25d8a7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::disconnect </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Disconnect from Tor's control interface. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00089">89</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00100">_connMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00095">_sock</a>, <a class="el" href="_control_connection_8h_source.html#l00042">Disconnecting</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>.</p> <p>Referenced by <a class="el" href="_tor_control_8cpp_source.html#l00198">TorControl::disconnect()</a>.</p> </div> </div> <a class="anchor" id="a41452502fd8508b45b15296871ba22ed"></a><!-- doxytag: member="ControlConnection::disconnected" ref="a41452502fd8508b45b15296871ba22ed" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::disconnected </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [signal]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Emitted when a control connection has been closed. </p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00109">onDisconnected()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a9503aa0c9eab967da5686ffa4edc447f"></a><!-- doxytag: member="ControlConnection::isConnected" ref="a9503aa0c9eab967da5686ffa4edc447f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool ControlConnection::isConnected </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns true if the control socket is connected to Tor. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00160">160</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00044">Connected</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00167">status()</a>.</p> <p>Referenced by <a class="el" href="_tor_control_8cpp_source.html#l00223">TorControl::isConnected()</a>, <a class="el" href="_tor_control_8cpp_source.html#l00166">TorControl::isRunning()</a>, and <a class="el" href="_tor_control_8cpp_source.html#l00135">TorControl::stop()</a>.</p> </div> </div> <a class="anchor" id="a16d9c59d084b2a0101b356eb1a4ea315"></a><!-- doxytag: member="ControlConnection::onConnected" ref="a16d9c59d084b2a0101b356eb1a4ea315" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::onConnected </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [private, slot]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Called when the control socket is connected.</p> <p>Called when the control socket is connected. This method checks that the control protocol version of the Tor we connected to is at least V1. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00100">100</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="class_control_connection.html#a4c11c6081d1e5838832b6c1b0750571b">connected()</a>, <a class="el" href="_control_connection_8h_source.html#l00044">Connected</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a79eaeff93b3c688ff572e439fc9d4df8"></a><!-- doxytag: member="ControlConnection::onDisconnected" ref="a79eaeff93b3c688ff572e439fc9d4df8" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::onDisconnected </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [private, slot]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Called when the control socket is disconnected.</p> <p>Called when the control socket is disconnected and stops the control thread's event loop. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00109">109</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="class_control_connection.html#a41452502fd8508b45b15296871ba22ed">disconnected()</a>, <a class="el" href="_control_connection_8h_source.html#l00041">Disconnected</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a0f3c03d48accbfaeea2539c982009196"></a><!-- doxytag: member="ControlConnection::onError" ref="a0f3c03d48accbfaeea2539c982009196" args="(QAbstractSocket::SocketError error)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::onError </td> <td>(</td> <td class="paramtype">QAbstractSocket::SocketError </td> <td class="paramname"> <em>error</em></td> <td> ) </td> <td><code> [private, slot]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Called when the control socket encounters an error.</p> <p>Called when the control socket encounters <b>error</b>. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00118">118</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00103">_connectAttempt</a>, <a class="el" href="_control_connection_8h_source.html#l00105">_connectTimer</a>, <a class="el" href="_control_connection_8cpp_source.html#l00028">CONNECT_RETRY_DELAY</a>, <a class="el" href="class_control_connection.html#a48c3be68d03244159c580d32429c94b4">connectFailed()</a>, <a class="el" href="_control_connection_8h_source.html#l00043">Connecting</a>, <a class="el" href="namespacetc.html#aee5c749751dca91b96d6d024b1c4a076">tc::debug()</a>, <a class="el" href="_control_connection_8h_source.html#l00041">Disconnected</a>, <a class="el" href="namespacetc.html#aa7353218fd7baef0876bbb422ce818af">tc::error()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00026">MAX_CONNECT_ATTEMPTS</a>, <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00167">status()</a>, <a class="el" href="_control_socket_8cpp_source.html#l00187">ControlSocket::toString()</a>, and <a class="el" href="namespacetc.html#a161e534a110ff1f23f8a13a9ebdc00ee">tc::warn()</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a9dad84fe644cb9c0a786b1c7962240e8"></a><!-- doxytag: member="ControlConnection::onReadyRead" ref="a9dad84fe644cb9c0a786b1c7962240e8" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::onReadyRead </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [private, slot]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Called when there is data on the control socket. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00251">251</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00100">_connMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00096">_events</a>, <a class="el" href="_control_connection_8h_source.html#l00101">_recvMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00125">_recvQueue</a>, <a class="el" href="_control_connection_8h_source.html#l00095">_sock</a>, <a class="el" href="namespacetc.html#aee5c749751dca91b96d6d024b1c4a076">tc::debug()</a>, <a class="el" href="namespacetc.html#aa7353218fd7baef0876bbb422ce818af">tc::error()</a>, <a class="el" href="_control_reply_8cpp_source.html#l00048">ControlReply::getStatus()</a>, <a class="el" href="_tor_events_8cpp_source.html#l00125">TorEvents::handleEvent()</a>, <a class="el" href="_control_socket_8cpp_source.html#l00138">ControlSocket::readReply()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00364">ControlConnection::ReceiveWaiter::setResult()</a>, and <a class="el" href="_control_reply_8cpp_source.html#l00069">ControlReply::toString()</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a5163cd5b981c83373ed6c41e05063de5"></a><!-- doxytag: member="ControlConnection::run" ref="a5163cd5b981c83373ed6c41e05063de5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::run </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Main thread implementation.</p> <p>Main thread implementation. Creates and connects a control socket, then spins up an event loop. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00287">287</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00105">_connectTimer</a>, <a class="el" href="_control_connection_8h_source.html#l00100">_connMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00101">_recvMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00125">_recvQueue</a>, <a class="el" href="_control_connection_8h_source.html#l00126">_sendWaiter</a>, <a class="el" href="_control_connection_8h_source.html#l00095">_sock</a>, <a class="el" href="_control_connection_8cpp_source.html#l00076">connect()</a>, <a class="el" href="class_control_connection.html#a4c11c6081d1e5838832b6c1b0750571b">connected()</a>, <a class="el" href="namespacetc.html#aee5c749751dca91b96d6d024b1c4a076">tc::debug()</a>, <a class="el" href="class_control_connection.html#a41452502fd8508b45b15296871ba22ed">disconnected()</a>, <a class="el" href="namespacetc.html#aa7353218fd7baef0876bbb422ce818af">tc::error()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00100">onConnected()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00109">onDisconnected()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00118">onError()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00251">onReadyRead()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00364">ControlConnection::ReceiveWaiter::setResult()</a>, <a class="el" href="_send_command_event_8cpp_source.html#l00032">SendCommandEvent::SendWaiter::setResult()</a>, <a class="el" href="_send_command_event_8cpp_source.html#l00063">SendCommandEvent::SendWaiter::status()</a>, and <a class="el" href="_send_command_event_8h_source.html#l00034">SendCommandEvent::SendWaiter::Waiting</a>.</p> </div> </div> <a class="anchor" id="ab220fc648a52ceb380272548d72320be"></a><!-- doxytag: member="ControlConnection::send" ref="ab220fc648a52ceb380272548d72320be" args="(const ControlCommand &cmd, QString *errmsg=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool ControlConnection::send </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_control_command.html">ControlCommand</a> & </td> <td class="paramname"> <em>cmd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">QString * </td> <td class="paramname"> <em>errmsg</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Sends a control command to Tor and does not wait for a reply.</p> <p>Sends a control command to Tor and returns true if the command was sent successfully. Otherwise, returns false and <b>*errmsg</b> (if supplied) will be set. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00236">236</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00100">_connMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00126">_sendWaiter</a>, <a class="el" href="_control_connection_8h_source.html#l00095">_sock</a>, <a class="el" href="stringutil_8cpp_source.html#l00038">err()</a>, <a class="el" href="_send_command_event_8cpp_source.html#l00043">SendCommandEvent::SendWaiter::getResult()</a>, and <a class="el" href="_control_socket_8cpp_source.html#l00036">ControlSocket::isConnected()</a>.</p> </div> </div> <a class="anchor" id="aa5e4ff44b7c6e0773eda0a2f90505657"></a><!-- doxytag: member="ControlConnection::send" ref="aa5e4ff44b7c6e0773eda0a2f90505657" args="(const ControlCommand &cmd, ControlReply &reply, QString *errmsg=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool ControlConnection::send </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_control_command.html">ControlCommand</a> & </td> <td class="paramname"> <em>cmd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="class_control_reply.html">ControlReply</a> & </td> <td class="paramname"> <em>reply</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">QString * </td> <td class="paramname"> <em>errmsg</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Sends a control command to Tor and waits for the reply. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00203">203</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00101">_recvMutex</a>, <a class="el" href="_control_connection_8h_source.html#l00125">_recvQueue</a>, <a class="el" href="namespacetc.html#aa7353218fd7baef0876bbb422ce818af">tc::error()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00342">ControlConnection::ReceiveWaiter::getResult()</a>, and <a class="el" href="_control_command_8h_source.html#l00032">ControlCommand::keyword()</a>.</p> <p>Referenced by <a class="el" href="_tor_control_8cpp_source.html#l00233">TorControl::send()</a>, and <a class="el" href="_tor_control_8cpp_source.html#l00496">TorControl::signal()</a>.</p> </div> </div> <a class="anchor" id="a3ad24531cc04488a33850731c171499d"></a><!-- doxytag: member="ControlConnection::setStatus" ref="a3ad24531cc04488a33850731c171499d" args="(Status status)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ControlConnection::setStatus </td> <td>(</td> <td class="paramtype"><a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> </td> <td class="paramname"> <em>status</em></td> <td> ) </td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets the control connection status. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00192">192</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00097">_status</a>, <a class="el" href="_control_connection_8h_source.html#l00102">_statusMutex</a>, <a class="el" href="namespacetc.html#aee5c749751dca91b96d6d024b1c4a076">tc::debug()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00176">statusString()</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00151">cancelConnect()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00053">connect()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00089">disconnect()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00100">onConnected()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00109">onDisconnected()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00118">onError()</a>.</p> </div> </div> <a class="anchor" id="a34bcf7d414507cba5dd9905b78282f17"></a><!-- doxytag: member="ControlConnection::status" ref="a34bcf7d414507cba5dd9905b78282f17" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">ControlConnection::Status</a> ControlConnection::status </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the status of the control connection. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00167">167</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00097">_status</a>, and <a class="el" href="_control_connection_8h_source.html#l00102">_statusMutex</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00160">isConnected()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00118">onError()</a>, and <a class="el" href="_tor_control_8cpp_source.html#l00147">TorControl::onStopped()</a>.</p> </div> </div> <a class="anchor" id="a999aac9c733ab7f829a20a5042625bd6"></a><!-- doxytag: member="ControlConnection::statusString" ref="a999aac9c733ab7f829a20a5042625bd6" args="(Status status)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QString ControlConnection::statusString </td> <td>(</td> <td class="paramtype"><a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> </td> <td class="paramname"> <em>status</em></td> <td> ) </td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the string description of <b>status</b>.</p> <p>Returns a string description of the control Status value <b>status</b>. </p> <p>Definition at line <a class="el" href="_control_connection_8cpp_source.html#l00176">176</a> of file <a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a>.</p> <p>References <a class="el" href="_control_connection_8h_source.html#l00044">Connected</a>, <a class="el" href="_control_connection_8h_source.html#l00043">Connecting</a>, <a class="el" href="_control_connection_8h_source.html#l00041">Disconnected</a>, <a class="el" href="_control_connection_8h_source.html#l00042">Disconnecting</a>, and <a class="el" href="_control_connection_8h_source.html#l00040">Unset</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="a89f24cc2722d64f83ac4407d0c4c6ae9"></a><!-- doxytag: member="ControlConnection::_addr" ref="a89f24cc2722d64f83ac4407d0c4c6ae9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QHostAddress <a class="el" href="class_control_connection.html#a89f24cc2722d64f83ac4407d0c4c6ae9">ControlConnection::_addr</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Address of Tor's control interface. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00098">98</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00053">connect()</a>.</p> </div> </div> <a class="anchor" id="a237dde266f22e3a1a76abc0137d255a5"></a><!-- doxytag: member="ControlConnection::_connectAttempt" ref="a237dde266f22e3a1a76abc0137d255a5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="class_control_connection.html#a237dde266f22e3a1a76abc0137d255a5">ControlConnection::_connectAttempt</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>How many times we've tried to connect to Tor while waiting for Tor to start. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00103">103</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00053">connect()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00118">onError()</a>.</p> </div> </div> <a class="anchor" id="ab13316cbf2e92eb183ca79d4e3da553e"></a><!-- doxytag: member="ControlConnection::_connectTimer" ref="ab13316cbf2e92eb183ca79d4e3da553e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QTimer* <a class="el" href="class_control_connection.html#ab13316cbf2e92eb183ca79d4e3da553e">ControlConnection::_connectTimer</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Timer used to delay connect attempts. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00105">105</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00118">onError()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>.</p> </div> </div> <a class="anchor" id="a1147b8d98aba5e5d12e0a2d1792372ae"></a><!-- doxytag: member="ControlConnection::_connMutex" ref="a1147b8d98aba5e5d12e0a2d1792372ae" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QMutex <a class="el" href="class_control_connection.html#a1147b8d98aba5e5d12e0a2d1792372ae">ControlConnection::_connMutex</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Mutex around the control socket. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00100">100</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00076">connect()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00089">disconnect()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00251">onReadyRead()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00236">send()</a>.</p> </div> </div> <a class="anchor" id="aec45c94f839cf699724de0cf0131cfdc"></a><!-- doxytag: member="ControlConnection::_events" ref="aec45c94f839cf699724de0cf0131cfdc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_tor_events.html">TorEvents</a>* <a class="el" href="class_control_connection.html#aec45c94f839cf699724de0cf0131cfdc">ControlConnection::_events</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Dispatches asynchronous events from Tor. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00096">96</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00032">ControlConnection()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00251">onReadyRead()</a>.</p> </div> </div> <a class="anchor" id="a205fdd450015f8b7d34ae2b7282d4835"></a><!-- doxytag: member="ControlConnection::_port" ref="a205fdd450015f8b7d34ae2b7282d4835" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">quint16 <a class="el" href="class_control_connection.html#a205fdd450015f8b7d34ae2b7282d4835">ControlConnection::_port</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Port of Tor's control interface. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00099">99</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00053">connect()</a>.</p> </div> </div> <a class="anchor" id="ac9d5bd332d6dfe9cd3e0a977f2cae0e9"></a><!-- doxytag: member="ControlConnection::_recvMutex" ref="ac9d5bd332d6dfe9cd3e0a977f2cae0e9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QMutex <a class="el" href="class_control_connection.html#ac9d5bd332d6dfe9cd3e0a977f2cae0e9">ControlConnection::_recvMutex</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Mutex around the queue of ReceiveWaiters. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00101">101</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00251">onReadyRead()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00203">send()</a>.</p> </div> </div> <a class="anchor" id="a31fbf6a6d44dcb7f1444bfb8655eb898"></a><!-- doxytag: member="ControlConnection::_recvQueue" ref="a31fbf6a6d44dcb7f1444bfb8655eb898" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QQueue<<a class="el" href="class_control_connection_1_1_receive_waiter.html">ReceiveWaiter</a> *> <a class="el" href="class_control_connection.html#a31fbf6a6d44dcb7f1444bfb8655eb898">ControlConnection::_recvQueue</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Objects waiting for a reply. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00125">125</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00251">onReadyRead()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00203">send()</a>.</p> </div> </div> <a class="anchor" id="afb1f68bd6b76a157470ea2327ff62563"></a><!-- doxytag: member="ControlConnection::_sendWaiter" ref="afb1f68bd6b76a157470ea2327ff62563" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_send_command_event_1_1_send_waiter.html">SendCommandEvent::SendWaiter</a>* <a class="el" href="class_control_connection.html#afb1f68bd6b76a157470ea2327ff62563">ControlConnection::_sendWaiter</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00126">126</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00032">ControlConnection()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00236">send()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00041">~ControlConnection()</a>.</p> </div> </div> <a class="anchor" id="a19bab8aff5488d33d9d89f54b413d425"></a><!-- doxytag: member="ControlConnection::_sock" ref="a19bab8aff5488d33d9d89f54b413d425" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_control_socket.html">ControlSocket</a>* <a class="el" href="class_control_connection.html#a19bab8aff5488d33d9d89f54b413d425">ControlConnection::_sock</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Socket used to communicate with Tor. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00095">95</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00053">connect()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00032">ControlConnection()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00089">disconnect()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00251">onReadyRead()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00287">run()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00236">send()</a>.</p> </div> </div> <a class="anchor" id="a9e88a144a3321f31ebccd51f1aa4ccc2"></a><!-- doxytag: member="ControlConnection::_status" ref="a9e88a144a3321f31ebccd51f1aa4ccc2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_control_connection.html#a60fe264cf74ba322bc0fe4693e2e77ad">Status</a> <a class="el" href="class_control_connection.html#a9e88a144a3321f31ebccd51f1aa4ccc2">ControlConnection::_status</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Status of the control connection. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00097">97</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00032">ControlConnection()</a>, <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00167">status()</a>.</p> </div> </div> <a class="anchor" id="a86de4e5b680f5fe1a7064e5191134498"></a><!-- doxytag: member="ControlConnection::_statusMutex" ref="a86de4e5b680f5fe1a7064e5191134498" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QMutex <a class="el" href="class_control_connection.html#a86de4e5b680f5fe1a7064e5191134498">ControlConnection::_statusMutex</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Mutex around the connection status value. </p> <p>Definition at line <a class="el" href="_control_connection_8h_source.html#l00102">102</a> of file <a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a>.</p> <p>Referenced by <a class="el" href="_control_connection_8cpp_source.html#l00192">setStatus()</a>, and <a class="el" href="_control_connection_8cpp_source.html#l00167">status()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="_control_connection_8h_source.html">ControlConnection.h</a></li> <li><a class="el" href="_control_connection_8cpp_source.html">ControlConnection.cpp</a></li> </ul> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Mon Aug 30 22:58:56 2010 for Vidalia by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>