--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothapitest/bluetoothsvs/T_BTUserAPI/src/T_L2CapConfigData.cpp Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,502 @@
+/*
+* 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_L2CapConfigData.h"
+#include "T_BTUtil.h"
+
+/*@{*/
+//Parameters
+_LIT(KMTUSize, "mtusize");
+_LIT(KMRUSize, "mrusize");
+_LIT(KSpecified, "specified");
+_LIT(KTimer, "timer");
+_LIT(KPriority, "priority");
+_LIT(KChannelReliability, "reliability");
+
+//Commands
+_LIT(KCmdTL2CapConfig, "TL2CapConfig");
+_LIT(KCmdSetMaxTransmitUnitSize, "SetMaxTransmitUnitSize");
+_LIT(KCmdMaxTransmitUnitSize, "MaxTransmitUnitSize");
+_LIT(KCmdSetMaxReceiveUnitSize, "SetMaxReceiveUnitSize");
+_LIT(KCmdMaxReceiveUnitSize, "MaxReceiveUnitSize");
+_LIT(KCmdConfigureReliableChannel, "ConfigureReliableChannel");
+_LIT(KCmdConfigureUnreliableChannel, "ConfigureUnreliableChannel");
+_LIT(KCmdChannelReliability, "ChannelReliability");
+_LIT(KCmdConfigureChannelPriority, "ConfigureChannelPriority");
+_LIT(KCmdChannelPriority, "ChannelPriority");
+
+// Logging
+_LIT(KLogMissingParameters, "Missing parameters '%S' or '%S'");
+_LIT(KLogMissingParameter, "Missing parameter '%S'");
+/*@}*/
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CT_L2CapConfigData* CT_L2CapConfigData::NewL()
+ {
+ CT_L2CapConfigData* ret=new (ELeave) CT_L2CapConfigData();
+ CleanupStack::PushL(ret);
+ ret->ConstructL();
+ CleanupStack::Pop(ret);
+ return ret;
+ }
+
+
+CT_L2CapConfigData::CT_L2CapConfigData()
+: iData(NULL)
+ {
+ }
+
+
+void CT_L2CapConfigData::ConstructL()
+ {
+ }
+
+
+CT_L2CapConfigData::~CT_L2CapConfigData()
+ {
+ DestroyData();
+ }
+
+TAny* CT_L2CapConfigData::GetObject()
+ {
+ return iData;
+ }
+
+void CT_L2CapConfigData::SetObjectL(TAny* aAny)
+ {
+ DestroyData();
+ iData = static_cast<TL2CapConfig*> (aAny);
+ }
+
+
+void CT_L2CapConfigData::DisownObjectL()
+ {
+ iData = NULL;
+ }
+
+
+void CT_L2CapConfigData::DestroyData()
+ {
+ delete iData;
+ iData=NULL;
+ }
+
+inline TCleanupOperation CT_L2CapConfigData::CleanupOperation()
+ {
+ return CleanupOperation;
+ }
+
+void CT_L2CapConfigData::CleanupOperation(TAny* aAny)
+ {
+ //may be unnecessary
+ TL2CapConfig* arg=static_cast<TL2CapConfig*>(aAny);
+ delete arg;
+ }
+
+TBool CT_L2CapConfigData::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
+ {
+ TBool ret = ETrue;
+ if ( aCommand==KCmdTL2CapConfig )
+ {
+ DoCmdTL2CapConfig();
+ }
+ else if ( aCommand==KCmdSetMaxTransmitUnitSize )
+ {
+ DoCmdSetMaxTransmitUnitSize(aSection);
+ }
+ else if ( aCommand==KCmdMaxTransmitUnitSize )
+ {
+ DoCmdMaxTransmitUnitSize(aSection);
+ }
+ else if ( aCommand==KCmdSetMaxReceiveUnitSize )
+ {
+ DoCmdSetMaxReceiveUnitSize(aSection);
+ }
+ else if ( aCommand==KCmdMaxReceiveUnitSize )
+ {
+ DoCmdMaxReceiveUnitSize(aSection);
+ }
+ else if ( aCommand==KCmdConfigureReliableChannel )
+ {
+ DoCmdConfigureReliableChannel(aSection);
+ }
+ else if ( aCommand==KCmdConfigureUnreliableChannel )
+ {
+ DoCmdConfigureUnreliableChannel(aSection);
+ }
+ else if ( aCommand==KCmdChannelReliability )
+ {
+ DoCmdChannelReliability(aSection);
+ }
+ else if ( aCommand==KCmdConfigureChannelPriority )
+ {
+ DoCmdConfigureChannelPriority(aSection);
+ }
+ else if ( aCommand==KCmdChannelPriority )
+ {
+ DoCmdChannelPriority(aSection);
+ }
+ else
+ {
+ ret=EFalse;
+ }
+
+ return ret;
+ }
+
+
+/**
+Test TL2CapConfig()
+*/
+void CT_L2CapConfigData::DoCmdTL2CapConfig()
+ {
+ DestroyData();
+ INFO_PRINTF1(_L("TL2CapConfig Constructor Call"));
+ iData = new (ELeave) TL2CapConfig();
+
+ if ( iData == NULL )
+ {
+ ERR_PRINTF1(_L("TL2CapConfig is NULL"));
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test SetMaxTransmitUnitSize()
+*/
+void CT_L2CapConfigData::DoCmdSetMaxTransmitUnitSize(const TDesC& aSection)
+ {
+ TInt size = 0;
+ if(GetIntFromConfig(aSection, KMTUSize(), size) )
+ {
+ INFO_PRINTF1(_L("TL2CapConfig SetMaxTransmitUnitSize Call"));
+ TInt err = iData->SetMaxTransmitUnitSize((TUint16)size);
+ INFO_PRINTF2(_L("SetMaxTransmitUnitSize result (%d)"), err);
+ if ( err != KErrNone )
+ {
+ ERR_PRINTF2(_L("SetMaxTransmitUnitSize failed with result (%d)"), err);
+ SetError(err);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KMTUSize());
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test MaxTransmitUnitSize()
+*/
+void CT_L2CapConfigData::DoCmdMaxTransmitUnitSize(const TDesC& aSection)
+ {
+ TBool specified = EFalse;
+ INFO_PRINTF1(_L("TL2CapConfig MaxTransmitUnitSize Call"));
+ TUint16 result = iData->MaxTransmitUnitSize(specified);
+ INFO_PRINTF3(_L("Return value(%d) and specified result (%d)"), result, specified);
+
+ TInt size = 0;
+ TBool expected = EFalse;
+ TBool foundParameter = EFalse;
+ if(GetBoolFromConfig(aSection, KSpecified(), expected) )
+ {
+ foundParameter = ETrue;
+ if ( specified != expected)
+ {
+ ERR_PRINTF3(_L("Result (%d) is not as expected (%d)"), specified, expected);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ if ( specified )
+ {
+ INFO_PRINTF1(_L("Verify that MTU has been set with the expected value"));
+ if(GetIntFromConfig(aSection, KMTUSize(), size) )
+ {
+ foundParameter = ETrue;
+ TUint16 mtu = (TUint16) size;
+ if ( result != mtu )
+ {
+ ERR_PRINTF3(_L("MTU value (%d) is not as expected (%d)"), result, mtu);
+ SetBlockResult(EFail);
+ }
+ }
+ }
+ }
+ }
+
+ if ( !foundParameter )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KMTUSize());
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test SetMaxReceiveUnitSize()
+*/
+void CT_L2CapConfigData::DoCmdSetMaxReceiveUnitSize(const TDesC& aSection)
+ {
+ TInt size = 0;
+
+ if(GetIntFromConfig(aSection, KMRUSize(), size) )
+ {
+ INFO_PRINTF1(_L("TL2CapConfig SetMaxReceiveUnitSize Call"));
+ TInt err = iData->SetMaxReceiveUnitSize((TUint16)size);
+ INFO_PRINTF2(_L("SetMaxReceiveUnitSize result (%d)"), err);
+ if ( err != KErrNone )
+ {
+ ERR_PRINTF2(_L("SetMaxReceiveUnitSize failed with result (%d)"), err);
+ SetError(err);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KMRUSize());
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test MaxReceiveUnitSize()
+*/
+void CT_L2CapConfigData::DoCmdMaxReceiveUnitSize(const TDesC& aSection)
+ {
+ TBool specified = EFalse;
+ INFO_PRINTF1(_L("TL2CapConfig MaxReceiveUnitSize Call"));
+ TUint16 result = iData->MaxReceiveUnitSize(specified);
+ INFO_PRINTF3(_L("Return value(%d) and specified result (%d)"), result, specified);
+
+ TInt size = 0;
+ TBool expected = EFalse;
+ TBool foundParameter = EFalse;
+ if(GetBoolFromConfig(aSection, KSpecified(), expected) )
+ {
+ foundParameter = ETrue;
+ if ( specified != expected )
+ {
+ ERR_PRINTF3(_L("Result (%d) is not as expected (%d)"), specified, expected);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ if ( specified )
+ {
+ INFO_PRINTF1(_L("Verify that MRU has been set with the expected value"));
+ if(GetIntFromConfig(aSection, KMRUSize(), size) )
+ {
+ foundParameter = ETrue;
+ TUint16 mru = (TUint16) size;
+ if ( result != mru )
+ {
+ ERR_PRINTF3(_L("MRU value (%d) is not as expected (%d)"), result, mru);
+ SetBlockResult(EFail);
+ }
+ }
+ }
+ }
+ }
+
+ if ( !foundParameter )
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KMRUSize());
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test ConfigureReliableChannel()
+*/
+void CT_L2CapConfigData::DoCmdConfigureReliableChannel(const TDesC& aSection)
+ {
+ TInt time = 0;
+
+ if(GetIntFromConfig(aSection, KTimer(), time) )
+ {
+ INFO_PRINTF1(_L("TL2CapConfig ConfigureReliableChannel Call"));
+ TInt err = iData->ConfigureReliableChannel((TUint16)time);
+ INFO_PRINTF2(_L("ConfigureReliableChannel result (%d)"), err);
+ if ( err!=KErrNone )
+ {
+ ERR_PRINTF2(_L("ConfigureReliableChannel failed with result (%d)"), err);
+ SetError(err);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KTimer());
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test ConfigureUnreliableChannel()
+*/
+void CT_L2CapConfigData::DoCmdConfigureUnreliableChannel(const TDesC& aSection)
+ {
+ TInt time = 0;
+
+ if(GetIntFromConfig(aSection, KTimer(), time) )
+ {
+ INFO_PRINTF1(_L("TL2CapConfig ConfigureUnreliableChannel Call"));
+ TInt err = iData->ConfigureUnreliableChannel((TUint16)time);
+ INFO_PRINTF2(_L("ConfigureUnreliableChannel result (%d)"), err);
+
+ if ( err!=KErrNone )
+ {
+ ERR_PRINTF2(_L("ConfigureUnreliableChannel failed with result (%d)"), err);
+ SetError(err);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KTimer());
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test ChannelReliability()
+*/
+void CT_L2CapConfigData::DoCmdChannelReliability(const TDesC& aSection)
+ {
+ TBool specified = EFalse;
+ TUint16 associateTimer = 0;
+ INFO_PRINTF1(_L("TL2CapConfig ChannelReliability Call"));
+ TL2CapConfig::TChannelReliability result= iData->ChannelReliability (specified, associateTimer);
+ INFO_PRINTF4(_L("ChannelReliability return result (%d), Specified (%d), Time (%d)"), result, specified, associateTimer);
+
+ TBool foundParameter = EFalse;
+ TBool expected = EFalse;
+ TInt timer = 0;
+ TL2CapConfig::TChannelReliability channeltype = TL2CapConfig::EReliableChannel;
+
+ if(GetBoolFromConfig(aSection, KSpecified(), expected) )
+ {
+ foundParameter = ETrue;
+ if ( specified != expected )
+ {
+ ERR_PRINTF3(_L("Result (%d) is not as expected (%d)"), specified, expected);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ if ( specified )
+ {
+ INFO_PRINTF1(_L("Verify that TChannelReliability has been set with the expected value"));
+ CT_BTUtil::GetChannel(*this, channeltype, aSection, KChannelReliability());
+ if ( result != channeltype )
+ {
+ ERR_PRINTF3(_L("TChannelReliability (%d) is not as expected (%d)"), result, channeltype);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("Verify that aAssociatedTimer has been set with the expected value"));
+ if(GetIntFromConfig(aSection, KTimer(), timer) )
+ {
+ foundParameter = ETrue;
+ TUint16 expTimer = (TUint16) timer;
+ if ( associateTimer != expTimer )
+ {
+ ERR_PRINTF3(_L("aAssociatedTimer (%d) is not as expected (%d)"), associateTimer, expTimer);
+ SetBlockResult(EFail);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if ( foundParameter == EFalse)
+ {
+ ERR_PRINTF3(KLogMissingParameters, &KSpecified(), &KTimer());
+ SetBlockResult(EFail);
+ }
+ }
+
+
+/**
+Test ConfigureChannelPriority()
+*/
+void CT_L2CapConfigData::DoCmdConfigureChannelPriority(const TDesC& aSection)
+ {
+ TL2CapConfig::TChannelPriority priority;
+ CT_BTUtil::GetChannelPriority(*this, priority, aSection, KPriority());
+ INFO_PRINTF1(_L("TL2CapConfig ConfigureChannelPriority Call"));
+ TInt err = iData->ConfigureChannelPriority (priority);
+ INFO_PRINTF2(_L("ConfigureChannelPriority result (%d)"), err);
+ if ( err != KErrNone )
+ {
+ ERR_PRINTF2(_L("ConfigureChannelPriority failed with result (%d)"), err);
+ SetError(err);
+ }
+ }
+
+
+/**
+Test ChannelPriority()
+*/
+void CT_L2CapConfigData::DoCmdChannelPriority(const TDesC& aSection)
+ {
+ TBool specified = EFalse;
+ INFO_PRINTF1(_L("TL2CapConfig ChannelPriority Call"));
+ TL2CapConfig::TChannelPriority result = iData->ChannelPriority(specified);
+ INFO_PRINTF3(_L("Return value (%d) and specified result (%d)"), result, specified);
+
+ TBool expected = EFalse;
+
+ if(GetBoolFromConfig(aSection, KSpecified(), expected) )
+ {
+ if ( specified != expected )
+ {
+ ERR_PRINTF3(_L("Result (%d) is not as expected (%d)"), specified, expected);
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ if ( specified )
+ {
+ INFO_PRINTF1(_L("Verify that TChannelPriority has been set with the expected value"));
+ TL2CapConfig::TChannelPriority priority;
+ CT_BTUtil::GetChannelPriority(*this, priority, aSection, KPriority());
+ if ( result != priority )
+ {
+ ERR_PRINTF3(_L("TChannelPriority (%d) is not as expected (%d)"), result, priority);
+ SetBlockResult(EFail);
+ }
+ }
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(KLogMissingParameter, &KSpecified());
+ SetBlockResult(EFail);
+ }
+ }
+
+