<!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: Log.h Source File</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><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><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="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_b47abd1aad201a152869566145babb61.html">src</a> » <a class="el" href="dir_3459d97d61361c9d41d467fba45f9c61.html">common</a> </div> </div> <div class="contents"> <h1>Log.h</h1><a href="_log_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment">** This file is part of Vidalia, and is subject to the license terms in the</span> <a name="l00003"></a>00003 <span class="comment">** LICENSE file, found in the top level directory of this distribution. If you</span> <a name="l00004"></a>00004 <span class="comment">** did not receive the LICENSE file with this file, you may obtain it from the</span> <a name="l00005"></a>00005 <span class="comment">** Vidalia source package distributed by the Vidalia Project at</span> <a name="l00006"></a>00006 <span class="comment">** http://www.vidalia-project.net/. No part of Vidalia, including this file,</span> <a name="l00007"></a>00007 <span class="comment">** may be copied, modified, propagated, or distributed except according to the</span> <a name="l00008"></a>00008 <span class="comment">** terms described in the LICENSE file.</span> <a name="l00009"></a>00009 <span class="comment">*/</span> <a name="l00010"></a>00010 <a name="l00011"></a>00011 <span class="comment">/*</span> <a name="l00012"></a>00012 <span class="comment">** \file Log.h</span> <a name="l00013"></a>00013 <span class="comment">** \version $Id: Log.h 3735 2009-04-28 20:28:01Z edmanm $</span> <a name="l00014"></a>00014 <span class="comment">** \brief Debug message logging</span> <a name="l00015"></a>00015 <span class="comment">*/</span> <a name="l00016"></a>00016 <a name="l00017"></a>00017 <span class="preprocessor">#ifndef _LOG_H</span> <a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define _LOG_H</span> <a name="l00019"></a>00019 <span class="preprocessor"></span> <a name="l00020"></a>00020 <span class="preprocessor">#include <QObject></span> <a name="l00021"></a>00021 <span class="preprocessor">#include <QFile></span> <a name="l00022"></a>00022 <span class="preprocessor">#include <QStringList></span> <a name="l00023"></a>00023 <span class="preprocessor">#include <QIODevice></span> <a name="l00024"></a>00024 <span class="preprocessor">#include <QHostAddress></span> <a name="l00025"></a>00025 <a name="l00026"></a>00026 <span class="comment"></span> <a name="l00027"></a>00027 <span class="comment">/** The Log class is similar to the QDebug class provided with Qt, but with</span> <a name="l00028"></a>00028 <span class="comment"> * finer-grained logging levels, slightly different output (for example, not</span> <a name="l00029"></a>00029 <span class="comment"> * everything is wrapped in double quotes), supports using .arg(), and can </span> <a name="l00030"></a>00030 <span class="comment"> * still be used even if Qt was compiled with QT_NO_DEBUG_STREAM. */</span> <a name="l00031"></a><a class="code" href="class_log.html">00031</a> <span class="keyword">class </span><a class="code" href="class_log.html">Log</a> <a name="l00032"></a>00032 { <a name="l00033"></a>00033 <span class="keyword">public</span>:<span class="comment"></span> <a name="l00034"></a>00034 <span class="comment"> /** Logging severity levels. */</span> <a name="l00035"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">00035</a> <span class="keyword">enum</span> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">LogLevel</a> { <a name="l00036"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196eaec4d6b151ce2b9205065081b0218dc1f">00036</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196eaec4d6b151ce2b9205065081b0218dc1f">Debug</a> = 0, <span class="comment">/**< Verbose debugging output. */</span> <a name="l00037"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea84d01ccd2314278ac9fffe87960b3e6f">00037</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea84d01ccd2314278ac9fffe87960b3e6f">Info</a>, <span class="comment">/**< Primarily program flow output. */</span> <a name="l00038"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196eafc8d9abdf285d3e5e2155c4987f4649d">00038</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196eafc8d9abdf285d3e5e2155c4987f4649d">Notice</a>, <span class="comment">/**< Non-failure (but important) events. */</span> <a name="l00039"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea305ba218e736ad88bcfc2f50f93c1465">00039</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea305ba218e736ad88bcfc2f50f93c1465">Warn</a>, <span class="comment">/**< Recoverable failure conditions. */</span> <a name="l00040"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea5c22955425541d3b890039a6a5ede82d">00040</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea5c22955425541d3b890039a6a5ede82d">Error</a>, <span class="comment">/**< Critical, non-recoverable errors. */</span> <a name="l00041"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea926e2df3cf5e8de425c35617f9fae92f">00041</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea926e2df3cf5e8de425c35617f9fae92f">Off</a>, <span class="comment">/**< No logging output. */</span> <a name="l00042"></a><a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea17a05d04845b0d018efee12e9799a732">00042</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196ea17a05d04845b0d018efee12e9799a732">Unknown</a> <span class="comment">/**< Unknown/invalid log level. */</span> <a name="l00043"></a>00043 }; <a name="l00044"></a>00044 <span class="keyword">class </span>LogMessage; <a name="l00045"></a>00045 <span class="comment"></span> <a name="l00046"></a>00046 <span class="comment"> /** Default constructor. */</span> <a name="l00047"></a>00047 <a class="code" href="class_log.html#af6071a60aa52b6c1b511f99b4bc1b8fe">Log</a>();<span class="comment"></span> <a name="l00048"></a>00048 <span class="comment"> /** Destructor. */</span> <a name="l00049"></a>00049 <a class="code" href="class_log.html#a0fbfda88fbee5027c89f6eb121059360">~Log</a>(); <a name="l00050"></a>00050 <span class="comment"></span> <a name="l00051"></a>00051 <span class="comment"> /** Opens a file on disk (or stdout or stderr) to which log messages will be</span> <a name="l00052"></a>00052 <span class="comment"> * written. */</span> <a name="l00053"></a>00053 <span class="keywordtype">bool</span> <a class="code" href="class_log.html#a4193bc86663a08c2186e547d73fa88fd">open</a>(FILE *file);<span class="comment"></span> <a name="l00054"></a>00054 <span class="comment"> /** Opens a file on disk to which log messages will be written. */</span> <a name="l00055"></a>00055 <span class="keywordtype">bool</span> <a class="code" href="class_log.html#a4193bc86663a08c2186e547d73fa88fd">open</a>(QString file);<span class="comment"></span> <a name="l00056"></a>00056 <span class="comment"> /** Closes the log file. */</span> <a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="class_log.html#adcbc96155698ce75c3ff098cb7699c09">close</a>();<span class="comment"></span> <a name="l00058"></a>00058 <span class="comment"> /** Returns true if the log file is open and ready for writing. */</span> <a name="l00059"></a><a class="code" href="class_log.html#a243e6013a1d687297172ec54dc627b5f">00059</a> <span class="keywordtype">bool</span> <a class="code" href="class_log.html#a243e6013a1d687297172ec54dc627b5f">isOpen</a>() { <span class="keywordflow">return</span> <a class="code" href="class_log.html#a8915ca8c1f14baf74bf959449c654bf6">_logFile</a>.isOpen() && <a class="code" href="class_log.html#a8915ca8c1f14baf74bf959449c654bf6">_logFile</a>.isWritable(); }<span class="comment"></span> <a name="l00060"></a>00060 <span class="comment"> /** Returns a string description of the last file error encountered. */</span> <a name="l00061"></a><a class="code" href="class_log.html#a04720d2111444aa71d99342c1b3e71fe">00061</a> QString <a class="code" href="class_log.html#a04720d2111444aa71d99342c1b3e71fe">errorString</a>() { <span class="keywordflow">return</span> <a class="code" href="class_log.html#a8915ca8c1f14baf74bf959449c654bf6">_logFile</a>.errorString(); } <a name="l00062"></a>00062 <span class="comment"></span> <a name="l00063"></a>00063 <span class="comment"> /** Sets the current log level to <b>level</b>. */</span> <a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="class_log.html#a8c0212a92733bf61ef4d321510807559">setLogLevel</a>(<a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">LogLevel</a> level);<span class="comment"></span> <a name="l00065"></a>00065 <span class="comment"> /** Returns a list of strings representing valid log levels. */</span> <a name="l00066"></a>00066 <span class="keyword">static</span> QStringList <a class="code" href="class_log.html#a135285deeafac963f2de45e278331da6">logLevels</a>();<span class="comment"></span> <a name="l00067"></a>00067 <span class="comment"> /** Returns a string description of the given LogLevel <b>level</b>. */</span> <a name="l00068"></a>00068 <span class="keyword">static</span> <span class="keyword">inline</span> QString <a class="code" href="class_log.html#a83510c59df85c39e3d7b8338ef179781">logLevelToString</a>(<a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">LogLevel</a> level);<span class="comment"></span> <a name="l00069"></a>00069 <span class="comment"> /** Returns a LogLevel for the level given by <b>str</b>. */</span> <a name="l00070"></a>00070 <span class="keyword">static</span> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">LogLevel</a> <a class="code" href="class_log.html#a188284a7289fa4d104b29dd7d53c1a28">stringToLogLevel</a>(QString str); <a name="l00071"></a>00071 <span class="comment"></span> <a name="l00072"></a>00072 <span class="comment"> /** Creates a log message with severity <b>level</b> and initial message</span> <a name="l00073"></a>00073 <span class="comment"> * contents <b>message</b>. The log message can be appended to until the</span> <a name="l00074"></a>00074 <span class="comment"> * returned LogMessage's destructor is called, at which point the complete</span> <a name="l00075"></a>00075 <span class="comment"> * message is written to the log file. */</span> <a name="l00076"></a>00076 LogMessage <a class="code" href="class_log.html#adc3fb22c4d0f3e6fae37f5ee70cce9ac">log</a>(<a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">LogLevel</a> level, QString message);<span class="comment"></span> <a name="l00077"></a>00077 <span class="comment"> /** Creates a log message with severity <b>level</b>. The log message can be</span> <a name="l00078"></a>00078 <span class="comment"> * appended to until the returned LogMessage's destructor is called, at</span> <a name="l00079"></a>00079 <span class="comment"> * which point the complete message is written to the log file. */</span> <a name="l00080"></a>00080 <span class="keyword">inline</span> LogMessage <a class="code" href="class_log.html#adc3fb22c4d0f3e6fae37f5ee70cce9ac">log</a>(<a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">LogLevel</a> level); <a name="l00081"></a>00081 <a name="l00082"></a>00082 <span class="keyword">private</span>: <a name="l00083"></a><a class="code" href="class_log.html#adca3d03ed213ec230830e7ce9982902a">00083</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">LogLevel</a> <a class="code" href="class_log.html#adca3d03ed213ec230830e7ce9982902a">_logLevel</a>; <span class="comment">/**< Minimum log severity level. */</span> <a name="l00084"></a><a class="code" href="class_log.html#a8915ca8c1f14baf74bf959449c654bf6">00084</a> QFile <a class="code" href="class_log.html#a8915ca8c1f14baf74bf959449c654bf6">_logFile</a>; <span class="comment">/**< Log output destination. */</span> <a name="l00085"></a>00085 }; <a name="l00086"></a>00086 <span class="comment"></span> <a name="l00087"></a>00087 <span class="comment">/** This internal class represents a single message that is to be written to </span> <a name="l00088"></a>00088 <span class="comment"> * the log destination. The message is buffered until it is written to the</span> <a name="l00089"></a>00089 <span class="comment"> * log in this class's destructor. */</span> <a name="l00090"></a><a class="code" href="class_log_1_1_log_message.html">00090</a> <span class="keyword">class </span><a class="code" href="class_log_1_1_log_message.html">Log::LogMessage</a> <a name="l00091"></a>00091 { <a name="l00092"></a>00092 <span class="keyword">public</span>: <a name="l00093"></a><a class="code" href="struct_log_1_1_log_message_1_1_stream.html">00093</a> <span class="keyword">struct </span><a class="code" href="struct_log_1_1_log_message_1_1_stream.html">Stream</a> { <a name="l00094"></a><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a0fc3843f3d77f2be758ed85cfc2a7708">00094</a> <a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a0fc3843f3d77f2be758ed85cfc2a7708">Stream</a>(<a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">Log::LogLevel</a> t, QIODevice *o) <a name="l00095"></a>00095 : <a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a48420ccdb9e928e9d0e830c1609a0263">type</a>(t), <a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a40756ad169702cd2b4c9544ef11e0d46">out</a>(o), <a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a73aaf9d06c6182c98522a7ca81a8af29">ref</a>(1) {} <a name="l00096"></a><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a48420ccdb9e928e9d0e830c1609a0263">00096</a> <a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">Log::LogLevel</a> <a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a48420ccdb9e928e9d0e830c1609a0263">type</a>; <a name="l00097"></a><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a40756ad169702cd2b4c9544ef11e0d46">00097</a> QIODevice *<a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a40756ad169702cd2b4c9544ef11e0d46">out</a>; <a name="l00098"></a><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a73aaf9d06c6182c98522a7ca81a8af29">00098</a> <span class="keywordtype">int</span> <a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a73aaf9d06c6182c98522a7ca81a8af29">ref</a>; <a name="l00099"></a><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">00099</a> QString <a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>; <a name="l00100"></a>00100 } *<a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>; <a name="l00101"></a>00101 <a name="l00102"></a><a class="code" href="class_log_1_1_log_message.html#a502e8ecb3c09592a26dccb002bb93eed">00102</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html#a502e8ecb3c09592a26dccb002bb93eed">LogMessage</a>(<a class="code" href="class_log.html#a3718f3e276c3d3e23b58a3b8236d196e">Log::LogLevel</a> t, QIODevice *o) <a name="l00103"></a>00103 : <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>(new <a class="code" href="struct_log_1_1_log_message_1_1_stream.html">Stream</a>(t,o)) {} <a name="l00104"></a><a class="code" href="class_log_1_1_log_message.html#ad6665d3f5ac28de9da359d5def30006a">00104</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html#a502e8ecb3c09592a26dccb002bb93eed">LogMessage</a>(<span class="keyword">const</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &o) <a name="l00105"></a>00105 : <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>(o.<a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>) { ++<a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a73aaf9d06c6182c98522a7ca81a8af29">ref</a>; } <a name="l00106"></a>00106 <span class="keyword">inline</span> QString <a class="code" href="class_log_1_1_log_message.html#a7fe5a9f54e413bfe895bd0f79662d88e">toString</a>() <span class="keyword">const</span>; <a name="l00107"></a>00107 <a class="code" href="class_log_1_1_log_message.html#a9db55ebcfa6da6a88579600ad0a61be3">~LogMessage</a>(); <a name="l00108"></a>00108 <a name="l00109"></a>00109 <span class="comment">/* Support both the << and .arg() methods */</span> <a name="l00110"></a><a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">00110</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(<span class="keyword">const</span> QString &t) <a name="l00111"></a>00111 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += t; <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00112"></a><a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">00112</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(<span class="keyword">const</span> QString &a) <a name="l00113"></a>00113 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00114"></a><a class="code" href="class_log_1_1_log_message.html#afd1cf8dc18cd0b50123295e0af4dac29">00114</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(<span class="keyword">const</span> QStringList &a) <a name="l00115"></a>00115 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += a.join(<span class="stringliteral">","</span>); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00116"></a><a class="code" href="class_log_1_1_log_message.html#ad253ab8e80e5b23f9a7536e0fe96706e">00116</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(<span class="keyword">const</span> QStringList &a) <a name="l00117"></a>00117 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a.join(<span class="stringliteral">","</span>)); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00118"></a><a class="code" href="class_log_1_1_log_message.html#af7e30a08a3b6e1bf9697138269dba60b">00118</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(<span class="keyword">const</span> QHostAddress &a) <a name="l00119"></a>00119 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += a.toString(); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00120"></a><a class="code" href="class_log_1_1_log_message.html#ad323b0267ca9be769e59efd3fa8f139e">00120</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(<span class="keyword">const</span> QHostAddress &a) <a name="l00121"></a>00121 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a.toString()); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00122"></a><a class="code" href="class_log_1_1_log_message.html#a77a4b5e29eb4dd07a7507079298cba87">00122</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(<span class="keywordtype">short</span> a) <a name="l00123"></a>00123 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00124"></a><a class="code" href="class_log_1_1_log_message.html#a0c38cdf25958f8b56670277a6b1faada">00124</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(<span class="keywordtype">short</span> a) <a name="l00125"></a>00125 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00126"></a><a class="code" href="class_log_1_1_log_message.html#a2120e93c2e844a4aca65b72f93c45678">00126</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(ushort a) <a name="l00127"></a>00127 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00128"></a><a class="code" href="class_log_1_1_log_message.html#ae913c9ec44990736e8ec66b63dd66efd">00128</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(ushort a) <a name="l00129"></a>00129 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00130"></a><a class="code" href="class_log_1_1_log_message.html#af574de828652571d57ce21fd8c3e3388">00130</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(<span class="keywordtype">int</span> a) <a name="l00131"></a>00131 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00132"></a><a class="code" href="class_log_1_1_log_message.html#af12e3cb4b4f107f375a0908905a42db4">00132</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(<span class="keywordtype">int</span> a) <a name="l00133"></a>00133 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00134"></a><a class="code" href="class_log_1_1_log_message.html#ae0c7018908748ee1404bc3edb9706bcf">00134</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(uint a) <a name="l00135"></a>00135 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00136"></a><a class="code" href="class_log_1_1_log_message.html#a24e5fe14edc1d4d166b43b697d7f25ae">00136</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(uint a) <a name="l00137"></a>00137 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00138"></a><a class="code" href="class_log_1_1_log_message.html#a0146a068c7e4ce25dfe05195fe143f59">00138</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(<span class="keywordtype">long</span> a) <a name="l00139"></a>00139 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00140"></a><a class="code" href="class_log_1_1_log_message.html#ac6536ea72c0eb741668f70c96da8b9b5">00140</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(<span class="keywordtype">long</span> a) <a name="l00141"></a>00141 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00142"></a><a class="code" href="class_log_1_1_log_message.html#ac7b36fbc6ee672e9aea67136524a2698">00142</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(ulong a) <a name="l00143"></a>00143 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00144"></a><a class="code" href="class_log_1_1_log_message.html#a8ea72ca218e35e6b933303dedfa0f379">00144</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(ulong a) <a name="l00145"></a>00145 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00146"></a><a class="code" href="class_log_1_1_log_message.html#abbb1773168f575957bd5c2f05c1b549e">00146</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(qlonglong a) <a name="l00147"></a>00147 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00148"></a><a class="code" href="class_log_1_1_log_message.html#a79266df9d3eca138dc19016ec2ce8372">00148</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(qlonglong a) <a name="l00149"></a>00149 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00150"></a><a class="code" href="class_log_1_1_log_message.html#a8d44bffd9f4096325f41d3d277487f9b">00150</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> &<a class="code" href="class_log_1_1_log_message.html#ac933c6315e79096ecaf469a6507cb030">operator<<</a>(qulonglong a) <a name="l00151"></a>00151 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> += QString::number(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00152"></a><a class="code" href="class_log_1_1_log_message.html#aea3530655a7a58ab9fedeeaac863e41f">00152</a> <span class="keyword">inline</span> <a class="code" href="class_log_1_1_log_message.html">LogMessage</a> <a class="code" href="class_log_1_1_log_message.html#a40fca68d4fe6ec37e1099a52a6de7b24">arg</a>(qulonglong a) <a name="l00153"></a>00153 { <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a> = <a class="code" href="class_log_1_1_log_message.html#a0cc984644ebbad756a8232fdf5bec653">stream</a>-><a class="code" href="struct_log_1_1_log_message_1_1_stream.html#a69187d3cc7d834fafe14476c6d58f8dd">buf</a>.arg(a); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } <a name="l00154"></a>00154 }; <a name="l00155"></a>00155 <a name="l00156"></a>00156 <span class="preprocessor">#endif</span> <a name="l00157"></a>00157 <span class="preprocessor"></span> </pre></div></div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Mon Aug 30 22:58:54 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>