bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/src/T_BTSockAddrData.cpp
changeset 0 29b1cd4cb562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/src/T_BTSockAddrData.cpp	Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,644 @@
+/*
+* 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_BTSockAddrData.h"
+#include "T_BTServiceSecurityData.h"
+#include "T_BTDevAddrData.h"
+
+
+//Constant Literals used.
+
+//Parameters
+_LIT(KFamily,									"family");
+_LIT(KBTAddr,									"btaddr");
+_LIT(KUserlen,									"userlen");
+_LIT(KPort,										"port");
+_LIT(KTSockAddr,								"sockaddr");
+_LIT(KTBTSockAddr,								"btsockaddr");
+_LIT(KSecurity,									"security");
+_LIT(KExpectedCompResult,						"exp_cmp_res");
+_LIT(KTBTDevAddr,								"tbtdevaddr");
+
+_LIT(KHexBTAddrL,								"hex_btaddr_l");
+_LIT(KHexBTAddrR,								"hex_btaddr_r");
+
+_LIT(KSection,									"section");
+_LIT(KConfigHexBTAddrL,							"hex_btaddr_l");
+_LIT(KConfigHexBTAddrR,							"hex_btaddr_r");
+
+// TBTSockAddr
+_LIT(KCmdConstruct,								"Construct");
+_LIT(KCmdCastFromTSockAddr,						"CastFromTSockAddr");
+_LIT(KCmdSetBTAddr,								"SetBTAddr");
+_LIT(KCmdBTAddr,								"BTAddr");
+_LIT(KCmdSetSecurity,							"SetSecurity");
+_LIT(KCmdBTSecurity,							"BTSecurity");
+_LIT(KCmdSetFamily,								"SetFamily");
+_LIT(KCmdFamily,								"Family");
+_LIT(KCmdSetPort,								"SetPort");
+_LIT(KCmdPort,									"Port");
+_LIT(KCmdCmpPort,								"CmpPort");
+_LIT(KCmdGetUserLen,							"GetUserLen");
+_LIT(KCmdDistructor,							"~");
+
+//Use of Protected methods
+_LIT(KCmdPROTECTEDSetUserLen,					"PROTECTED-SetUserLen");
+_LIT(KCmdPROTECTEDUserPtr,						"PROTECTED-UserPtr");
+_LIT(KCmdPROTECTEDEndBTSockAddrPtr,				"PROTECTED-EndBTSockAddrPtr");
+
+/*@}*/
+
+CT_BTSockAddrData* CT_BTSockAddrData::NewL()
+	{
+	CT_BTSockAddrData*	ret=new (ELeave) CT_BTSockAddrData();
+	return ret;
+	}
+
+CT_BTSockAddrData::CT_BTSockAddrData()
+: iTBTSockAddr(NULL), iTBTSockAddrOwned(EFalse)
+	{
+	}
+	
+CT_BTSockAddrData::~CT_BTSockAddrData()
+	{
+	Cleanup();
+	}
+	
+void CT_BTSockAddrData::Cleanup()
+	{
+	if (iTBTSockAddrOwned)
+		{
+		delete iTBTSockAddr;	
+		}
+	iTBTSockAddr=NULL;	
+	}
+
+TBool CT_BTSockAddrData::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
+	{
+	TBool								retVal=ETrue;
+		
+	if ( aCommand==KCmdConstruct )
+		{
+		TBTSockAddrConstruct(aSection);
+		}		
+	else if ( aCommand==KCmdCastFromTSockAddr )
+		{
+		TBTSockAddrCastFromTSockAddr(aSection);
+		}		
+	else if ( aCommand==KCmdSetBTAddr )
+		{		
+		TBTSockAddrSetBTAddr(aSection);
+		}	
+	else if ( aCommand==KCmdBTAddr )
+		{				
+		TBTSockAddrBTAddr(aSection);
+		}			
+	else if ( aCommand==KCmdSetSecurity )
+		{		
+		TBTSockAddrSetSecurity(aSection);	
+		}	
+	else if ( aCommand==KCmdBTSecurity )
+		{	
+		TBTSockAddrBTSecurity(aSection);
+		}			
+	else if ( aCommand==KCmdSetFamily )
+		{		
+		TBTSockAddrSetFamily(aSection);
+		}
+	else if ( aCommand==KCmdFamily )
+		{		
+		TBTSockAddrFamily(aSection);
+		}		
+	else if ( aCommand==KCmdSetPort )
+		{		
+		TBTSockAddrSetPort(aSection);
+		}
+	else if ( aCommand==KCmdPort )
+		{		
+		TBTSockAddrPort(aSection);
+		}
+	else if ( aCommand==KCmdCmpPort )
+		{					
+		TBTSockAddrCmpPort(aSection);
+		}		
+	else if ( aCommand==KCmdGetUserLen )
+		{		
+		TBTSockAddrGetUserLen(aSection);
+		}
+	else if ( aCommand==KCmdDistructor )
+		{		
+		Cleanup();
+		}	
+						
+	//-------------------------------------------------------------------------
+	// Test of protected members				
+	//-------------------------------------------------------------------------
+
+	else if ( aCommand==KCmdPROTECTEDSetUserLen )
+		{		
+		TBTSockAddrPROTECTEDSetUserLen(aSection);
+		}
+	else if ( aCommand==KCmdPROTECTEDUserPtr )
+		{		
+		TBTSockAddrPROTECTEDUserPtr();
+		}	
+	else if ( aCommand==KCmdPROTECTEDEndBTSockAddrPtr )
+		{		
+		TBTSockAddrPROTECTEDEndBTSockAddrPtr();
+		}	
+	else
+		{
+		retVal=EFalse;
+		}
+
+	return retVal;
+	}	
+	
+void CT_BTSockAddrData::TBTSockAddrConstruct(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("TBTSockAddr Constructor Call"));
+	TPtrC myTSockAddrName;
+	TSockAddr*	myTSockAddr=NULL;
+	if ( !GetStringFromConfig(aSection, KTSockAddr(), myTSockAddrName) )
+		{
+		//Use default constructor
+		Cleanup();
+		TRAPD( err, iTBTSockAddr = new (ELeave)T_TBTSockAddrChild() );
+		if ( err )
+		    {
+		    SetError(err);
+		    }
+		else
+		    {
+		    iTBTSockAddrOwned=ETrue;
+		    }
+		}
+	else
+		{
+		TRAPD( err, myTSockAddr=static_cast<TSockAddr*>(GetDataObjectL(myTSockAddrName)) );
+		if ( (!err ) && (myTSockAddr!=NULL) )
+			{
+			Cleanup();
+			TRAPD( err ,iTBTSockAddr = new (ELeave) T_TBTSockAddrChild(*myTSockAddr) );
+    		if ( err )
+    		    {
+    		    SetError(err);
+    		    }
+    		else
+    		    {
+    		    iTBTSockAddrOwned=ETrue;
+    		    }
+			}
+		else
+			{
+			ERR_PRINTF1(_L("TSockAddr pointer is NULL"));		
+			SetBlockResult(EFail);		
+			}
+		}
+	}	
+	
+	
+void CT_BTSockAddrData::TBTSockAddrCastFromTSockAddr(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("TBTSockAddr Cast from TSockAddr Call"));
+	TPtrC myTSockAddrName;
+	TSockAddr*	myTSockAddr=NULL;
+	if ( !GetStringFromConfig(aSection, KTSockAddr(), myTSockAddrName) )
+		{
+		ERR_PRINTF2(_L("No %S"), &KTSockAddr());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		myTSockAddr=static_cast<TSockAddr*>(GetDataObjectL(myTSockAddrName));	
+		}
+	if ( myTSockAddr!=NULL )
+		{
+		Cleanup();
+		iTBTSockAddr = &T_TBTSockAddrChild::Cast(*myTSockAddr);	
+		iTBTSockAddrOwned=EFalse;
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TSockAddr pointer is NULL"));		
+		SetBlockResult(EFail);		
+		}
+	}	
+		
+void CT_BTSockAddrData::TBTSockAddrSetBTAddr(const TDesC& aSection)
+	{		
+	TInt	devId;
+	if( GetIntFromConfig(aSection, KBTAddr(), devId))
+		{
+		INFO_PRINTF2(_L("TBTSockAddr SetBTAddr (%d)"), devId);	
+		iTBTSockAddr->SetBTAddr(devId);				
+		}
+	else
+		{
+		TPtrC	configSectionName;
+		if( GetStringFromConfig(aSection, KSection(), configSectionName))
+			{
+			INFO_PRINTF2(_L("Getting BT Adress from config section: (%S)"), &configSectionName);	
+			TInt lhs;
+			TInt rhs;
+			if ( !GetHexFromConfig(configSectionName, KConfigHexBTAddrL(), lhs ))
+				{
+				ERR_PRINTF1(_L("TBTSockAddrSetBTAddr GetHexFromConfig failed"));		
+				SetBlockResult(EFail);	
+				}			
+			if ( !GetHexFromConfig(configSectionName, KConfigHexBTAddrR(), rhs ))
+				{
+				ERR_PRINTF1(_L("TBTSockAddrSetBTAddr GetHexFromConfig failed"));		
+				SetBlockResult(EFail);	
+				}
+			TBTDevAddr btDevAddr (MAKE_TINT64(lhs, rhs));
+			iTBTSockAddr->SetBTAddr(btDevAddr);		
+			}
+		else
+			{
+			TPtrC	myTBTDevAddrName;
+			if( GetStringFromConfig(aSection, KTBTDevAddr(), myTBTDevAddrName))
+				{
+				CT_BTDevAddrData* myTBTDevAddrData=static_cast<CT_BTDevAddrData*>(GetDataWrapperL(myTBTDevAddrName));	
+				iTBTSockAddr->SetBTAddr(*myTBTDevAddrData->GetAddress());
+				}
+			else
+				{		
+				TInt lhs;
+				TInt rhs;
+				if ( !GetHexFromConfig(aSection, KHexBTAddrL(), lhs ))
+					{
+					ERR_PRINTF1(_L("TBTSockAddrSetBTAddr GetHexFromConfig failed"));		
+					SetBlockResult(EFail);	
+					}			
+				if ( !GetHexFromConfig(aSection, KHexBTAddrR(), rhs ))
+					{
+					ERR_PRINTF1(_L("TBTSockAddrSetBTAddr GetHexFromConfig failed"));		
+					SetBlockResult(EFail);	
+					}
+				TBTDevAddr btDevAddr (MAKE_TINT64(lhs, rhs));
+				iTBTSockAddr->SetBTAddr(btDevAddr);		
+				}
+			}
+		}
+	}
+		
+void CT_BTSockAddrData::TBTSockAddrBTAddr(const TDesC& aSection)
+	{				
+	TInt	devId;
+
+	TBTDevAddr retrivedDevAddr = iTBTSockAddr->BTAddr();			
+	TBuf<KMaxSockAddrSize> tmpBuf;
+	retrivedDevAddr.GetReadable(tmpBuf);
+	INFO_PRINTF2(_L("Bluetooth address:   actual = 0x%S"),&tmpBuf);
+	
+	if( GetIntFromConfig(aSection, KBTAddr(), devId))
+		{
+		TBTDevAddr devAddr= TBTDevAddr(devId);
+		TBuf<KMaxSockAddrSize> tmpBuf2;
+		devAddr.GetReadable(tmpBuf2);
+		INFO_PRINTF2(_L("Bluetooth address: expected = 0x%S"),&tmpBuf2);						
+
+		
+		if(devAddr != retrivedDevAddr)
+			{
+			ERR_PRINTF1(_L("BTAddr is not as expected!"));
+			SetBlockResult(EFail);				
+			}
+		else
+			{
+			INFO_PRINTF1(_L("TBTSockAddr BTAddr as expected"));	
+			}
+		}
+	else
+		{
+		TPtrC	configSectionName;
+		if( GetStringFromConfig(aSection, KSection(), configSectionName))
+			{
+			INFO_PRINTF2(_L("Getting BT Adress from config section: (%S)"), &configSectionName);	
+			TInt lhs;
+			TInt rhs;
+			if ( !GetHexFromConfig(configSectionName, KConfigHexBTAddrL(), lhs ))
+				{
+				ERR_PRINTF1(_L("TBTSockAddrSetBTAddr GetHexFromConfig failed"));		
+				SetBlockResult(EFail);	
+				}			
+			if ( !GetHexFromConfig(configSectionName, KConfigHexBTAddrR(), rhs ))
+				{
+				ERR_PRINTF1(_L("TBTSockAddrSetBTAddr GetHexFromConfig failed"));		
+				SetBlockResult(EFail);	
+				}
+			TBTDevAddr devAddr (MAKE_TINT64(lhs, rhs));	
+			if(devAddr != retrivedDevAddr)
+				{
+				ERR_PRINTF1(_L("BTAddr is not as expected!"));
+				SetBlockResult(EFail);				
+				}
+			else
+				{
+				INFO_PRINTF1(_L("TBTSockAddr BTAddr as expected"));	
+				}				
+			}		
+		
+		else
+			{
+			TPtrC	myTBTDevAddrName;
+			if( GetStringFromConfig(aSection, KTBTDevAddr(), myTBTDevAddrName))
+				{
+				CT_BTDevAddrData* myTBTDevAddrData=static_cast<CT_BTDevAddrData*>(GetDataWrapperL(myTBTDevAddrName));	
+				TBTDevAddr btDevAddr = *myTBTDevAddrData->GetAddress();
+				TBuf<KMaxSockAddrSize> tmpBuf2;
+				btDevAddr.GetReadable(tmpBuf2);
+				if (tmpBuf2 != tmpBuf)
+					{
+					ERR_PRINTF3(_L("Expected address (%S) != actual address (%S)"),&tmpBuf2,&tmpBuf);
+					SetBlockResult(EFail);	
+					}
+				}
+			else
+				{
+				TInt lhs;
+				TInt rhs;
+				if ( GetHexFromConfig(aSection, KHexBTAddrL(), lhs ))
+					{
+					if ( !GetHexFromConfig(aSection, KHexBTAddrR(), rhs ))
+						{
+						ERR_PRINTF1(_L("TBTSockAddrBTAddr GetHexFromConfig failed"));		
+						SetBlockResult(EFail);	
+						}
+					TBTDevAddr devAddr (MAKE_TINT64(lhs, rhs));	
+					if(devAddr != retrivedDevAddr)
+						{
+						ERR_PRINTF1(_L("BTAddr is not as expected!"));
+						SetBlockResult(EFail);				
+						}
+					else
+						{
+						INFO_PRINTF1(_L("TBTSockAddr BTAddr as expected"));	
+						}			
+					}
+				}
+			}
+		}
+	}	
+		
+void CT_BTSockAddrData::TBTSockAddrSetSecurity(const TDesC& aSection)
+	{		
+	INFO_PRINTF1(_L("TBTSockAddr SetSecurity to current iBTServiceSecurity"));	
+	TPtrC		myBTServiceSecurityName;
+	TBTServiceSecurity*	myBTServiceSecurity=NULL;
+	if ( !GetStringFromConfig(aSection, KSecurity(), myBTServiceSecurityName) )
+		{
+		ERR_PRINTF2(_L("No %S"), &KSecurity());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		myBTServiceSecurity=static_cast<TBTServiceSecurity*>(GetDataObjectL(myBTServiceSecurityName));	
+		}
+	if ( myBTServiceSecurity!=NULL )
+		{
+		iTBTSockAddr->SetSecurity(*myBTServiceSecurity);	
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrSetSecurity BTServiceSecurity is NULL"));		
+		SetBlockResult(EFail);		
+		}	
+	}	
+	
+void CT_BTSockAddrData::TBTSockAddrBTSecurity(const TDesC& aSection)
+	{	
+	INFO_PRINTF1(_L("TBTSockAddr set iBTServiceSecurity from BTSecurity"));			
+	TPtrC		myBTServiceSecurityName;
+	CT_BTServiceSecurityData*	myBTServiceSecurityData=NULL;
+	if ( !GetStringFromConfig(aSection, KSecurity(), myBTServiceSecurityName) )
+		{
+		ERR_PRINTF2(_L("No %S"), &KSecurity());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		myBTServiceSecurityData=static_cast<CT_BTServiceSecurityData*>(GetDataWrapperL(myBTServiceSecurityName));	
+		}
+	if ( myBTServiceSecurityData!=NULL )
+		{
+		TBTServiceSecurity tmp = iTBTSockAddr->BTSecurity();
+		myBTServiceSecurityData->CopyObjectL(&tmp);
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrBTSecurity BTServiceSecurity is NULL"));		
+		SetBlockResult(EFail);		
+		}	
+	}	
+			
+void CT_BTSockAddrData::TBTSockAddrSetFamily(const TDesC& aSection)
+	{		
+	TInt	family;
+	if( GetIntFromConfig(aSection, KFamily(), family))
+		{
+		INFO_PRINTF2(_L("TBTSockAddr SetFamily (%d)"), family);	
+		iTBTSockAddr->SetFamily(family);				
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrSetFamily GetIntFromConfig failed"));		
+		SetBlockResult(EFail);		
+		}		
+	}
+	
+void CT_BTSockAddrData::TBTSockAddrFamily(const TDesC& aSection)
+	{		
+	TInt	family;
+
+	TInt familyReceived = static_cast<TInt>(iTBTSockAddr->Family());
+	INFO_PRINTF2(_L("TBTSockAddr Family: actual   (%d)" ), familyReceived);
+	
+	if( GetIntFromConfig(aSection, KFamily(), family))
+		{
+		INFO_PRINTF2(_L("TBTSockAddr Family: expected (%d)" ), family);
+
+		if(family != familyReceived)
+			{
+			ERR_PRINTF1(_L("Family is not as expected!"));
+			SetBlockResult(EFail);				
+			}
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrFamily GetIntFromConfig failed"));		
+		SetBlockResult(EFail);		
+		}
+	}
+	
+void CT_BTSockAddrData::TBTSockAddrSetPort(const TDesC& aSection)
+	{		
+	TInt	port;
+	if( GetIntFromConfig(aSection, KPort(), port))
+		{
+		INFO_PRINTF2(_L("TBTSockAddr SetPort (%d)"), port);	
+		iTBTSockAddr->SetPort(port);				
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrSetPort GetIntFromConfig failed"));		
+		SetBlockResult(EFail);		
+		}
+	}
+	
+void CT_BTSockAddrData::TBTSockAddrPort(const TDesC& aSection)
+	{		
+	TInt	port;
+	
+	TInt portReceived = static_cast<TInt>(iTBTSockAddr->Port());
+	INFO_PRINTF2(_L("TBTSockAddr Port: actual   (%d)" ), portReceived);
+	
+	if( GetIntFromConfig(aSection, KPort(), port))
+		{
+		INFO_PRINTF2(_L("TBTSockAddr Port: expected (%d)" ), port);
+		if(port != portReceived)
+			{
+			ERR_PRINTF1(_L("Port is not as expected!"));
+			SetBlockResult(EFail);				
+			}
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrPort GetIntFromConfig failed"));		
+		SetBlockResult(EFail);		
+		}
+	}	
+	
+void CT_BTSockAddrData::TBTSockAddrCmpPort(const TDesC& aSection)
+	{	
+	INFO_PRINTF1(_L("TBTSockAddrCmpPort"));
+	TPtrC myTBTSockAddrName;
+	TBTSockAddr* myTBTSockAddr=NULL;
+	
+	TUint portReceived = iTBTSockAddr->Port();
+	TUint familyReceived = iTBTSockAddr->Family();
+	INFO_PRINTF3(_L("TBTSockAddrCmpPort Port: actual   (%d), Family: actual   (%d)"), portReceived, familyReceived );
+	
+	if ( !GetStringFromConfig(aSection, KTBTSockAddr(), myTBTSockAddrName) )
+		{
+		ERR_PRINTF2(_L("No %S"), &KTBTSockAddr());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		myTBTSockAddr=static_cast<TBTSockAddr*>(GetDataObjectL(myTBTSockAddrName));	
+		}
+	if ( myTBTSockAddr!=NULL )
+		{
+		
+		TUint port = myTBTSockAddr->Port();
+		TUint family = myTBTSockAddr->Family();
+		
+		INFO_PRINTF3(_L("TBTSockAddrCmpPort Port: expected (%d), Family: expected (%d)"), port, family );
+
+		TBool expectedCompResult =ETrue;
+		
+		GetBoolFromConfig(aSection, KExpectedCompResult(), expectedCompResult);
+		TBool actualCompResult = myTBTSockAddr->CmpPort(*iTBTSockAddr);
+		INFO_PRINTF3(_L("TBTSockAddrCmpPort Compare result expected (%d), actual (%d)"), expectedCompResult, actualCompResult );
+		if( actualCompResult != expectedCompResult)
+			{
+			ERR_PRINTF1(_L("TBTSockAddrCmpPort failed"));		
+			SetBlockResult(EFail);				
+			}	
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddr is NULL"));		
+		SetBlockResult(EFail);		
+		}
+	}				
+
+void CT_BTSockAddrData::TBTSockAddrGetUserLen(const TDesC& aSection)
+	{						
+	TInt	userLen;
+	
+	TInt userLenReceived = static_cast<TInt>(iTBTSockAddr->GetUserLen());
+	INFO_PRINTF2(_L("TBTSockAddr Protected UserLen: actual   (%d)"), userLenReceived);
+	
+	if( GetIntFromConfig(aSection, KUserlen(), userLen))
+		{
+		INFO_PRINTF2(_L("TBTSockAddr Protected UserLen: expected (%d)" ), userLen);
+		if(userLen != userLenReceived)
+			{
+			ERR_PRINTF1(_L("UserLen is not as expected!"));
+			SetBlockResult(EFail);				
+			}
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrGetUserLen GetIntFromConfig failed"));		
+		SetBlockResult(EFail);		
+		}		
+	}	
+	
+void CT_BTSockAddrData::TBTSockAddrPROTECTEDSetUserLen(const TDesC& aSection)
+	{		
+	TInt	userLen;
+	if( GetIntFromConfig(aSection, KUserlen(), userLen))
+		{
+		INFO_PRINTF2(_L("TBTSockAddr Protected SetUserLen (%d)"), userLen);
+		iTBTSockAddr->T_SetUserLen(userLen);				
+		}
+	else
+		{
+		ERR_PRINTF1(_L("TBTSockAddrPROTECTEDSetUserLen GetIntFromConfig failed"));		
+		SetBlockResult(EFail);		
+		}		
+	}	
+		
+void CT_BTSockAddrData::TBTSockAddrPROTECTEDUserPtr()
+	{		
+	TUint8* userPtr = iTBTSockAddr->T_UserPtr();
+	INFO_PRINTF2(_L("TBTSockAddr Protected userPtr: (%d)" ), userPtr);
+	if(!userPtr)
+		{
+		ERR_PRINTF1(_L("Null pointer retrived!"));
+		SetBlockResult(EFail);				
+		}
+	}
+			
+void CT_BTSockAddrData::TBTSockAddrPROTECTEDEndBTSockAddrPtr()
+	{		
+	TAny * endBTSockAddrPtr = iTBTSockAddr->T_EndBTSockAddrPtr();
+	INFO_PRINTF2(_L("TBTSockAddr Protected EndBTSockAddrPtr: (%d)" ), endBTSockAddrPtr);
+	if(!endBTSockAddrPtr)
+		{
+		ERR_PRINTF1(_L("Null pointer retrived!"));
+		SetBlockResult(EFail);				
+		}
+	}	
+					
+	
+TAny* CT_BTSockAddrData::GetObject()
+	{
+	return iTBTSockAddr;
+	}
+	
+	
+void CT_BTSockAddrData::SetObject(T_TBTSockAddrChild* aTBTSockAddr, TBool aTransferOwnership)
+	{
+	iTBTSockAddr = aTBTSockAddr;
+	iTBTSockAddrOwned = aTransferOwnership;
+	}