bluetoothapitest/bluetoothsvs/T_BTUserAPI/src/T_BTPhysicalLinkAdapterData.cpp
changeset 0 29b1cd4cb562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothapitest/bluetoothsvs/T_BTUserAPI/src/T_BTPhysicalLinkAdapterData.cpp	Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,748 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "T_BTPhysicalLinkAdapterData.h"
+#include "T_BTDevAddrData.h"
+#include "T_BTUtil.h"
+
+/*@{*/
+//Parameters
+_LIT(KRSocketServ,												"socketserv");
+_LIT(KRSocket,													"rsocket");
+_LIT(KTBTDevAddr,												"tbtdevaddr");
+_LIT(KIntDevAddr,												"integerdevaddr");
+_LIT(KLowPowerMode,												"lowpowermode");
+_LIT(KPacketType,												"packettype");
+_LIT(KPhysicalLinkState,										"physicallinkstate");
+_LIT(KExpected, 												"expected");
+
+//Commands
+_LIT(KCmdRBTPhysicalLinkAdapter,								"RBTPhysicalLinkAdapter");
+_LIT(KCmdOpen,													"Open");
+_LIT(KCmdIsOpen,												"IsOpen");
+_LIT(KCmdClose,													"Close");
+_LIT(KCmdPhysicalLinkState,										"PhysicalLinkState");
+_LIT(KCmdPreventRoleSwitch,										"PreventRoleSwitch");
+_LIT(KCmdAllowRoleSwitch,										"AllowRoleSwitch");
+_LIT(KCmdRequestMasterRole,										"RequestMasterRole");
+_LIT(KCmdRequestSlaveRole,										"RequestSlaveRole");
+_LIT(KCmdPreventLowPowerModes,									"PreventLowPowerModes");
+_LIT(KCmdAllowLowPowerModes,									"AllowLowPowerModes");
+_LIT(KCmdActivateSniffRequester,								"ActivateSniffRequester");
+_LIT(KCmdActivateParkRequester,									"ActivateParkRequester");
+_LIT(KCmdActivateActiveRequester,								"ActivateActiveRequester");
+_LIT(KCmdCancelLowPowerModeRequester,							"CancelLowPowerModeRequester");
+_LIT(KCmdRequestChangeSupportedPacketTypes,						"RequestChangeSupportedPacketTypes");
+_LIT(KCmdNotifyNextBasebandChangeEvent,							"NotifyNextBasebandChangeEvent");
+_LIT(KCmdCancelNextBasebandChangeEventNotifier,					"CancelNextBasebandChangeEventNotifier");
+_LIT(KCmdAuthenticate,											"Authenticate");
+_LIT(KCmdDestructor,											"~");
+
+//	Logging
+_LIT(KLogMissingParameters,			"Missing parameters '%S' or '%S'");
+_LIT(KLogMissingParameter,			"Missing parameter '%S'");
+/*@}*/
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CT_BTPhysicalLinkAdapterData* CT_BTPhysicalLinkAdapterData::NewL()
+	{
+	CT_BTPhysicalLinkAdapterData*	ret=new (ELeave) CT_BTPhysicalLinkAdapterData();
+	CleanupStack::PushL(ret);
+	ret->ConstructL();
+	CleanupStack::Pop(ret);
+	return ret;
+	}
+
+CT_BTPhysicalLinkAdapterData::CT_BTPhysicalLinkAdapterData()
+:	iData(NULL)
+,	iActive(NULL)
+,	iEventType(0)
+,	iExpectedEventType(0)
+,	iEventNotification(NULL)
+	{
+	}
+
+void CT_BTPhysicalLinkAdapterData::ConstructL()
+	{
+	iActive = CActiveCallback::NewL(*this);
+	}
+
+CT_BTPhysicalLinkAdapterData::~CT_BTPhysicalLinkAdapterData()
+	{
+	DestroyData();
+	delete iActive;
+	iActive = NULL;
+	}
+
+//	Service methods
+TAny* CT_BTPhysicalLinkAdapterData::GetObject()
+	{
+	return iData;
+	}
+
+void CT_BTPhysicalLinkAdapterData::SetObjectL(TAny* aAny)
+	{
+	//called when loading up persistent data
+	DestroyData();
+	iData = static_cast<RBTPhysicalLinkAdapter*> (aAny);
+	}
+
+void CT_BTPhysicalLinkAdapterData::DisownObjectL()
+	{
+	iData = NULL;
+	}
+
+void CT_BTPhysicalLinkAdapterData::DestroyData()
+	{
+	delete iData;
+	iData=NULL;
+	}
+
+inline TCleanupOperation CT_BTPhysicalLinkAdapterData::CleanupOperation()
+	{
+	return CleanupOperation;
+	}
+
+void CT_BTPhysicalLinkAdapterData::CleanupOperation(TAny* aAny)
+	{
+	RBTPhysicalLinkAdapter* arg=static_cast<RBTPhysicalLinkAdapter*>(aAny);
+	delete arg;
+	}
+
+TBool CT_BTPhysicalLinkAdapterData::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex)
+	{
+	TBool	ret = ETrue;
+
+	if ( aCommand==KCmdRBTPhysicalLinkAdapter )
+		{
+		DoCmdRBTPhysicalLinkAdapter();
+		}
+	else if ( aCommand==KCmdOpen )
+		{
+		DoCmdOpen(aSection);
+		}
+	else if ( aCommand==KCmdIsOpen )
+		{
+		DoCmdIsOpen(aSection);
+		}
+	else if ( aCommand==KCmdClose )
+		{
+		DoCmdClose();
+		}
+	else if ( aCommand==KCmdPhysicalLinkState )
+		{
+		DoCmdPhysicalLinkState(aSection);
+		}
+	else if ( aCommand==KCmdPreventRoleSwitch )
+		{
+		DoCmdPreventRoleSwitch();
+		}
+	else if ( aCommand==KCmdAllowRoleSwitch )
+		{
+		DoCmdAllowRoleSwitch();
+		}
+	else if ( aCommand==KCmdRequestMasterRole )
+		{
+		DoCmdRequestMasterRole();
+		}
+	else if ( aCommand==KCmdRequestSlaveRole )
+		{
+		DoCmdRequestSlaveRole();
+		}
+	else if ( aCommand==KCmdPreventLowPowerModes )
+		{
+		DoCmdPreventLowPowerModes(aSection);
+		}
+	else if ( aCommand==KCmdAllowLowPowerModes )
+		{
+		DoCmdAllowLowPowerModes(aSection);
+		}
+	else if ( aCommand==KCmdActivateSniffRequester )
+		{
+		DoCmdActivateSniffRequester();
+		}
+	else if ( aCommand==KCmdActivateParkRequester )
+		{
+		DoCmdActivateParkRequester();
+		}
+	else if ( aCommand==KCmdActivateActiveRequester )
+		{
+		DoCmdActivateActiveRequester();
+		}
+	else if ( aCommand==KCmdCancelLowPowerModeRequester )
+		{
+		DoCmdCancelLowPowerModeRequester();
+		}
+	else if ( aCommand==KCmdRequestChangeSupportedPacketTypes )
+		{
+		DoCmdRequestChangeSupportedPacketTypes(aSection);
+		}
+	else if ( aCommand==KCmdNotifyNextBasebandChangeEvent )
+		{
+		DoCmdNotifyNextBasebandChangeEvent(aSection, aAsyncErrorIndex);
+		}
+	else if ( aCommand==KCmdCancelNextBasebandChangeEventNotifier )
+		{
+		DoCmdCancelNextBasebandChangeEventNotifier();
+		}
+	else if ( aCommand==KCmdAuthenticate )
+		{
+		DoCmdAuthenticate();
+		}
+	else if ( aCommand==KCmdDestructor )
+		{
+		DoCmdDestructor();
+		}
+	else
+		{
+		ret=EFalse;
+		}
+
+	return ret;
+	}
+
+
+/**
+Test RBTPhysicalLinkAdapter()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdRBTPhysicalLinkAdapter()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter Constructor Call"));
+	DestroyData();
+	iData = new (ELeave) RBTPhysicalLinkAdapter();
+	}
+
+/**
+Test Open()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdOpen(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter Open Call"));
+	
+	TPtrC	socketServName;
+	if(GetStringFromConfig(aSection, KRSocketServ(), socketServName))
+		{
+		RSocketServ* socketServ=static_cast<RSocketServ*>(GetDataObjectL(socketServName));
+		
+		TPtrC	socketName;
+		if(GetStringFromConfig(aSection, KRSocket(), socketName))
+			{
+			RSocket* socket = static_cast<RSocket*>(GetDataObjectL(socketName));
+			TInt err = iData->Open(*socketServ, *socket);
+			if( err!=KErrNone )
+				{
+				INFO_PRINTF2(_L("RBTPhysicalLinkAdapter Open err=%d" ),err);
+				SetError(err);
+				}
+			}
+		else
+			{
+			TPtrC	tBTDevAddrName;
+			TBool	foundParameter=EFalse;	
+			if(GetStringFromConfig(aSection, KTBTDevAddr(), tBTDevAddrName))
+				{
+				foundParameter=ETrue;
+				CT_BTDevAddrData* tBTDevAddrData=static_cast<CT_BTDevAddrData*>(GetDataWrapperL(tBTDevAddrName));
+				TBTDevAddr btDevAddr = *tBTDevAddrData->GetAddress();
+				TInt err = iData->Open(*socketServ, btDevAddr);
+				if(err != KErrNone)
+					{
+					ERR_PRINTF2(_L("RBTPhysicalLinkAdapter Open failed with error %d"), err);
+					SetError(err);
+					}
+				}
+			
+			TInt	intBtDevAddr=0;	
+			if(GetIntFromConfig(aSection, KIntDevAddr(), intBtDevAddr))
+				{
+				foundParameter=ETrue;			
+				TBTDevAddr btDevAddr(intBtDevAddr);
+				TInt err = iData->Open(*socketServ, btDevAddr);
+				if(err != KErrNone)
+					{
+					ERR_PRINTF2(_L("RBTPhysicalLinkAdapter Open failed with error %d"), err);
+					SetError(err);
+					}
+				}
+				
+			if( !foundParameter )
+				{
+				ERR_PRINTF3(KLogMissingParameters, &KTBTDevAddr(), &KIntDevAddr());
+				SetBlockResult(EFail);
+				}
+			}
+		}
+	else
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KRSocket());
+		SetBlockResult(EFail);
+		}
+	}
+
+
+/**
+Test IsOpen()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdIsOpen(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter IsOpen Call"));
+	
+	TBool isOpen = iData->IsOpen();
+	INFO_PRINTF2(_L("RBTPhysicalLinkAdapter IsOpen result: actual = %d"), isOpen);
+	
+	TBool	expected = EFalse;
+	if(GetBoolFromConfig(aSection, KExpected(), expected))
+		{
+		if( expected != isOpen )
+			{
+			ERR_PRINTF1(_L("IsOpen not as expected!"));
+			SetBlockResult(EFail);
+			}
+		}
+	else
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KExpected());
+		SetBlockResult(EFail);		
+		}
+	}
+
+
+/**
+Test Close()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdClose()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter Close Call"));
+	iData->Close();
+	}
+
+
+/**
+Test PhysicalLinkState()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdPhysicalLinkState(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter PhysicalLinkState Call"));
+	
+	TUint32	state = 0;
+	TInt err = iData->PhysicalLinkState(state);
+	INFO_PRINTF2(_L("RBTPhysicalLinkAdapter PhysicalLinkState result: actual = %d"), state);
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter PhysicalLinkState failed with error %d"), err);
+		SetError(err);
+		}
+	
+	TInt expected = 0;
+	if(GetIntFromConfig(aSection, KExpected(), expected) )
+		{
+		if( expected != state )
+			{
+			ERR_PRINTF1(_L("PhysicalLinkState not as expected!"));
+			SetBlockResult(EFail);
+			}
+		}
+	else
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KExpected());
+		SetBlockResult(EFail);
+		}
+	}
+
+/**
+Test PreventRoleSwitch()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdPreventRoleSwitch()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter PreventRoleSwitch Call"));
+	TInt err = iData->PreventRoleSwitch();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter PreventRoleSwitch failed with error %d"), err);
+		SetError(err);
+		}
+	}
+
+
+/**
+Test AllowRoleSwitch()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdAllowRoleSwitch()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter AllowRoleSwitch Call"));
+	TInt err = iData->AllowRoleSwitch();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter AllowRoleSwitch failed with error %d"), err);
+		SetError(err);
+		}
+	}
+
+
+/**
+Test RequestMasterRole()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdRequestMasterRole()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter RequestMasterRole Call"));
+	TInt err = iData->RequestMasterRole();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter RequestMasterRole failed with error %d"), err);
+		SetError(err);
+		}
+	else
+		{
+		TTimeIntervalMicroSeconds32	interval = TTimeIntervalMicroSeconds32(3000000); // 3 secs
+		User::After(interval);
+		}
+	}
+
+
+/**
+Test RequestSlaveRole()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdRequestSlaveRole()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter RequestSlaveRole Call"));
+	TInt err = iData->RequestSlaveRole();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter RequestSlaveRole failed with error %d"), err);
+		SetError(err);
+		}
+	else
+		{
+		TTimeIntervalMicroSeconds32	interval = TTimeIntervalMicroSeconds32(3000000); // 3 secs
+		User::After(interval);
+		}
+	}
+
+
+/**
+Test PreventLowPowerModes()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdPreventLowPowerModes(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter PreventLowPowerModes Call"));
+	TPtrC	lowPowerMode;
+	TInt	lowPowerModeValue = 0;
+	if(GetStringFromConfig(aSection, KLowPowerMode(), lowPowerMode))
+		{
+		if( CT_BTUtil::GetLowPowerModeIntValue(lowPowerMode, lowPowerModeValue) )
+			{
+			INFO_PRINTF2(_L("RBTPhysicalLinkAdapter PreventLowPowerModes: lowPowerModeValue = %d"), lowPowerModeValue);
+			TInt err = iData->PreventLowPowerModes(lowPowerModeValue);
+			if(err != KErrNone)
+				{
+				ERR_PRINTF2(_L("RBTPhysicalLinkAdapter PreventLowPowerModes failed with error %d"), err);
+				SetError(err);
+				}
+			}
+		else
+			{
+			ERR_PRINTF1(_L("Unknown input for TBTLinkMode"));
+			SetBlockResult(EFail);
+			}
+		}
+	else
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KLowPowerMode());
+		SetBlockResult(EFail);
+		}
+	}
+
+
+/**
+Test AllowLowPowerModes()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdAllowLowPowerModes(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter AllowLowPowerModes Call"));
+	
+	TPtrC	lowPowerMode;
+	TInt	lowPowerModeValue = 0;
+	if(GetStringFromConfig(aSection, KLowPowerMode(), lowPowerMode))
+		{
+		if(CT_BTUtil::GetLowPowerModeIntValue(lowPowerMode, lowPowerModeValue) )
+			{
+			INFO_PRINTF2(_L("RBTPhysicalLinkAdapter AllowLowPowerModes: lowPowerModeValue = %d"), lowPowerModeValue);
+			TInt err = iData->AllowLowPowerModes(lowPowerModeValue);
+			if(err != KErrNone)
+				{
+				ERR_PRINTF2(_L("RBTPhysicalLinkAdapter AllowLowPowerModes failed with error %d"), err);
+				SetError(err);
+				}
+			}
+		else
+			{
+			ERR_PRINTF1(_L("Unknow input for TBTLinkMode"));
+			SetBlockResult(EFail);
+			}
+		}
+	else
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KLowPowerMode());
+		SetBlockResult(EFail);
+		}
+	}
+
+
+/**
+Test ActivateSniffRequester()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdActivateSniffRequester()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter ActivateSniffRequester Call"));
+	
+	TInt err = iData->ActivateSniffRequester();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter ActivateSniffRequester failed with error %d"), err);
+		SetError(err);
+		}
+	else
+		{
+		TTimeIntervalMicroSeconds32	interval = TTimeIntervalMicroSeconds32(3000000); // 3 secs
+		User::After(interval);
+		}
+	}
+
+
+/**
+Test ActivateParkRequester()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdActivateParkRequester()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter ActivateParkRequester Call"));
+	
+	TInt err = iData->ActivateParkRequester();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter ActivateParkRequester failed with error %d"), err);
+		SetError(err);
+		}
+	else
+		{
+		TTimeIntervalMicroSeconds32	interval = TTimeIntervalMicroSeconds32(3000000); // 3 secs
+		User::After(interval);
+		}
+	}
+
+
+/**
+Test ActivateActiveRequester()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdActivateActiveRequester()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter ActivateActiveRequester Call"));
+	
+	TInt err = iData->ActivateActiveRequester();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter ActivateActiveRequester failed with error %d"), err);
+		SetError(err);
+		}
+	else
+		{
+		TTimeIntervalMicroSeconds32	interval = TTimeIntervalMicroSeconds32(3000000); // 3 secs
+		User::After(interval);
+		}
+	}
+
+
+/**
+Test CancelLowPowerModeRequester()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdCancelLowPowerModeRequester()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter CancelLowPowerModeRequester Call"));
+	
+	TInt err = iData->CancelLowPowerModeRequester();
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter CancelLowPowerModeRequester failed with error %d"), err);
+		SetError(err);
+		}
+	}
+
+
+/**
+Test RequestChangeSupportedPacketTypes()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdRequestChangeSupportedPacketTypes(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter RequestChangeSupportedPacketTypes Call"));
+	
+	TPtrC	packetTypeName;
+	TInt	packetTypeValue;
+	if(GetStringFromConfig(aSection, KPacketType(), packetTypeName))
+		{
+		if ( CT_BTUtil::GetPacketTypeIntValue(packetTypeName, packetTypeValue) )
+			{
+			INFO_PRINTF2(_L("RBTPhysicalLinkAdapter RequestChangeSupportedPacketTypes: packetTypeValue = %d"), packetTypeValue);
+			
+			TInt err = iData->RequestChangeSupportedPacketTypes(packetTypeValue);
+			if(err != KErrNone)
+				{
+				ERR_PRINTF2(_L("RBTPhysicalLinkAdapter RequestChangeSupportedPacketTypes failed with error %d"), err);
+				SetError(err);
+				}
+			}
+		else
+			{
+			ERR_PRINTF1(_L("Unknow input for PacketType"));
+			SetBlockResult(EFail);	
+			}
+		}
+	else
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KPacketType());
+		SetBlockResult(EFail);
+		}
+	}
+
+
+/**
+Test NotifyNextBasebandChangeEvent()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdNotifyNextBasebandChangeEvent(const TDesC& aSection, const TInt aAsyncErrorIndex)
+	{
+	TPtrC	physicalLinkSatateName;
+	TInt	physicalLinkSatateValue;
+	TBool foundParameter = EFalse;
+	if(GetStringFromConfig(aSection, KPhysicalLinkState(), physicalLinkSatateName))
+		{
+		foundParameter = ETrue;
+		if ( CT_BTUtil::GetPhysicalLinkStateIntValue(physicalLinkSatateName, physicalLinkSatateValue) )
+			{
+			INFO_PRINTF2(_L("Verify the existing physicalLinkSatateValue = %d"), physicalLinkSatateValue);
+			
+			INFO_PRINTF1(_L("Call NotifyNextBasebandChangeEvent() method"));
+			iData->NotifyNextBasebandChangeEvent(iEventNotification, iActive->iStatus, physicalLinkSatateValue);
+			
+			if(GetIntFromConfig(aSection, KExpected(), iExpectedEventType) )
+				{
+				foundParameter = ETrue;
+				}
+			iActive->Activate(aAsyncErrorIndex);
+			IncOutstanding();
+			}
+		else
+			{
+			ERR_PRINTF1(_L("Unknow input for PhysicalLinkState"));
+			SetBlockResult(EFail);	
+			}
+		}
+	if (!foundParameter)
+		{
+		ERR_PRINTF3(KLogMissingParameters, &KPhysicalLinkState(), &KExpected());
+		SetBlockResult(EFail);
+		}
+	}
+
+
+/**
+Test CancelNextBasebandChangeEventNotifier()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdCancelNextBasebandChangeEventNotifier()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter CancelNextBasebandChangeEventNotifier Call"));
+	
+	iData->CancelNextBasebandChangeEventNotifier();
+	}
+
+
+/**
+Test Authenticate()
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdAuthenticate()
+	{
+	INFO_PRINTF1(_L("RBTPhysicalLinkAdapter Authenticate Call"));
+	
+	TInt err = iData->Authenticate();
+	INFO_PRINTF2(_L("Returned value (%d) of Authenticate()"), err);
+	
+	if(err != KErrNone)
+		{
+		ERR_PRINTF2(_L("RBTPhysicalLinkAdapter Authenticate failed with error %d"), err);
+		SetError(err);
+		}
+	}
+
+/**
+Test Destructor
+*/
+void CT_BTPhysicalLinkAdapterData::DoCmdDestructor()
+	{
+	DestroyData();
+	}
+
+
+/**
+ Virtual RunL - Called on completion of an asynchronous command
+ @see MTPActiveCallback
+ @param aActive Active Object that RunL has been called on
+ @pre N/A
+ @post N/A
+ @leave system wide error code
+*/
+void CT_BTPhysicalLinkAdapterData::RunL(CActive* aActive, TInt aIndex)
+	{
+	INFO_PRINTF1(_L("Execute Async RunL() Call"));
+	if( aActive==iActive )
+		{
+		TInt err = aActive->iStatus.Int();
+		INFO_PRINTF2(_L("Returned result (%d) of aActive->istatus.Int()"), err);
+		if(err != KErrNone)
+			{
+			ERR_PRINTF2(_L("RunL failed with error %d"), err);
+			SetAsyncError(aIndex, err);
+			}
+		iEventType = iEventNotification().EventType();
+		INFO_PRINTF2(_L("Returned TBTBasebandEvent::EventType(%d)"), iEventType);
+		if( iEventType != iExpectedEventType )
+			{
+			ERR_PRINTF1(_L("NotifyNextBasebandChangeEvent is not as expected!"));
+			SetBlockResult(EFail);
+			}
+		}
+	else
+		{
+		ERR_PRINTF1(_L("Stray signal"));
+		SetBlockResult(EFail);
+		}
+	DecOutstanding();
+	}
+
+
+/**
+Virtual DoCancel - Request to cancel the asynchronous command
+@publishedInternal
+@see - MTPActiveCallback
+@param aActive Active Object that DoCancel has been called on
+@pre - N/A
+@post - N/A
+@leave system wide error code
+*/
+void CT_BTPhysicalLinkAdapterData::DoCancel(CActive* /* aActive */, TInt /*aIndex*/)
+	{
+	}
+