Index: source/ariba/interface/AribaContext.cpp
===================================================================
--- source/ariba/interface/AribaContext.cpp	(revision 2473)
+++ 	(revision )
@@ -1,68 +1,0 @@
-// [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 "AribaContext.h"
-
-namespace ariba {
-namespace interface {
-
-AribaContext::AribaContext(BaseCommunication& _basecomm, BaseOverlay& _overlay,
-		const SpoVNetID& _spovnetid, const NodeID& _nodeid)
-	: basecomm( _basecomm ), overlay( _overlay ), spovnetid( _spovnetid ), nodeid( _nodeid ) {
-}
-
-AribaContext::~AribaContext() {
-}
-
-const SpoVNetID& AribaContext::getSpoVNetID() const {
-	return spovnetid;
-}
-
-const NodeID& AribaContext::getNodeID(void) const {
-	return nodeid;
-}
-
-BaseOverlay& AribaContext::getOverlay(){
-	return overlay;
-}
-
-BaseCommunication& AribaContext::getBaseCommunication() {
-	return basecomm;
-}
-
-}} // ariba, interface
Index: source/ariba/interface/AribaContext.h
===================================================================
--- source/ariba/interface/AribaContext.h	(revision 2473)
+++ 	(revision )
@@ -1,77 +1,0 @@
-// [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 __ARIBA_CONTEXT_H
-#define __ARIBA_CONTEXT_H
-
-#include "ariba/utility/types/SpoVNetID.h"
-#include "ariba/utility/types/NodeID.h"
-#include "ariba/communication/BaseCommunication.h"
-#include "ariba/overlay/BaseOverlay.h"
-
-using ariba::utility::SpoVNetID;
-using ariba::utility::NodeID;
-using ariba::communication::BaseCommunication;
-using ariba::overlay::BaseOverlay;
-
-namespace ariba {
-namespace interface {
-
-class AribaContext {
-public:
-	AribaContext(BaseCommunication& _basecomm, BaseOverlay& _overlay,
-			const SpoVNetID& _spovnetid, const NodeID& _nodeid);
-	~AribaContext();
-
-	const SpoVNetID& getSpoVNetID() const;
-	const NodeID& getNodeID() const;
-
-	BaseOverlay& getOverlay();
-	BaseCommunication& getBaseCommunication();
-
-private:
-	SpoVNetID spovnetid;
-	NodeID nodeid;
-
-	BaseCommunication& basecomm;
-	BaseOverlay& overlay;
-};
-
-}} // ariba, interface
-
-#endif //__ARIBA_CONTEXT_H
Index: source/ariba/interface/ServiceInterface.cpp
===================================================================
--- source/ariba/interface/ServiceInterface.cpp	(revision 2473)
+++ source/ariba/interface/ServiceInterface.cpp	(revision 3037)
@@ -48,10 +48,4 @@
 }
 
-void ServiceInterface::onOverlayCreate( const SpoVNetID& id ){
-}
-
-void ServiceInterface::onOverlayDestroy( const SpoVNetID& id ){
-}
-
 bool ServiceInterface::isJoinAllowed( const NodeID& nodeid, const SpoVNetID& spovnetid ){
 	// default: allow all nodes to join
@@ -71,4 +65,10 @@
 }
 
+void ServiceInterface::onLeaveSuccess( const SpoVNetID& spovnetid ){
+}
+
+void ServiceInterface::onLeaveFail( const SpoVNetID& spovnetid ){
+}
+	
 void ServiceInterface::onLinkUp( const LinkID& link, const NodeID& local, const NodeID& remote ){
 }
Index: source/ariba/interface/ServiceInterface.h
===================================================================
--- source/ariba/interface/ServiceInterface.h	(revision 2473)
+++ source/ariba/interface/ServiceInterface.h	(revision 3037)
@@ -74,7 +74,4 @@
 
 protected:
-	virtual void onOverlayCreate( const SpoVNetID& id );
-	virtual void onOverlayDestroy( const SpoVNetID& id );
-
 	virtual bool isJoinAllowed( const NodeID& nodeid, const SpoVNetID& spovnetid );
 	virtual void onNodeJoin( const NodeID& nodeid, const SpoVNetID& spovnetid );
@@ -83,4 +80,6 @@
 	virtual void onJoinSuccess( const SpoVNetID& spovnetid );
 	virtual void onJoinFail( const SpoVNetID& spovnetid );
+	virtual void onLeaveSuccess( const SpoVNetID& spovnetid );
+	virtual void onLeaveFail( const SpoVNetID& spovnetid );
 
 	virtual void onLinkUp( const LinkID& link, const NodeID& local, const NodeID& remote );
Index: source/ariba/interface/UnderlayAbstraction.cpp
===================================================================
--- source/ariba/interface/UnderlayAbstraction.cpp	(revision 2473)
+++ 	(revision )
@@ -1,108 +1,0 @@
-// [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 "UnderlayAbstraction.h"
-
-namespace ariba {
-namespace interface {
-
-use_logging_cpp(UnderlayAbstraction);
-
-UnderlayAbstraction::UnderlayAbstraction() : basecomm( NULL ) {
-}
-
-UnderlayAbstraction::~UnderlayAbstraction() {
-}
-
-AribaContext* UnderlayAbstraction::createNode(const SpoVNetID& spovnetid, const NodeID& nodeid, const NetworkLocator* locallocator, const uint16_t localport) {
-
-	logging_info( "creating node ...");
-
-	NodeID newid = nodeid;
-
-	if( nodeid == NodeID::UNSPECIFIED ){
-		logging_debug( "nodeid is unspecified, creating random ..." );
-		newid = NodeID( Identifier::random() );
-		logging_info( "local nodeid is " << newid.toString() );
-	}
-
-	basecomm = new BaseCommunication( locallocator, localport );
-
-	BaseOverlay* baseoverlay = new BaseOverlay( *basecomm, newid );
-	AribaContext* ctx = new AribaContext( *basecomm, *baseoverlay, spovnetid, newid );
-
-	logging_info( "spovnetid = " << ctx->getSpoVNetID().toString() <<
-			", nodeid = " << ctx->getNodeID().toString() );
-
-	return ctx;
-}
-
-AribaContext* UnderlayAbstraction::createSpoVNet(const SpoVNetID& spovnetid, const NodeID& nodeid, const NetworkLocator* locallocator, const uint16_t localport, const OverlayParameterSet& param, const SecurityParameterSet& sec, const QoSParameterSet& qos) {
-
-	// create new node
-	AribaContext* ctx = createNode( spovnetid, nodeid, locallocator, localport );
-
-	// create new base overlay (initiator)
-	logging_info("creating new spovnet...");
-	ctx->getOverlay().createSpoVNet( spovnetid, param, sec, qos );
-	logging_info("node created");
-
-	return ctx;
-}
-
-AribaContext* UnderlayAbstraction::joinSpoVNet(const SpoVNetID& spovnetid, const EndpointDescriptor& bootstrapnode, const NodeID& nodeid, const NetworkLocator* locallocator, const uint16_t localport) {
-
-	// create new node
-	AribaContext* ctx = createNode( spovnetid, nodeid, locallocator, localport );
-
-	// join spovnet
-	logging_info("joining existing spovnet...");
-	ctx->getOverlay().joinSpoVNet( spovnetid, bootstrapnode );
-	logging_info("node created");
-
-	return ctx;
-}
-
-void UnderlayAbstraction::leaveSpoVNet(AribaContext* ctx) {
-	ctx->getOverlay().leaveSpoVNet();
-	delete &ctx->getOverlay();
-	delete &ctx->getBaseCommunication();
-	delete ctx;
-}
-
-}} // namespace ariba, interface
Index: source/ariba/interface/UnderlayAbstraction.h
===================================================================
--- source/ariba/interface/UnderlayAbstraction.h	(revision 2473)
+++ 	(revision )
@@ -1,106 +1,0 @@
-// [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 UNDERLAYABSTRACTION_H_
-#define UNDERLAYABSTRACTION_H_
-
-#include <string>
-#include "ariba/utility/types/OverlayParameterSet.h"
-#include "ariba/utility/types/SecurityParameterSet.h"
-#include "ariba/utility/types/QoSParameterSet.h"
-#include "ariba/utility/types/SpoVNetID.h"
-#include "ariba/interface/AribaContext.h"
-#include "ariba/communication/BaseCommunication.h"
-#include "ariba/overlay/BaseOverlay.h"
-
-using std::string;
-using ariba::utility::OverlayParameterSet;
-using ariba::utility::SecurityParameterSet;
-using ariba::utility::QoSParameterSet;
-using ariba::utility::SpoVNetID;
-using ariba::interface::AribaContext;
-using ariba::communication::BaseCommunication;
-using ariba::overlay::BaseOverlay;
-
-namespace ariba {
-namespace interface {
-
-#define ARIBA_DEFAULT_PORT 0xa1ba
-
-class UnderlayAbstraction {
-	use_logging_h( UnderlayAbstraction );
-public:
-	UnderlayAbstraction();
-	virtual ~UnderlayAbstraction();
-
-	AribaContext* createSpoVNet(
-		const SpoVNetID& spovnetid,
-		const NodeID& nodeid = NodeID::UNSPECIFIED,
-		const NetworkLocator* locallocator = NULL,
-		const uint16_t localport = ARIBA_DEFAULT_PORT,
-		const OverlayParameterSet& param = OverlayParameterSet::DEFAULT,
-		const SecurityParameterSet& sec  = SecurityParameterSet::DEFAULT,
-		const QoSParameterSet& qos = QoSParameterSet::DEFAULT
-	);
-
-	AribaContext* joinSpoVNet(
-		const SpoVNetID& spovnetid,
-		const EndpointDescriptor& bootstrapnode,
-		const NodeID& nodeid = NodeID::UNSPECIFIED,
-		const NetworkLocator* locallocator = NULL,
-		const uint16_t localport = ARIBA_DEFAULT_PORT
-	);
-
-	void leaveSpoVNet( AribaContext* ctx );
-
-protected:
-	AribaContext* createNode(
-		const SpoVNetID& spovnetid,
-		const NodeID& nodeid,
-		const NetworkLocator* locallocator,
-		const uint16_t localport
-	);
-
-private:
-	BaseCommunication* basecomm;
-
-};
-
-}} //namespace ariba, interface
-
-#endif //UNDERLAYABSTRACTION_H_
