Index: source/ariba/utility/misc/CMakeLists.txt
===================================================================
--- source/ariba/utility/misc/CMakeLists.txt	(revision 12775)
+++ 	(revision )
@@ -1,51 +1,0 @@
-# [License]
-# The Ariba-Underlay Copyright
-#
-# Copyright (c) 2008-2012, Institute of Telematics, UniversitÃ€t Karlsruhe (TH)
-#
-# Institute of Telematics
-# UniversitÃ€t Karlsruhe (TH)
-# Zirkel 2, 76128 Karlsruhe
-# Germany
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE OF TELEMATICS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OF TELEMATICS OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# The views and conclusions contained in the software and documentation
-# are those of the authors and should not be interpreted as representing
-# official policies, either expressed or implied, of the Institute of
-# Telematics.
-# [License]
-
-add_headers(
-    Demultiplexer.hpp
-    Helper.h
-    KeyMapping.hpp
-    sha1.h
-    StringFormat.h
-    )
-
-add_sources(
-    Helper.cpp
-    sha1.cpp
-    StringFormat.cpp
-    )
Index: source/ariba/utility/misc/Demultiplexer.hpp
===================================================================
--- source/ariba/utility/misc/Demultiplexer.hpp	(revision 12775)
+++ source/ariba/utility/misc/Demultiplexer.hpp	(revision 2378)
@@ -1,3 +1,3 @@
-// [License]
+// [Licence]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [License]
+// [Licence]
 
 #ifndef DEMULTIPLEXER_H__
@@ -41,5 +41,4 @@
 
 #include <list>
-#include <iostream>
 #include <map>
 #include <boost/thread/mutex.hpp>
@@ -47,5 +46,4 @@
 #include "ariba/utility/messages/Message.h"
 
-using std::cout;
 using std::list;
 using std::map;
@@ -75,24 +73,4 @@
 	boost::mutex						mapMutex;
 
-	void debugprint() {
-		cout << "-------------start--------" << std::endl;
-		{
-			LISTENER_SERVICE_MAP_CITERATOR i = mapListenerService.begin();
-			LISTENER_SERVICE_MAP_CITERATOR iend = mapListenerService.end();
-
-			for( ; i != iend; i++ )
-				cout << "xxx" << i->first.toString() << " -> " << i->second << std::endl;
-		}
-		cout << "-----------------------" << std::endl;
-		{
-			SERVICE_LISTENER_MAP_CITERATOR i = mapServiceListener.begin();
-			SERVICE_LISTENER_MAP_CITERATOR iend = mapServiceListener.end();
-
-			for( ; i != iend; i++ )
-				cout << "xxx" << i->first << " -> " << i->second.toString() << std::endl;
-		}
-		cout << "-------------end---------" << std::endl;
-	}
-
 public:
 
@@ -105,14 +83,15 @@
 	void registerItem( S id, T listener ) {
 		boost::mutex::scoped_lock lock( mapMutex );
-
-		mapServiceListener.insert( SERVICE_LISTENER_PAIR( id, listener ) );
-		mapListenerService.insert( LISTENER_SERVICE_PAIR( listener, id ) );
+		{
+			mapServiceListener.insert( SERVICE_LISTENER_PAIR( id, listener ) );
+			mapListenerService.insert( LISTENER_SERVICE_PAIR( listener, id ) );
+		}
 	}
 
-	void unregisterItem( S id ) {
+	void unregisterItem( S id) {
 		T listener = get( id );
 
+		boost::mutex::scoped_lock lock( mapMutex );
 		{
-			boost::mutex::scoped_lock lock( mapMutex );
 			mapServiceListener.erase( id );
 			mapListenerService.erase( listener );
@@ -121,5 +100,5 @@
 
 	void unregisterItem( T listener ) {
-		S id = get( listener );
+		S id = get (listener);
 		unregisterItem( id );
 	}
@@ -127,29 +106,34 @@
 	S get( T listener ) {
 		boost::mutex::scoped_lock lock( mapMutex );
-
-		LISTENER_SERVICE_MAP_CITERATOR it = mapListenerService.find( listener );
-		return it->second;
+		{
+			LISTENER_SERVICE_MAP_CITERATOR it = mapListenerService.find( listener );
+			return it->second;
+		}
 	}
 
 	T get( S id ) {
 		boost::mutex::scoped_lock lock( mapMutex );
+		{
+			SERVICE_LISTENER_MAP_CITERATOR it = mapServiceListener.find( id );
 
-		SERVICE_LISTENER_MAP_CITERATOR it = mapServiceListener.find( id );
-		if( it == mapServiceListener.end() ) 	return 0;
-		else					return it->second;
+			if( it == mapServiceListener.end() ) 	return NULL;
+			else					return it->second;
+		}
 	}
 
 	bool contains( T listener ) {
 		boost::mutex::scoped_lock lock( mapMutex );
-
-		LISTENER_SERVICE_MAP_CITERATOR it = mapListenerService.find( listener );
-		return ( it != mapListenerService.end() );
+		{
+			LISTENER_SERVICE_MAP_CITERATOR it = mapListenerService.find( listener );
+			return ( it != mapListenerService.end() );
+		}
 	}
 
 	bool contains( S id ) {
 		boost::mutex::scoped_lock lock( mapMutex );
-
-		SERVICE_LISTENER_MAP_CITERATOR it = mapServiceListener.find( id );
-		return ( it != mapServiceListener.end() );
+		{
+			SERVICE_LISTENER_MAP_CITERATOR it = mapServiceListener.find( id );
+			return ( it != mapServiceListener.end() );
+		}
 	}
 
@@ -157,6 +141,5 @@
 	typedef list<T> TwoList;
 
-	OneList getOneList() {
-		boost::mutex::scoped_lock lock( mapMutex );
+	OneList getOneList() const {
 		OneList ret;
 
@@ -168,6 +151,5 @@
 	}
 
-	TwoList getTwoList() {
-		boost::mutex::scoped_lock lock( mapMutex );
+	TwoList getTwoList() const {
 		TwoList ret;
 
Index: source/ariba/utility/misc/Helper.cpp
===================================================================
--- source/ariba/utility/misc/Helper.cpp	(revision 12775)
+++ source/ariba/utility/misc/Helper.cpp	(revision 2378)
@@ -1,3 +1,3 @@
-// [License]
+// [Licence]
 // The Ariba-Underlay Copyright
 //
@@ -35,10 +35,7 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [License]
+// [Licence]
 
 #include "Helper.h"
-
-#include <boost/lexical_cast.hpp>
-#include <boost/algorithm/string/replace.hpp>
 
 namespace ariba {
@@ -52,5 +49,5 @@
 	_ultoa_s (val, buf, 16, 10);
 #else
-	sprintf (buf, "%lu", val);
+	sprintf (buf, "%u", val);
 #endif
 
@@ -65,5 +62,5 @@
 	_ltoa_s (val, buf, 16, 10);
 #else
-	sprintf (buf, "%li", val);
+	sprintf (buf, "%i", val);
 #endif
 
@@ -78,5 +75,5 @@
 	_ultoa_s (val, buf, 16, 16);
 #else
-	sprintf (buf, "%lx", val);
+	sprintf (buf, "%x", val);
 #endif
 
@@ -96,5 +93,5 @@
 	_ltoa_s (val, buf, 16, 16);
 #else
-	sprintf (buf, "%lx", val);
+	sprintf (buf, "%x", val);
 #endif
 
@@ -252,13 +249,5 @@
 unsigned long Helper::getElapsedMillis ()
 {
-	static unsigned long zero = 0;
-
-	struct timeb tp;
-	ftime( &tp );
-
-	unsigned long val = tp.time*1000 + tp.millitm;
-	if( zero == 0 ) zero = val;
-
-	return val-zero;
+	return static_cast<unsigned long>(((double)clock() / (double)(CLOCKS_PER_SEC)) * 1000.0);
 }
 
Index: source/ariba/utility/misc/Helper.h
===================================================================
--- source/ariba/utility/misc/Helper.h	(revision 12775)
+++ source/ariba/utility/misc/Helper.h	(revision 2378)
@@ -1,3 +1,3 @@
-// [License]
+// [Licence]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [License]
+// [Licence]
 
 #ifndef __HELPER_H
@@ -45,5 +45,4 @@
 #include <ctime>
 #include <ostream>
-#include <cstdio>
 #include <iomanip>
 #include <cassert>
@@ -53,5 +52,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <sys/timeb.h>
+#include <boost/lexical_cast.hpp>
+#include <boost/algorithm/string/replace.hpp>
 
 #ifdef WIN32
@@ -67,4 +67,5 @@
 using std::setfill;
 using std::setw;
+using std::cout;
 using std::string;
 using std::ostream;
@@ -167,5 +168,5 @@
 
 	if (secondsSleep > 0)
-		::sleep(secondsSleep);
+		sleep(secondsSleep);
 
 	//
Index: source/ariba/utility/misc/KeyMapping.hpp
===================================================================
--- source/ariba/utility/misc/KeyMapping.hpp	(revision 12775)
+++ source/ariba/utility/misc/KeyMapping.hpp	(revision 2378)
@@ -1,3 +1,3 @@
-// [License]
+// [Licence]
 // The Ariba-Underlay Copyright
 //
@@ -35,5 +35,5 @@
 // official policies, either expressed or implied, of the Institute of
 // Telematics.
-// [License]
+// [Licence]
 
 #ifndef KEY_MAPPING_H__
@@ -69,5 +69,5 @@
 public:
 	inline KeyMapping(){
-		srand( time(NULL) );
+		srand(time(0));
 	}
 
Index: source/ariba/utility/misc/OvlVis.cpp
===================================================================
--- source/ariba/utility/misc/OvlVis.cpp	(revision 2378)
+++ source/ariba/utility/misc/OvlVis.cpp	(revision 2378)
@@ -0,0 +1,670 @@
+// [Licence]
+// The Ariba-Underlay Copyright
+//
+// Copyright (c) 2008-2009, Institute of Telematics, UniversitÃ€t Karlsruhe (TH)
+//
+// Institute of Telematics
+// UniversitÃ€t Karlsruhe (TH)
+// Zirkel 2, 76128 Karlsruhe
+// Germany
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE INSTITUTE OF TELEMATICS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ARIBA PROJECT OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// The views and conclusions contained in the software and documentation
+// are those of the authors and should not be interpreted as representing
+// official policies, either expressed or implied, of the Institute of
+// Telematics.
+// [Licence]
+
+#include "OvlVis.h"
+
+namespace ariba {
+namespace utility {
+
+//*****************************************************
+//*****************************************************
+//*****************************************************
+
+use_logging_cpp(OvlVis);
+
+OvlVis::OvlVis() : socket(io_service), socketOpened(false) {
+
+	if( ! Configuration::instance().exists("DEMO_OvlVisIP") )   return;
+	if( ! Configuration::instance().exists("DEMO_OvlVisPort") ) return;
+
+	string serverIP = Configuration::instance().read<string>("DEMO_OvlVisIP");
+	string serverPort = Configuration::instance().read<string>("DEMO_OvlVisPort");
+	if( serverIP.length() == 0 || serverPort.length() == 0) return;
+
+	logging_debug( "connecting to ovlvis " + serverIP + " on " + serverPort );
+
+	tcp::resolver resolver(io_service);
+	tcp::resolver::query query(
+		serverIP,
+		serverPort,
+		tcp::resolver::query::passive |
+		tcp::resolver::query::address_configured |
+		tcp::resolver::query::numeric_service);
+
+	tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
+	tcp::resolver::iterator end;
+
+	boost::system::error_code error = boost::asio::error::host_not_found;
+	while (error && endpoint_iterator != end){
+		socket.close();
+		socket.connect(*endpoint_iterator++, error);
+	}
+
+	if (error){
+		logging_warn( "OvlVis could not connect to GUI" );
+	} else {
+		socketOpened = true;
+	}
+}
+
+OvlVis::~OvlVis(){
+
+	socket.close();
+
+}
+
+void OvlVis::sendMessage( const string msg, NETWORK_ID nid ) {
+
+	sendSocket( msg );
+
+// 	{
+// 		// auto layout
+// 		ostringstream out;
+//
+// 		out 	<< "VisMsgOptimizeView" << ";"
+// 			<< Helper::ultos(nid)     << ";" // network id is ignored in the message renderer, just renders the current viewed network
+// 			<< "0"                  << std::endl;
+//
+// 		sendSocket( out.str() );
+// 	}
+
+// 	{	// auto zoom
+// 		ostringstream out;
+//
+// 		out 	<< "VisMsgOptimizeView" << ";"
+// 			<< Helper::ultos(nid)     << ";" // network id is ignored in the message renderer, just renders the current viewed network
+// 			<< "1"                  << std::endl;
+//
+// 		sendSocket( out.str() );
+// 	}
+
+}
+
+void OvlVis::sendSocket(const string msg){
+	if( socket.is_open() && socketOpened )
+		socket.send( boost::asio::buffer(msg) );
+}
+
+//*****************************************************
+//*****************************************************
+//*****************************************************
+
+void OvlVis::visCreate(
+	NETWORK_ID network,
+	NodeID& node,
+	string nodename,
+	string info
+	){
+
+	ostringstream out;
+
+	out 	<< "VisMsgCreate"         << ";"
+		<< Helper::ultos(network) << ";"
+		<< node.toString()        << ";"
+		<< nodename               << ";"
+		<< "" /*netName*/         << ";"
+		<< "" /*ip*/              << ";"
+		<< "" /*port*/            << ";"
+		<< "0"                    << ";"
+		<< info                   << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visChangeStatus(
+	NETWORK_ID network,
+	NodeID& node,
+	bool enable,
+	string info
+	){
+
+	ostringstream out;
+
+	out 	<< "VisMsgChangeStatus"   << ";"
+		<< Helper::ultos(network) << ";"
+		<< node.toString()        << ";"
+		<< (enable ? "1" : "0")   << ";"
+		<< info                   << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visConnect(
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	string info
+	){
+
+	// if we already have a link between the two nodes
+	// we just ignore the call and leave the old link
+
+	if( networkLinks.exists( network, NodePair(srcnode,destnode) )) return;
+
+	ostringstream out;
+	unsigned long edgekey = networkLinks.insert( network, NodePair(srcnode,destnode) );
+
+	out 	<< "VisMsgConnect"        << ";"
+		<< Helper::ultos(network) << ";"
+		<< edgekey 		  << ";"
+		<< srcnode.toString()     << ";"
+		<< destnode.toString()    << ";"
+		<< "0"                    << ";"
+		<< info                   << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visDisconnect(
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	string info
+	){
+
+	if( !networkLinks.exists(network, NodePair(srcnode, destnode)) ) return;
+
+	unsigned long edgekey = networkLinks.get( network, NodePair(srcnode, destnode) );
+	networkLinks.remove( network, NodePair(srcnode, destnode) );
+
+	ostringstream out;
+	out	<< "VisMsgDisconnect"     << ";"
+		<< Helper::ultos(network) << ";"
+		<< Helper::ultos(edgekey) << ";"
+		<< info                   << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visFailedConnect(
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	string info
+	){
+
+	ostringstream out;
+
+	out 	<< "VisMsgFailedConnect"  << ";"
+		<< Helper::ultos(network) << ";"
+		<< srcnode.toString()     << ";"
+		<< destnode.toString()    << ";"
+		<< info                   << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visShutdown(
+	NETWORK_ID network,
+	NodeID& node,
+	string info
+	){
+
+	ostringstream out;
+
+	out	<< "VisMsgShutdown"       << ";"
+		<< Helper::ultos(network) << ";"
+		<< node.toString()        << ";"
+		<< info                   << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+//*****************************************************
+//*****************************************************
+//*****************************************************
+
+void OvlVis::visChangeNodeColor (
+	NETWORK_ID network,
+	NodeID& node,
+	unsigned char r,
+	unsigned char g,
+	unsigned char b
+	){
+
+	ostringstream out;
+
+	out	<< "VisMsgChangeNodeColor"       	<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< node.toString()        		<< ";"
+		<< ariba::utility::Helper::ultos(r) 	<< ";"
+		<< ariba::utility::Helper::ultos(g) 	<< ";"
+		<< ariba::utility::Helper::ultos(b) 	<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visChangeNodeColor (
+	NETWORK_ID network,
+	NodeID& node,
+	NODE_COLORS color
+	){
+
+	unsigned char r = 0;
+	unsigned char g = 0;
+	unsigned char b = 0;
+
+	switch( color ) {
+		case NODE_COLORS_GREY: 	r = 128; g = 128; b = 128; break;
+		case NODE_COLORS_GREEN:	r = 0;   g = 200; b = 0;   break;
+		case NODE_COLORS_RED:	r = 255; g = 0;   b = 0;   break;
+	}
+
+	visChangeNodeColor( network, node, r, g, b );
+}
+
+void OvlVis::visChangeNodeIcon (
+                NETWORK_ID network,
+                NodeID& node,
+                ICON_ID icon
+                ){
+
+        ostringstream out;
+
+        out	<< "VisMsgChangeNodeIcon"               << ";"
+                << Helper::ultos(network) 		<< ";"
+                << node.toString()        		<< ";"
+                << Helper::ultos((unsigned int)icon)	<< std::endl;
+
+        sendMessage( out.str(), network );
+}
+
+void OvlVis::visShowNodeLabel (
+	NETWORK_ID network,
+	NodeID& node,
+	string label
+	){
+
+	ostringstream out;
+
+	out	<< "VisMsgShowNodeLabel"       		<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< node.toString()        		<< ";"
+		<< label				<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visDeleteNodeLabel (
+	NETWORK_ID network,
+	NodeID& node
+	){
+
+	ostringstream out;
+
+	out	<< "VisMsgDeleteNodeLable"       	<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< node.toString()        		<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visShowNodeBubble (
+                NETWORK_ID network,
+                NodeID& node,
+                string label
+                ){
+
+	unsigned long bubbleKey = nodeBubbles.insert( network, node );
+        ostringstream out;
+
+        out       << "VisMsgShowNodeBubble"     << ";"
+                  << Helper::ultos(network)     << ";"
+                  << Helper::ultos(bubbleKey)   << ";"
+                  << node.toString()            << ";"
+                  << label                      << std::endl;
+
+        sendMessage( out.str(), network );
+}
+
+
+void OvlVis::visDeleteNodeBubble (
+	NETWORK_ID network,
+	NodeID& node
+	){
+
+	if( !nodeBubbles.exists(network, node)) return;
+
+	unsigned long bubbleID = nodeBubbles.get( network, node );
+	nodeBubbles.remove( network, node );
+
+	ostringstream out;
+
+	out	<< "VisMsgDeleteBubble"         << ";"
+                << Helper::ultos(network) 	<< ";"
+                << Helper::ultos(bubbleID)      << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visShowShiftedNodeIcon (
+                NETWORK_ID network,
+                NodeID& node,
+                ICON_ID iconID,
+		unsigned int timeout
+                ){
+
+	unsigned long iconKey = shiftedNodeIcons.insert( network, node );
+
+        ostringstream out;
+
+        out	<< "VisMsgShowNodeIcon"      	<< ";"
+                << Helper::ultos(network)   	<< ";"
+                << Helper::ultos(iconKey)       << ";"
+                << node.toString()       	<< ";"
+                << Helper::ultos(iconID)	<< std::endl;
+
+        sendMessage( out.str(), network );
+
+	if( timeout > 0 ){
+		TimedoutIcon* obj = new TimedoutIcon( network, node, timeout );
+		obj->startIcon();
+	}
+}
+
+void OvlVis::visDeleteShiftedNodeIcon (
+                NETWORK_ID network,
+                NodeID& node
+                ){
+
+	if( !shiftedNodeIcons.exists(network, node) )return;
+
+	unsigned long iconKey = shiftedNodeIcons.get( network, node );
+	shiftedNodeIcons.remove( network, node );
+
+	ostringstream out;
+
+	out	<< "VisMsgDeleteIcon"           << ";"
+                << Helper::ultos(network) 	<< ";"
+                << Helper::ultos(iconKey)       << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+//*****************************************************
+//*****************************************************
+//*****************************************************
+
+void OvlVis::visChangeLinkWidth (
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	unsigned int width
+	){
+
+	unsigned long edgekey = networkLinks.get( network, NodePair(srcnode, destnode) );
+
+	ostringstream out;
+	out	<< "VisMsgChangeLinkWidth"       	<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< Helper::ultos(edgekey)		<< ";"
+		<< Helper::ultos(width)			<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visChangeLinkColor (
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	unsigned char r,
+	unsigned char g,
+	unsigned char b
+	){
+
+	ostringstream out;
+	unsigned long edgekey = networkLinks.get( network, NodePair(srcnode, destnode) );
+
+	out	<< "VisMsgChangeLinkColor"       	<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< Helper::ultos(edgekey)			<< ";"
+		<< Helper::ultos(r)			<< ";"
+		<< Helper::ultos(g)			<< ";"
+		<< Helper::ultos(b)			<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visChangeLinkColor (
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	NODE_COLORS color
+	){
+
+	unsigned char r = 0;
+	unsigned char g = 0;
+	unsigned char b = 0;
+
+	switch( color ) {
+		case NODE_COLORS_GREY: 	r = 128; g = 128; b = 128; break;
+		case NODE_COLORS_GREEN:	r = 0;   g = 200; b = 0;   break;
+		case NODE_COLORS_RED:	r = 255; g = 0;   b = 0;   break;
+	}
+
+	visChangeLinkColor( network, srcnode, destnode, r, g, b );
+}
+
+void OvlVis::visShowLinkLabel (
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	string label
+	){
+
+	ostringstream out;
+	unsigned long edgekey = networkLinks.get( network, NodePair(srcnode, destnode) );
+
+	out	<< "VisMsgShowLinkLabel"       		<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< Helper::ultos(edgekey)			<< ";"
+		<< label				<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visDeleteLinkLabel (
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode
+	){
+
+	if( !networkLinks.exists(network, NodePair(srcnode, destnode))) return;
+
+	unsigned long edgekey = networkLinks.get( network, NodePair(srcnode, destnode) );
+	ostringstream out;
+
+	out	<< "VisMsgDeleteLinkLabel"       	<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< Helper::ultos(edgekey)		<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visShowOnLinkIcon (
+                NETWORK_ID network,
+                NodeID& srcnode,
+                NodeID& destnode,
+                ICON_ID iconID
+                ){
+
+	unsigned long iconKey = onLinkIcons.insert(network, NodePair(srcnode, destnode));
+        ostringstream out;
+
+        out	<< "VisMsgShowLinkIcon"      	<< ";"
+                << Helper::ultos(network)   	<< ";"
+                << Helper::ultos(iconKey)       << ";"
+                << srcnode.toString()   	<< ";"
+                << destnode.toString()   	<< ";"
+                << Helper::ultos(iconID)	<< std::endl;
+
+        sendMessage( out.str(), network );
+}
+
+void OvlVis::visDeleteOnLinkIcon (
+                NETWORK_ID network,
+                NodeID& srcnode,
+		NodeID& destnode
+                ){
+
+	if( !onLinkIcons.exists(network, NodePair(srcnode, destnode))) return;
+
+	unsigned long iconKey = onLinkIcons.get( network, NodePair(srcnode, destnode) );
+	onLinkIcons.remove( network, NodePair(srcnode, destnode) );
+
+	ostringstream out;
+
+	out	<< "VisMsgDeleteIcon"           << ";"
+                << Helper::ultos(network) 	<< ";"
+                << Helper::ultos(iconKey)       << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visShowLinkBubble (
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode,
+	string label
+	){
+
+	ostringstream out;
+	unsigned long bubble = linkBubbles.insert( network, NodePair(srcnode, destnode) );
+
+	out	<< "VisMsgShowLinkBubble"	<< ";"
+		<< Helper::ultos(network)	<< ";"
+		<< Helper::ultos(bubble)	<< ";"
+		<< srcnode.toString()   	<< ";"
+		<< destnode.toString()   	<< ";"
+		<< label			<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visDeleteLinkBubble (
+	NETWORK_ID network,
+	NodeID& srcnode,
+	NodeID& destnode
+	){
+
+	if( !linkBubbles.exists(network, NodePair(srcnode, destnode))) return;
+
+	ostringstream out;
+	unsigned long bubble = linkBubbles.get( network, NodePair(srcnode, destnode) );
+	linkBubbles.remove( network, NodePair(srcnode, destnode) );
+
+	out	<< "VisMsgDeleteBubble"		<< ";"
+		<< Helper::ultos(network)	<< ";"
+		<< Helper::ultos(bubble)	<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+//*****************************************************
+//*****************************************************
+//*****************************************************
+
+void OvlVis::visSendMessage (
+	NETWORK_ID network,
+	NodeID& startnode,
+	NodeID& endnode
+	){
+
+	ostringstream out;
+
+	out	<< "VisMsgSendMessage"       		<< ";"
+		<< Helper::ultos(network) 		<< ";"
+		<< startnode.toString()        		<< ";"
+		<< endnode.toString()			<< std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+//*****************************************************
+//*****************************************************
+//*****************************************************
+
+void OvlVis::visCLIOInitMeasurement(
+	NETWORK_ID network,
+	unsigned long edgekey,
+	NodeID& srcnode,
+	NodeID& destnode,
+	string info
+	){
+
+	ostringstream out;
+
+	out << "VisMsgCLIOInitMeasurement" << ";"
+		<< Helper::ultos(network)      << ";"
+		<< Helper::ultos(edgekey)      << ";"
+		<< srcnode.toString()          << ";"
+		<< destnode.toString()         << ";"
+		<< info                        << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+void OvlVis::visCLIOEndMeasurement(
+	NETWORK_ID network,
+	unsigned long edgekey,
+	NodeID& srcnode,
+	NodeID& destnode,
+	string info,
+	string value,
+	string unit
+	){
+
+	ostringstream out;
+
+	out << "VisMsgCLIOEndMeasurement" << ";"
+		<< Helper::ultos(network)     << ";"
+		<< Helper::ultos(edgekey)     << ";"
+		<< srcnode.toString()         << ";"
+		<< destnode.toString()        << ";"
+		<< info                       << ";"
+		<< value		      << ";"
+		<< unit			      << std::endl;
+
+	sendMessage( out.str(), network );
+}
+
+//*****************************************************
+//*****************************************************
+//*****************************************************
+
+}} // namespace ariba, common
Index: source/ariba/utility/misc/OvlVis.h
===================================================================
--- source/ariba/utility/misc/OvlVis.h	(revision 2378)
+++ source/ariba/utility/misc/OvlVis.h	(revision 2378)
@@ -0,0 +1,443 @@
+// [Licence]
+// The Ariba-Underlay Copyright
+//
+// Copyright (c) 2008-2009, Institute of Telematics, UniversitÃ€t Karlsruhe (TH)
+//
+// Institute of Telematics
+// UniversitÃ€t Karlsruhe (TH)
+// Zirkel 2, 76128 Karlsruhe
+// Germany
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE INSTITUTE OF TELEMATICS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ARIBA PROJECT OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// The views and conclusions contained in the software and documentation
+// are those of the authors and should not be interpreted as representing
+// official policies, either expressed or implied, of the Institute of
+// Telematics.
+// [Licence]
+
+#ifndef OVLVIS_H__
+#define OVLVIS_H__
+
+#include <sstream>
+#include <iostream>
+#include <string>
+#include <map>
+#include <boost/utility.hpp>
+#include <boost/asio.hpp>
+#include "ariba/utility/types/NodeID.h"
+#include "ariba/utility/logging/Logging.h"
+#include "ariba/utility/system/Timer.h"
+#include "ariba/utility/misc/Helper.h"
+#include "ariba/utility/misc/KeyMapping.hpp"
+#include "ariba/utility/configuration/Configuration.h"
+
+using std::string;
+using std::map;
+using std::pair;
+using std::make_pair;
+using std::cout;
+using std::ostringstream;
+using boost::asio::ip::tcp;
+using ariba::utility::NodeID;
+using ariba::utility::Configuration;
+using ariba::utility::KeyMapping;
+using ariba::utility::Timer;
+
+namespace ariba {
+namespace utility {
+
+class OvlVis : private boost::noncopyable {
+	use_logging_h(OvlVis);
+public:
+	static OvlVis& instance() { static OvlVis the_inst; return the_inst; }
+
+	typedef enum _NETWORK_ID {
+		NETWORK_ID_BASE_COMMUNICATION 	= 1,
+		NETWORK_ID_BASE_OVERLAY 	= 2,
+		NETWORK_ID_EONSON 		= 3,
+		NETWORK_ID_MCPO 		= 4,
+		NETWORK_ID_CLIO 		= 5,
+		NETWORK_ID_VIDEOSTREAM 		= 6,
+		NETWORK_ID_GAME 		= 7,
+		NETWORK_ID_SECURITY 		= 8,
+	} NETWORK_ID;
+
+	//****************************************************************
+	// Node creation, node connections, status, node deletion, ...
+	//****************************************************************
+
+	/**
+	 * Create a node in the network that is initially unconnected.
+	 */
+	void visCreate (
+		NETWORK_ID network,
+		NodeID& node,
+		string nodename,
+		string info
+		);
+
+	/**
+	 * Change the status of a node -> enable/disable a node.
+	 */
+	void visChangeStatus(
+		NETWORK_ID network,
+		NodeID& node,
+		bool enable,
+		string info
+		);
+
+	/**
+	 * Connect two nodes using a link.
+	 */
+	void visConnect (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		string info
+		);
+
+	/**
+	 * Disconnect the link between two nodes.
+	 */
+	void visDisconnect (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		string info
+		);
+
+	/**
+	 * Indicate that the connection procedure
+	 * between two nodes failed.
+	 */
+	void visFailedConnect (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		string info
+		);
+
+	/**
+	 * Delete a node from the network.
+	 */
+	void visShutdown (
+		NETWORK_ID network,
+		NodeID& node,
+		string info
+		);
+
+	//****************************************************************
+	// Node manipulation: change color, change icon
+	//****************************************************************
+
+	/**
+	 * Change the color of the node.
+	 */
+	void visChangeNodeColor (
+		NETWORK_ID network,
+		NodeID& node,
+		unsigned char r,
+		unsigned char g,
+		unsigned char b
+		);
+
+	typedef enum _NODE_COLORS {
+		NODE_COLORS_GREY,
+		NODE_COLORS_GREEN,
+		NODE_COLORS_RED,
+	} NODE_COLORS;
+
+	/**
+	 * Change the color of the node.
+	 */
+	void visChangeNodeColor (
+		NETWORK_ID network,
+		NodeID& node,
+		NODE_COLORS color
+		);
+
+	/**
+	 * The available icons for changing the
+	 * icon of a node, showing an icon besides
+	 * a node and showing an icon at a link.
+	 */
+	typedef enum _ICON_ID {
+		ICON_ID_DEFAULT_NODE 	= 0,
+		ICON_ID_PC 		= 1,
+		ICON_ID_PC_WORLD 	= 2,
+		ICON_ID_FAILURE 	= 3,
+		ICON_ID_RED_CROSS 	= 4,
+		ICON_ID_CHARACTER_A 	= 5,
+		ICON_ID_CHARACTER_W 	= 6,
+		ICON_ID_CAMERA          = 7,
+	} ICON_ID;
+
+	/**
+	 * Change the icon of a node.
+	 */
+        void visChangeNodeIcon (
+                NETWORK_ID network,
+                NodeID& node,
+                ICON_ID icon
+                );
+
+	/**
+	 * Show the label of the node.
+	 */
+	void visShowNodeLabel (
+		NETWORK_ID network,
+		NodeID& node,
+		string label
+		);
+
+	/**
+	 * Delete the label of the node.
+	 */
+	void visDeleteNodeLabel (
+		NETWORK_ID network,
+		NodeID& node
+		);
+
+	/**
+	 * Show a bubble at the node.
+	 */
+        void visShowNodeBubble (
+                NETWORK_ID network,
+                NodeID& node,
+                string label
+                );
+
+	/**
+	 * Delete a bubble at the node.
+	 */
+	void visDeleteNodeBubble (
+                NETWORK_ID network,
+		NodeID& node
+                );
+
+	/**
+	 * Show an icon besides the node.
+	 */
+        void visShowShiftedNodeIcon (
+                NETWORK_ID network,
+                NodeID& node,
+                ICON_ID iconID,
+		unsigned int timeout = 0
+                );
+
+	/**
+	 * Delete an icon besides the node
+	 */
+        void visDeleteShiftedNodeIcon (
+                NETWORK_ID network,
+                NodeID& node
+                );
+
+	//****************************************************************
+	// Link manipulation: change width, color, show bubbles, icons, ...
+	//****************************************************************
+
+	/**
+	 * Change the link width
+	 */
+	void visChangeLinkWidth (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		unsigned int width
+		);
+
+	/**
+	 * Change the link color
+	 */
+	void visChangeLinkColor (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		unsigned char r,
+		unsigned char g,
+		unsigned char b
+		);
+
+	/**
+	 * Change the link color
+	 */
+	void visChangeLinkColor (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		NODE_COLORS color
+		);
+
+	/**
+	 * Show a link label
+	 */
+	void visShowLinkLabel (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		string label
+		);
+
+	/**
+	 * Delete a link label
+	 */
+	void visDeleteLinkLabel (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode
+		);
+
+	/**
+	 * Show an icon at the link
+	 */
+        void visShowOnLinkIcon (
+                NETWORK_ID network,
+                NodeID& srcnode,
+                NodeID& destnode,
+                ICON_ID iconID
+                );
+
+	/**
+	 * Delete an icon at the link
+	 */
+        void visDeleteOnLinkIcon (
+                NETWORK_ID network,
+                NodeID& srcnode,
+		NodeID& destnode
+                );
+
+	/**
+	 * Show a bubble besides the link
+	 */
+	void visShowLinkBubble (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode,
+		string label
+		);
+
+	/**
+	 * Delete a bubble besides the link
+	 */
+	void visDeleteLinkBubble (
+		NETWORK_ID network,
+		NodeID& srcnode,
+		NodeID& destnode
+		);
+
+	//****************************************************************
+	// Send message between two nodes
+	//****************************************************************
+
+	/**
+	 * Animate the message sending between two nodes
+	 */
+	void visSendMessage (
+		NETWORK_ID network,
+		NodeID& startnode,
+		NodeID& endnode
+		);
+
+//*******************************************************
+//*
+	void visCLIOInitMeasurement (
+		NETWORK_ID network,
+		unsigned long edgekey,
+		NodeID& srcnode,
+		NodeID& destnode,
+		string info
+		);
+
+	void visCLIOEndMeasurement (
+		NETWORK_ID network,
+		unsigned long edgekey,
+		NodeID& srcnode,
+		NodeID& destnode,
+		string info,
+		string value,
+		string unit
+		);
+//*
+//*******************************************************
+
+protected:
+	OvlVis();
+	~OvlVis();
+
+private:
+	void sendMessage( const string msg, NETWORK_ID nid );
+	void sendSocket( const string msg );
+
+	/**
+	 * boost asio stuff for connecting to ovlvis
+	 */
+	boost::asio::io_service io_service;
+	tcp::socket socket;
+	volatile bool socketOpened;
+
+	typedef pair<NodeID, NodeID> NodePair;
+	typedef KeyMapping<NodePair> NetworkLinks;
+	typedef KeyMapping<NodePair> LinkBubbles;
+	typedef KeyMapping<NodeID>   NodeBubbles;
+	typedef KeyMapping<NodeID>   ShiftedNodeIcons;
+	typedef KeyMapping<NodePair> OnLinkIcons;
+
+	NetworkLinks 		networkLinks;
+	LinkBubbles 		linkBubbles;
+	NodeBubbles 		nodeBubbles;
+	ShiftedNodeIcons 	shiftedNodeIcons;
+	OnLinkIcons 		onLinkIcons;
+
+	class TimedoutIcon : public Timer {
+	private:
+		NETWORK_ID network;
+		NodeID node;
+		unsigned int timeout;
+	public:
+		TimedoutIcon(NETWORK_ID _network, NodeID _node, unsigned int _timeout) :
+			network(_network), node(_node), timeout(_timeout) {
+		}
+
+		virtual ~TimedoutIcon(){
+			Timer::stop();
+		}
+
+		void startIcon(){
+			Timer::setInterval( timeout, true );
+			Timer::start();
+		}
+
+	protected:
+		virtual void eventFunction(){
+			OvlVis::instance().visDeleteShiftedNodeIcon( network, node );
+			delete this;
+		}
+	};
+
+};
+
+}} // namespace ariba, common
+
+#endif // OVLVIS_H__
Index: source/ariba/utility/misc/StringFormat.cpp
===================================================================
--- source/ariba/utility/misc/StringFormat.cpp	(revision 12775)
+++ 	(revision )
@@ -1,48 +1,0 @@
-
-#include "StringFormat.h"
-
-#include "boost/xpressive/xpressive.hpp"
-
-namespace ariba {
-namespace utility {
-namespace string_format {
-
-using namespace boost::xpressive;
-
-// regex: string
-const sregex rstring = '"' >> keep(*~(boost::xpressive::set = '"'))
-		>> '"';
-
-// regex: base64 encoding
-const sregex rbase64 = '!' >> +(range('a', 'z') | range('A', 'Z')
-		| range('0', '9') | '/' | '+') >> *(boost::xpressive::set = '=');
-
-// regex: raw alphabet
-const sregex rchars = +(range('a', 'z') | range('A', 'Z'));
-
-// regex: integer
-const sregex rint = '0' | (range('1', '9') >> !(range('0', '9')));
-
-// regex: binary label
-const sregex rlabel = rchars | rstring | rbase64;
-
-// regex: dot separated identifier
-const sregex rid = rlabel >> *('.' >> rlabel) >> *('.' >> rint);
-
-// regex: "leaf" data
-const sregex rdata = !(boost::xpressive::set = '!') >> '{'
-		>> *(keep(+~(boost::xpressive::set = '{', '}')) | by_ref(rdata))
-		>> '}';
-
-// regex: fields
-const sregex rfield_label = rlabel >> '=';
-const sregex rfield = !rfield_label >> (rid | rdata);
-const sregex rfields = '(' >> rfield >> *(',' >> rfield) >> ')';
-
-// regex objects
-const sregex robject_data = (rdata | rfields);
-const sregex robject_id = rid;
-const sregex robject = robject_id >> robject_data;
-const sregex robjects = robject >> *(',' >> robject);
-
-}}}
Index: source/ariba/utility/misc/StringFormat.h
===================================================================
--- source/ariba/utility/misc/StringFormat.h	(revision 12775)
+++ 	(revision )
@@ -1,94 +1,0 @@
-
-#ifndef STRINGFORMAT_H_
-#define STRINGFORMAT_H_
-
-#include "boost/xpressive/xpressive.hpp"
-
-namespace ariba {
-namespace utility {
-namespace string_format {
-
-using boost::xpressive::sregex;
-
-class regex_nav {
-private:
-	typedef boost::xpressive::smatch _match;
-	typedef _match::nested_results_type nested_results;
-	typedef nested_results::const_iterator nested_iterator;
-	const _match& match;
-
-public:
-	regex_nav(const _match& match) :
-		match(match) {
-	}
-
-	regex_nav() :
-		match(*((const _match*) NULL)) {
-	}
-
-	bool matched() const {
-		return &match != NULL;
-	}
-
-	regex_nav operator[] (const sregex& type) const {
-		const nested_results& nr = match.nested_results();
-		for (nested_iterator i = nr.begin(); i != nr.end(); i++) {
-			if (i->regex_id() == type.regex_id()) return regex_nav(*i);
-		}
-		return regex_nav();
-	}
-
-	regex_nav operator[](int index) const {
-		const nested_results& nr = match.nested_results();
-		for (nested_iterator i = nr.begin(); i != nr.end() && index >= 0; i++) {
-			if (index == 0) return regex_nav(*i);
-			index--;
-		}
-		return regex_nav();
-	}
-
-	int size() const {
-		return match.nested_results().size();
-	}
-
-	std::string str() const {
-		if (!matched()) return std::string("<no match>");
-		return match[0].str();
-	}
-};
-
-// regex: string
-extern const sregex rstring;
-
-// regex: base64 encoding
-extern const sregex rbase64;
-
-// regex: raw alphabet
-extern const sregex rchars;
-
-// regex: integer
-extern const sregex rint;
-
-// regex: binary label
-extern const sregex rlabel;
-
-// regex: dot separated identifier
-extern const sregex rid;
-
-// regex: "leaf" data
-extern const sregex rdata;
-
-// regex: fields
-extern const sregex rfield_label;
-extern const sregex rfield;
-extern const sregex rfields;
-
-// regex: objects
-extern const sregex robject_data;
-extern const sregex robject_id;
-extern const sregex robject;
-extern const sregex robjects;
-
-}}}
-
-#endif /* STRINGFORMAT_H_ */
Index: source/ariba/utility/misc/sha1.cpp
===================================================================
--- source/ariba/utility/misc/sha1.cpp	(revision 12775)
+++ source/ariba/utility/misc/sha1.cpp	(revision 2378)
@@ -1,6 +1,6 @@
-// [License]
+// [licence]
 // 100% free public domain implementation of the SHA-1 algorithm
 // by Dominik Reichl <dominik.reichl@t-online.de>
-// [License]
+// [licence]
 /*
       Version 1.5 - 2005-01-01
@@ -242,16 +242,11 @@
     }
 
-	bool ret = true;
-	size_t rets = -1;
-
     for(i = 0; i < ulBlocks; i++) {
-        rets = fread(uData, 1, SHA1_MAX_FILE_BUFFER, fIn);
-        ret &= (rets > 0 );
+        fread(uData, 1, SHA1_MAX_FILE_BUFFER, fIn);
         Update((UINT_8 *)uData, SHA1_MAX_FILE_BUFFER);
     }
 
     if(ulRest != 0) {
-        rets = fread(uData, 1, ulRest, fIn);
-        ret &= (rets > 0 );
+        fread(uData, 1, ulRest, fIn);
         Update((UINT_8 *)uData, ulRest);
     }
@@ -259,5 +254,5 @@
     fclose(fIn);
     fIn = NULL;
-    return ret;
+    return true;
 }
 #endif
Index: source/ariba/utility/misc/sha1.h
===================================================================
--- source/ariba/utility/misc/sha1.h	(revision 12775)
+++ source/ariba/utility/misc/sha1.h	(revision 2378)
@@ -1,6 +1,6 @@
-// [License]
+// [licence]
 // 100% free public domain implementation of the SHA-1 algorithm
 // by Dominik Reichl <dominik.reichl@t-online.de>
-// [License]
+// [licence]
 /*
         Version 1.5 - 2005-01-01
