diff options
author | Jörg Frings-Fürst <jff@merkur> | 2014-05-18 16:08:14 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <jff@merkur> | 2014-05-18 16:08:14 +0200 |
commit | a15cf65c44d5c224169c32ef5495b68c758134b7 (patch) | |
tree | 3419f58fc8e1b315ba8171910ee044c5d467c162 /libcult/documentation/trace/index.xhtml |
Imported Upstream version 3.3.0.2upstream/3.3.0.2
Diffstat (limited to 'libcult/documentation/trace/index.xhtml')
-rw-r--r-- | libcult/documentation/trace/index.xhtml | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/libcult/documentation/trace/index.xhtml b/libcult/documentation/trace/index.xhtml new file mode 100644 index 0000000..eb00f04 --- /dev/null +++ b/libcult/documentation/trace/index.xhtml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> + +<!-- + +file : documentation/trace/index.xhtml +author : Boris Kolpackov <boris@kolpackov.net> +copyright : Copyright (c) 2005-2010 Boris Kolpackov +license : GNU FDL v1.2; http://kolpackov.net/licenses/fdl-1.2.txt + +--> + +<head> + + <title>libcult/documentation/trace</title> + + <meta name="author" content="Boris Kolpackov"/> + <meta name="copyright" content="© 2005-2010 Boris Kolpackov"/> + <meta name="keywords" content="libcult,c++,tracing"/> + <meta name="description" content="libcult/documentation/trace"/> + + <link rel="stylesheet" type="text/css" href="../default.css"/> + +</head> + +<body> + +<div id="navigation"> +<p> +<a href="../.."><code>libcult</code></a> <code>/</code> +<a href=".."><code>documentation</code></a> <code>/</code> +<code>trace</code> +</p> +</div> + +<div id="content"> +<p>The <em>libcult</em> trace library provides a general-purpose +program tracing facility. The following code fragment can be found +in <code>libcult/examples/trace</code>:</p> + +<pre class="cxx"> +struct foo {}; + +std::ostream& +operator<< (std::ostream& o, foo const&) +{ + return o << "::foo"; +} + +namespace trace = cult::trace; + +trace::stream tout ("main", 4); + +int +main () +{ + using trace::record; + + trace::log::instance ().level (9); + + record a ("main", 2); + a << "notationally burdensome"; + tout << a; + + record b ("main", 2); + tout << (b << "a bit better, but still burdensome"); + + tout << (record ("main", 2) << "this is" + << " somewhat" + << " twisted but nice to be able to"); + + tout << "concise, using default level"; + + tout << 9 << "concise, using custom level"; + + foo f; + + tout << 3 << f << " " << 5; +} +</pre> + +<p>Along with the proper implementation, a <em>null</em> implementation is +provided which can be used to completely optimize trace code away. For details +see the <a href="http://kolpackov.net/pipermail/notes/2004-July/000010.html"> +Inlining code away</a> essay.</p> +</div> + +<div id="docinfo"> +<p>Copyright © 2005-2010 <a title="Boris Kolpackov" +href="http://kolpackov.net">Boris Kolpackov</a>.</p> + +<div class="terms"> +Permission is granted to copy, distribute and/or modify this document under +the terms of the <a href="http://kolpackov.net/licenses/fdl-1.2.txt">GNU Free +Documentation License, version 1.2</a>; with no Invariant Sections, no +Front-Cover Texts and no Back-Cover Texts. +</div> +</div> + +</body> +</html> |