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/examples/trace | |
Imported Upstream version 3.3.0.2upstream/3.3.0.2
Diffstat (limited to 'libcult/examples/trace')
| -rw-r--r-- | libcult/examples/trace/makefile | 48 | ||||
| -rw-r--r-- | libcult/examples/trace/trace.cxx | 51 | 
2 files changed, 99 insertions, 0 deletions
diff --git a/libcult/examples/trace/makefile b/libcult/examples/trace/makefile new file mode 100644 index 0000000..57e2b7b --- /dev/null +++ b/libcult/examples/trace/makefile @@ -0,0 +1,48 @@ +# file      : examples/trace/makefile +# author    : Boris Kolpackov <boris@kolpackov.net> +# copyright : Copyright (c) 2005-2010 Boris Kolpackov +# license   : GNU GPL v2; see accompanying LICENSE file + +include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make + +cxx_tun   := trace.cxx +cxx_obj   := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o)) +cxx_od    := $(cxx_obj:.o=.o.d) + +cult.l             := $(out_root)/cult/cult.l +cult.l.cpp-options := $(out_root)/cult/cult.l.cpp-options + +trace     := $(out_base)/trace +clean     := $(out_base)/.clean + + +# Build. +# +$(trace): $(cxx_obj) $(cult.l) + +$(cxx_obj) $(cxx_od): $(cult.l.cpp-options) + +$(call include-dep,$(cxx_od)) + + +# Convenience alias for default target. +# +$(out_base)/: $(trace) + + +# Clean. +# +$(clean): $(trace).o.clean           \ +  $(addsuffix .cxx.clean,$(cxx_obj)) \ +  $(addsuffix .cxx.clean,$(cxx_od)) + + +# How to. +# +$(call include,$(bld_root)/cxx/o-e.make) +$(call include,$(bld_root)/cxx/cxx-o.make) +$(call include,$(bld_root)/cxx/cxx-d.make) + +# Dependencies. +# +$(call import,$(src_root)/cult/makefile) diff --git a/libcult/examples/trace/trace.cxx b/libcult/examples/trace/trace.cxx new file mode 100644 index 0000000..e2a09d4 --- /dev/null +++ b/libcult/examples/trace/trace.cxx @@ -0,0 +1,51 @@ +// file      : examples/trace/trace.cxx +// author    : Boris Kolpackov <boris@kolpackov.net> +// copyright : Copyright (c) 2005-2010 Boris Kolpackov +// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file + +#include <cult/types.hxx> + +#include <cult/trace/log.hxx> +#include <cult/trace/record.hxx> +#include <cult/trace/stream.hxx> + +#include <ostream> + +using namespace Cult; + +struct Foo {}; + +std::ostream& +operator<< (std::ostream& o, Foo const&) +{ +  return o << "::Foo"; +} + +Trace::Stream tout ("Examples::Trace", 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; +}  | 
