| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Fri, 15 Jan 2010 08:13:17 +0200 | |
| changeset 0 | 29b1cd4cb562 | 
| permissions | -rw-r--r-- | 
| 0 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | // All rights reserved. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | // This component and the accompanying materials are made available | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | // under the terms of "Eclipse Public License v1.0" | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | // which accompanies this distribution, and is available | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | // at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | // | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | // Initial Contributors: | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | // Nokia Corporation - initial contribution. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | // | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | // Contributors: | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | // | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | // Description: | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | // | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | #include <bluetooth/logger.h> | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | #include "l2capSigPacketInformation.h" | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | #include "l2capSignalHandler.h" | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | #include "l2constants.h" | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | #ifdef __FLOG_ACTIVE | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | _LIT8(KLogComponent, LOG_COMPONENT_L2CAP); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | #endif | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | // INFORMATION REQUEST COMMAND | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | /*static*/ HInformationRequest* HInformationRequest::New(TInfoType aInfoType, | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | TUint8 aRTXTimerDuration, | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | TUint16 aERTXTimerDuration) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | LOG_STATIC_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | HInformationRequest* cmd = NULL; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | RMBufChain buf; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | TRAPD(rerr, buf.AllocL(KInformationRequestLength)); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | if(rerr == KErrNone) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | cmd = new HInformationRequest(buf, aRTXTimerDuration, aERTXTimerDuration); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | if(cmd) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | // Setup message contents. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | cmd->SetCode(EInformationRequest); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | cmd->SetID(KUninitialisedID); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | cmd->WriteDataLength(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | cmd->SetInfoType(aInfoType); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | // Free the allocated buffer. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | buf.Free(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 53 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 54 | return cmd; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 56 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | /** | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | Verifies that the buffer contains a structurally correct command. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | This does not ensure that the content of the command is semantically valid. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | @param aCommmand A new HL2CapCommand if the buffer contains a structurally valid command. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 62 | @param aBuffer The buffer containing the command | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 63 | @return KErrNone if the command if created. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 64 | KErrNoMemory if the command structure is valid but cannot be created. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 65 | KErrCorrupt if the command structure is invalid. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 66 | */ | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 67 | TInt HInformationRequest::NewCommandIfValid(RMBufChain& aBuffer, HL2CapCommand*& aCommand) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 68 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 69 | LOG_STATIC_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 70 | // Firstly align the MBufChain. The maximum size we can align the | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 71 | // MBufChain to is the maximum MBuf size | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 72 | __ASSERT_COMPILE(KInformationRequestLength <= KMBufSmallSize); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 73 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 74 | TInt length = aBuffer.Length(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 75 | if(length == KInformationRequestLength) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 76 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 77 | // Don't need to check result as we know that the MBufChain contains | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 78 | // at least length bytes as we asked first. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 79 | (void)aBuffer.Align(length); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 80 | aCommand = new HInformationRequest(aBuffer); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 81 | if(aCommand) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 82 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 83 | return KErrNone; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 84 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 85 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 86 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 87 | return KErrNoMemory; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 88 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 89 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 90 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 91 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 92 | // Dodge length! | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 93 | return KErrCorrupt; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 94 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 95 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 96 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 97 | HInformationRequest::HInformationRequest(RMBufChain& aCommand, | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 98 | TUint8 aRTXTimerDuration, | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 99 | TUint16 aERTXTimerDuration) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 100 | : HL2CapCommand(aCommand, aRTXTimerDuration, aERTXTimerDuration) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 101 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 102 | LOG_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 103 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 104 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 105 | HInformationRequest::~HInformationRequest() | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 106 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 107 | LOG_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 108 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 109 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 110 | TBool HInformationRequest::ProcessCommand(CL2CapSignalHandler& aSignalHandler) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 111 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 112 | LOG_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 113 | if(aSignalHandler.HandleInformationRequest(this)) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 114 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 115 | // The command has been handled. Delete it. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 116 | delete this; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 117 | return ETrue; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 118 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 119 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 120 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 121 | return EFalse; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 122 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 123 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 124 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 125 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 126 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 127 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 128 | // INFORMATION RESPONSE COMMAND | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 129 | //Constructor to deal command coming in from remote side | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 130 | // | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 131 | HInformationResponse::HInformationResponse(RMBufChain& aCommand) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 132 | : HL2CapCommand(aCommand) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 133 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 134 | LOG_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 135 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 136 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 137 | /*static*/ HInformationResponse* HInformationResponse::New(TInfoType aInfoType, TInfoReqResult aResult, TUint8 aId, TUint32 aExtendedFeatures) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 138 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 139 | LOG_STATIC_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 140 | HInformationResponse* cmd = NULL; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 141 | RMBufChain buf; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 142 | TRAPD(rerr, buf.AllocL(KInformationResponseMinLength + KExtendedFeatureMaskLength)); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 143 | if(rerr == KErrNone) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 144 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 145 | cmd = new HInformationResponse(buf); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 146 | if(cmd) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 147 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 148 | // Setup message contents. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 149 | cmd->SetCode(EInformationResponse); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 150 | cmd->SetID(aId); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 151 | cmd->WriteDataLength(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 152 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 153 | cmd->SetInfoType(aInfoType); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 154 | cmd->SetResult(aResult); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 155 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 156 | cmd->SetExtendedFeatureMask(aExtendedFeatures); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 157 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 158 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 159 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 160 | // Free the allocated buffer. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 161 | buf.Free(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 162 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 163 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 164 | return cmd; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 165 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 166 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 167 | /*static*/ HInformationResponse* HInformationResponse::New(TInfoType aInfoType, TInfoReqResult aResult, TUint8 aId) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 168 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 169 | LOG_STATIC_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 170 | HInformationResponse* cmd = NULL; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 171 | RMBufChain buf; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 172 | TRAPD(rerr, buf.AllocL(KInformationResponseMinLength)); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 173 | if(rerr == KErrNone) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 174 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 175 | cmd = new HInformationResponse(buf); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 176 | if(cmd) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 177 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 178 | // Setup message contents. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 179 | cmd->SetCode(EInformationResponse); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 180 | cmd->SetID(aId); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 181 | cmd->WriteDataLength(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 182 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 183 | cmd->SetInfoType(aInfoType); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 184 | cmd->SetResult(aResult); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 185 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 186 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 187 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 188 | // Free the allocated buffer. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 189 | buf.Free(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 190 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 191 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 192 | return cmd; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 193 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 194 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 195 | /** | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 196 | Verifies that the buffer contains a structurally correct command. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 197 | This does not ensure that the content of the command is semantically valid. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 198 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 199 | @param aCommmand A new HL2CapCommand if the buffer contains a structurally valid command. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 200 | @param aBuffer The buffer containing the command | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 201 | @return KErrNone if the command if created. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 202 | KErrNoMemory if the command structure is valid but cannot be created. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 203 | KErrCorrupt if the command structure is invalid. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 204 | */ | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 205 | TInt HInformationResponse::NewCommandIfValid(RMBufChain& aBuffer, HL2CapCommand*& aCommand) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 206 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 207 | LOG_STATIC_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 208 | // Firstly align the MBufChain. The maximum size we can align the | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 209 | // MBufChain to is the maximum MBuf size | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 210 | __ASSERT_COMPILE(KInformationResponseMaxLength <= KMBufSmallSize); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 211 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 212 | TInt length = aBuffer.Length(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 213 | if((length >= KInformationResponseMinLength) && (length <= KInformationResponseMaxLength)) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 214 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 215 | // Don't need to check result as we know that the MBufChain contains | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 216 | // at least length bytes as we asked first. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 217 | (void)aBuffer.Align(length); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 218 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 219 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 220 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 221 | // Dodge length! | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 222 | return KErrCorrupt; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 223 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 224 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 225 | if(VerifyStructure(aBuffer)) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 226 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 227 | // Top! The structure's fine, go ahead and create the command. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 228 | aCommand = new HInformationResponse(aBuffer); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 229 | if(aCommand) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 230 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 231 | return KErrNone; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 232 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 233 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 234 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 235 | return KErrNoMemory; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 236 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 237 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 238 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 239 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 240 | // We'll not have any of this nonsense! | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 241 | return KErrCorrupt; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 242 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 243 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 244 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 245 | /* static */ TBool HInformationResponse::VerifyStructure(const RMBufChain& aCommand) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 246 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 247 | LOG_STATIC_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 248 | TBool valid = ETrue; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 249 | TInfoType infoType = static_cast<TInfoType>(GetLittleEndian16(KInfoTypeOffset, aCommand)); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 250 | TInfoReqResult result = static_cast<TInfoReqResult>(GetLittleEndian16(KResultOffset, aCommand)); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 251 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 252 | if(result == ESuccess) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 253 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 254 | switch(infoType) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 255 | 			{ 
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 256 | case EConnectionlessMTU: | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 257 | 				{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 258 | if(aCommand.Length() != KInformationResponseMinLength + KConnectionlessMTULength) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 259 | 					{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 260 | valid = EFalse; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 261 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 262 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 263 | break; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 264 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 265 | case EExtendedFeaturesSupported: | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 266 | 				{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 267 | if(aCommand.Length() != KInformationResponseMinLength + KExtendedFeatureMaskLength) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 268 | 					{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 269 | valid = EFalse; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 270 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 271 | break; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 272 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 273 | default: | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 274 | 				{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 275 | // Unknown info type | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 276 | // Although this is dodgy as the info type should be copied from the request | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 277 | // we accept this for the sake of interop with legacy devices that deal | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 278 | // incorrectly with extended features. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 279 | break; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 280 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 281 | }; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 282 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 283 | else if(result == ENotsupported) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 284 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 285 | if(aCommand.Length() != KInformationResponseMinLength) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 286 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 287 | valid = EFalse; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 288 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 289 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 290 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 291 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 292 | valid = EFalse; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 293 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 294 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 295 | return valid; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 296 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 297 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 298 | HInformationResponse::~HInformationResponse() | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 299 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 300 | LOG_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 301 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 302 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 303 | TBool HInformationResponse::ProcessCommand(CL2CapSignalHandler& aSignalHandler) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 304 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 305 | LOG_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 306 | if(aSignalHandler.HandleInformationResponse(this)) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 307 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 308 | // The command has been handled. Delete it. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 309 | delete this; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 310 | return ETrue; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 311 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 312 | else | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 313 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 314 | return EFalse; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 315 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 316 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 317 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 318 | TL2CapEntityInfo HInformationResponse::RemoteExtendedFeatureMask() const | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 319 | 	{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 320 | LOG_FUNC | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 321 | TL2CapEntityInfo peerExtendedFeatures; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 322 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 323 | // Check that the features are supported, and the message is a valid length. If not return the default | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 324 | // remote entity information. | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 325 | if(InfoType() == EExtendedFeaturesSupported && Result() == ESuccess) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 326 | 		{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 327 | TUint32 featureMask = GetLittleEndian32(KDataOffset, iCommand); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 328 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 329 | if(featureMask & EFlowControlMode) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 330 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 331 | peerExtendedFeatures.SetSupportFlowControl(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 332 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 333 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 334 | if(featureMask & ERetransmissionMode) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 335 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 336 | peerExtendedFeatures.SetSupportRetranmission(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 337 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 338 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 339 | if(featureMask & EBiDirectionalQOS) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 340 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 341 | peerExtendedFeatures.SetSupportBiDirectionalQos(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 342 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 343 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 344 | if(featureMask & EEnhancedRetransmissionMode) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 345 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 346 | peerExtendedFeatures.SetSupportEnhancedRetransmissionMode(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 347 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 348 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 349 | if(featureMask & EStreamingMode) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 350 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 351 | peerExtendedFeatures.SetSupportStreamingMode(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 352 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 353 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 354 | if(featureMask & EFCSOption) | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 355 | 			{
 | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 356 | peerExtendedFeatures.SetSupportFCSOption(); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 357 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 358 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 359 | peerExtendedFeatures.SetLinkInfoState(EL2CapEntityInfoDefined); | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 360 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 361 | |
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 362 | return peerExtendedFeatures; | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 363 | } | 
| 
29b1cd4cb562
Revision: 200951_001
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 364 |