Add libboost-signals library to build setup
g0dil [Fri, 12 Dec 2008 16:03:55 +0000 (16:03 +0000)]
Utils/Logger: Enhance non-formatted time format to show seconds since first log message

git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1018 270642c3-0616-0410-b53a-bc976706d245

SConstruct
Utils/Logger/IOStreamTarget.cc
Utils/Logger/IOStreamTarget.hh
Utils/Logger/TimeSource.cti
debian/control
senfscons/SENFSCons.py
senfscons/senfutil.py

index b992cd6..d1b492c 100644 (file)
@@ -154,7 +154,7 @@ INLINE_OPTS = [ '-finline-limit=5000' ]
 env.Append(
    CPPPATH = [ '#/include' ],
    CXXFLAGS = [ '-Wall', '-Woverloaded-virtual', '-Wno-long-long' ] + INLINE_OPTS,
-   LIBS = [ 'readline', 'rt', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB' ],
+   LIBS = [ 'readline', 'rt', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB' ],
    TEST_EXTRA_LIBS = [ '$BOOSTFSLIB' ],
    DOXY_XREF_TYPES = [ 'bug', 'fixme', 'todo', 'idea' ],
    DOXY_HTML_XSL = '#/doclib/html-munge.xsl',
index d1b30e8..286f3ba 100644 (file)
@@ -43,7 +43,7 @@
 
 prefix_ senf::log::IOStreamTarget::IOStreamTarget(std::ostream & os)
     : stream_ (os), tag_ (detail::getDefaultTag()), noformat_ (false), showTime_ (true),
-      showStream_ (false), showLevel_ (true), showArea_ (true) 
+      showStream_ (false), showLevel_ (true), showArea_ (true), timeBase_ (-1)
 {
     std::locale const & loc (datestream_.getloc());
     datestream_.imbue( std::locale(
@@ -53,9 +53,10 @@ prefix_ senf::log::IOStreamTarget::IOStreamTarget(std::ostream & os)
 
 prefix_ void senf::log::IOStreamTarget::timeFormat(std::string const & format)
 {
-    if (format.empty())
+    if (format.empty()) {
         noformat_ = true;
-    else {
+        timeBase_ = -1;
+    } else {
         noformat_ = false;
         std::locale const & loc (datestream_.getloc());
         datestream_.imbue( std::locale(
@@ -86,8 +87,14 @@ prefix_ void senf::log::IOStreamTarget::v_write(time_type timestamp,
         Tokenizer::iterator const i_end (tokenizer.end());
 
         if (showTime_) {
-            if (noformat_)
-                datestream_ << std::setfill('0') << std::setw(19) << timestamp;
+            if (noformat_) {
+                if (timeBase_ == -1) timeBase_ = timestamp;
+                time_type delta (timestamp - timeBase_);
+                datestream_ << std::setfill('0') << std::setw(10)
+                            << (delta / 1000000000ll) << '.'
+                            << std::setfill('0') << std::setw(9)
+                            << (delta % 1000000000ll);
+            }
             else 
                 datestream_ << senf::ClockService::abstime(timestamp);
             datestream_ << ' ';
index ba4a3fd..8aa5829 100644 (file)
@@ -98,6 +98,7 @@ namespace log {
         bool showLevel_;
         bool showArea_;
 
+        time_type timeBase_;
     };
 
 }}
index 659b65a..708de01 100644 (file)
@@ -36,7 +36,7 @@
 template <class Source>
 prefix_ void senf::log::timeSource()
 {
-    timeSource(std::auto_ptr<Source>(new Source()));
+    timeSource(std::auto_ptr<TimeSource>(new Source()));
 }
 
 ///////////////////////////////cti.e///////////////////////////////////////
index 92aedad..aee4b06 100644 (file)
@@ -4,8 +4,8 @@ Maintainer: Stefan Bund <senf-dev@lists.berlios.de>
 Build-Depends: debhelper (>= 5), scons (>= 0.97), g++, binutils-dev, libboost-dev, 
        libboost-test-dev, libboost-date-time-dev, libboost-regex-dev, 
        libboost-filesystem-dev, libboost-serialization-dev, libboost-iostreams-dev,
-       doxygen (>= 1.5.5), libreadline-dev, dia, tidy, xsltproc, graphviz, perl-base, 
-       linklint, netpbm
+       libboost-signal-dev, doxygen (>= 1.5.5), libreadline-dev, dia, tidy, xsltproc, 
+       graphviz, perl-base, linklint, netpbm
 Standards-Version: 3.7.2 
 Section: libs
 
@@ -36,7 +36,8 @@ Section: libdevel
 Architecture: all
 Depends: binutils-dev, libboost-dev, libboost-regex-dev, 
        libboost-date-time-dev, libboost-thread-dev, libboost-serialization-dev,
-       libboost-filesystem-dev, libsenf (=${source:Version}) | libsenf-dbg (=${source:Version})
+       libboost-filesystem-dev, libboost-signal-dev,
+       libsenf (=${source:Version}) | libsenf-dbg (=${source:Version})
 Recommends: libsenf (=${source:Version}), libsenf-dbg (=${source:Version})
 Suggests: libsenf-doc (=${source:Version})
 Description: SENF Extensible Network Framework, header files
index d8d287c..b1bf0c4 100644 (file)
@@ -163,6 +163,7 @@ def FinalizeBoost(env):
     env['BOOSTREGEXLIB'] = 'boost_regex' + env['BOOST_VARIANT']
     env['BOOSTFSLIB'] = 'boost_filesystem' + env['BOOST_VARIANT']
     env['BOOSTIOSTREAMSLIB'] = 'boost_iostreams' + env['BOOST_VARIANT']
+    env['BOOSTSIGNALSLIB'] = 'boost_signals' + env['BOOST_VARIANT']
 
     if env['BOOST_PREFIX']:
         env['BOOST_LIBDIR'] = os.path.join(env['BOOST_PREFIX'], 'lib')
index 3d2a742..af58a20 100644 (file)
@@ -8,9 +8,11 @@ from SCons.Script import *
 # c) check for a local SENF, set options accordingly and update that SENF if needed
 
 def SetupForSENF(env):
-    env.Append( LIBS           = [ 'senf', 'readline', 'rt', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB' ],
+    env.Append( LIBS           = [ 'senf', 'readline', 'rt', '$BOOSTREGEXLIB',
+                                   '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB' ],
                 BOOSTREGEXLIB  = 'boost_regex',
                 BOOSTIOSTREAMSLIB = 'boost_iostreams',
+                BOOSTSIGNALSLIB = 'boost_signals',
                 CXXFLAGS       = [ '-Wno-long-long',
                                    '${"$CXXFLAGS_"+(final and "final" or "debug")}',
                                    '${profile and ("-g","-pg") or None}' ],