[Guessnet-devel] r283 - in /trunk: ./ src/IFace.cc src/guessnet.cc src/scanner/scanbag.cc src/util/output.cc src/util/output.h src/util/processrunner.cc
enrico at users.alioth.debian.org
enrico at users.alioth.debian.org
Thu Dec 6 12:03:00 UTC 2007
Author: enrico
Date: Thu Dec 6 12:03:00 2007
New Revision: 283
URL: http://svn.debian.org/wsvn/?sc=1&rev=283
Log:
r2914 at viaza: enrico | 2007-12-06 12:02:51 +0000
Output routines are now thread safe, and the code only uses the thread safe output routines.
Modified:
trunk/ (props changed)
trunk/src/IFace.cc
trunk/src/guessnet.cc
trunk/src/scanner/scanbag.cc
trunk/src/util/output.cc
trunk/src/util/output.h
trunk/src/util/processrunner.cc
Propchange: trunk/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Thu Dec 6 12:03:00 2007
@@ -1,4 +1,4 @@
-45d51ea0-ddb4-4b47-b336-85eb0213f017:/local/guessnet-trunk:2908
+45d51ea0-ddb4-4b47-b336-85eb0213f017:/local/guessnet-trunk:2914
495996b6-63de-0310-a384-bb1ca15bde42:/trunk-old/guessnet:39
495996b6-63de-0310-a384-bb1ca15bde42:/trunk/guessnet:37
7bf62ca7-16f0-0310-b612-e8866aeedc84:/local/guessnet:7319
Modified: trunk/src/IFace.cc
URL: http://svn.debian.org/wsvn/trunk/src/IFace.cc?rev=283&op=diff
==============================================================================
--- trunk/src/IFace.cc (original)
+++ trunk/src/IFace.cc Thu Dec 6 12:03:00 2007
@@ -54,7 +54,7 @@
#include <stdlib.h>
#include <assert.h>
-#include <iostream>
+#include <sstream>
#include "util/output.h"
@@ -578,9 +578,11 @@
string s_bcst = addr_flags & IFP_VALID_BROADADDR ? inet_ntoa(broadaddr.sin_addr) : "invalid";
string s_mask = addr_flags & IFP_VALID_NETMASK ? inet_ntoa(netmask.sin_addr) : "invalid";
- cout << s_addr << " dst " << s_dest << " bcast " << s_bcst << " nm "
+ stringstream str;
+ str << s_addr << " dst " << s_dest << " bcast " << s_bcst << " nm "
<< s_mask << " flags " << flags << " aflags " << addr_flags
<< " hwaddrtype " << hwaddr.sa_family << endl;
+ output("%s", str.str().c_str());
}
// vim:set ts=4 sw=4:
Modified: trunk/src/guessnet.cc
URL: http://svn.debian.org/wsvn/trunk/src/guessnet.cc?rev=283&op=diff
==============================================================================
--- trunk/src/guessnet.cc (original)
+++ trunk/src/guessnet.cc Thu Dec 6 12:03:00 2007
@@ -57,7 +57,6 @@
#include <set>
#include <vector>
-#include <iostream>
using namespace std;
using namespace wibble::sys;
@@ -174,9 +173,9 @@
// Output the profile name we found
if (profile.size())
{
- cout << profile << endl;
+ output("%s\n", profile.c_str());
} else {
- cout << GuessnetEnvironment::get().defprof() << endl;
+ output("%s\n", GuessnetEnvironment::get().defprof().c_str());
}
} catch (std::exception& e) {
error("%s\n", e.what());
Modified: trunk/src/scanner/scanbag.cc
URL: http://svn.debian.org/wsvn/trunk/src/scanner/scanbag.cc?rev=283&op=diff
==============================================================================
--- trunk/src/scanner/scanbag.cc (original)
+++ trunk/src/scanner/scanbag.cc Thu Dec 6 12:03:00 2007
@@ -1,6 +1,7 @@
#include "scanbag.h"
#include "util/output.h"
-#include <iostream>
+
+#include <sstream>
using namespace std;
using namespace wibble::sys;
@@ -130,16 +131,18 @@
{
MutexLock lock(mutex);
+ stringstream str;
for (const_iterator i = begin(); i != end(); i++)
{
- cout << i->first << ": ";
+ str << i->first << ": ";
for (set<string>::const_iterator j = i->second.begin(); j != i->second.end(); j++)
if (j == i->second.begin())
- cout << *j;
+ str << *j;
else
- cout << ", ", *j;
- cout << endl;
+ str << ", ", *j;
+ str << endl;
}
+ output("%s", str.str().c_str());
}
// vim:set ts=3 sw=3:
Modified: trunk/src/util/output.cc
URL: http://svn.debian.org/wsvn/trunk/src/util/output.cc?rev=283&op=diff
==============================================================================
--- trunk/src/util/output.cc (original)
+++ trunk/src/util/output.cc Thu Dec 6 12:03:00 2007
@@ -19,6 +19,7 @@
*/
#include "util/output.h"
+#include <wibble/sys/mutex.h>
#include <cstdio>
#include <cstdarg>
@@ -30,6 +31,7 @@
namespace util {
static Output* instance = 0;
+static wibble::sys::Mutex outputMutex;
Output& Output::get() throw ()
{
@@ -45,8 +47,10 @@
using namespace util;
-void fatal_error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2)
+void fatal_error(const char* fmt, ...) ATTR_PRINTF(1, 2)
{
+ wibble::sys::MutexLock lock(outputMutex);
+
fprintf(stderr, "guessnet: ");
va_list ap;
va_start(ap, fmt);
@@ -58,8 +62,10 @@
exit(1);
}
-void error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2)
+void error(const char* fmt, ...) ATTR_PRINTF(1, 2)
{
+ wibble::sys::MutexLock lock(outputMutex);
+
va_list ap;
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -68,8 +74,10 @@
va_end(ap);
}
-void warning(const char* fmt, ...) throw() ATTR_PRINTF(1, 2)
+void warning(const char* fmt, ...) ATTR_PRINTF(1, 2)
{
+ wibble::sys::MutexLock lock(outputMutex);
+
va_list ap;
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -78,8 +86,20 @@
va_end(ap);
}
-void verbose(const char* fmt, ...) throw() ATTR_PRINTF(1, 2)
+void output(const char* fmt, ...) ATTR_PRINTF(1, 2)
{
+ wibble::sys::MutexLock lock(outputMutex);
+
+ va_list ap;
+ va_start(ap, fmt);
+ vfprintf(stdout, fmt, ap);
+ va_end(ap);
+}
+
+void verbose(const char* fmt, ...) ATTR_PRINTF(1, 2)
+{
+ wibble::sys::MutexLock lock(outputMutex);
+
if (Output::get().verbose())
{
va_list ap;
@@ -92,8 +112,10 @@
}
}
-void debug(const char* fmt, ...) throw() ATTR_PRINTF(1, 2)
+void debug(const char* fmt, ...) ATTR_PRINTF(1, 2)
{
+ wibble::sys::MutexLock lock(outputMutex);
+
if (Output::get().debug())
{
va_list ap;
Modified: trunk/src/util/output.h
URL: http://svn.debian.org/wsvn/trunk/src/util/output.h?rev=283&op=diff
==============================================================================
--- trunk/src/util/output.h (original)
+++ trunk/src/util/output.h Thu Dec 6 12:03:00 2007
@@ -74,11 +74,13 @@
#endif
#endif
-void fatal_error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2);
-void error(const char* fmt, ...) throw() ATTR_PRINTF(1, 2);
-void warning(const char* fmt, ...) throw() ATTR_PRINTF(1, 2);
-void verbose(const char* fmt, ...) throw() ATTR_PRINTF(1, 2);
-void debug(const char* fmt, ...) throw() ATTR_PRINTF(1, 2);
+void fatal_error(const char* fmt, ...) ATTR_PRINTF(1, 2);
+void error(const char* fmt, ...) ATTR_PRINTF(1, 2);
+void warning(const char* fmt, ...) ATTR_PRINTF(1, 2);
+// Normal output to stdout
+void output(const char* fmt, ...) ATTR_PRINTF(1, 2);
+void verbose(const char* fmt, ...) ATTR_PRINTF(1, 2);
+void debug(const char* fmt, ...) ATTR_PRINTF(1, 2);
// vim:set ts=4 sw=4:
#endif
Modified: trunk/src/util/processrunner.cc
URL: http://svn.debian.org/wsvn/trunk/src/util/processrunner.cc?rev=283&op=diff
==============================================================================
--- trunk/src/util/processrunner.cc (original)
+++ trunk/src/util/processrunner.cc Thu Dec 6 12:03:00 2007
@@ -85,7 +85,7 @@
cmd.exec();
} catch (std::exception& e) {
- fprintf(stderr, "%s\n", e.what());
+ error("%s\n", e.what());
}
return 1;
}
@@ -285,7 +285,7 @@
proclist.erase(i);
}
} catch (std::exception& e) {
- fprintf(stderr, "%s\n", e.what());
+ error("%s\n", e.what());
}
}
}
More information about the Guessnet-devel
mailing list