diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/cmtpexampledprequestprocessor_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/cmtpexampledprequestprocessor_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ - -
-00001 // Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -00002 // All rights reserved. -00003 // This component and the accompanying materials are made available -00004 // under the terms of "Eclipse Public License v1.0" -00005 // which accompanies this distribution, and is available -00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html". -00007 // -00008 // Initial Contributors: -00009 // Nokia Corporation - initial contribution. -00010 // -00011 // Contributors: -00012 // -00013 // Description: -00014 // -00015 -00016 #include <mtp/mtpprotocolconstants.h> -00017 #include <mtp/tmtptyperequest.h> -00018 #include <mtp/mmtpdataproviderframework.h> -00019 #include <mtp/tmtptypeevent.h> -00020 #include <mtp/mmtpconnection.h> -00021 #include <mtp/mmtpobjectmgr.h> -00022 -00023 #include "cmtpexampledprequestprocessor.h" -00024 -00025 -00034 CMTPExampleDpRequestProcessor::CMTPExampleDpRequestProcessor( -00035 MMTPDataProviderFramework& aFramework, -00036 MMTPConnection& aConnection, -00037 TInt aElementCount, -00038 const TMTPRequestElementInfo* aElements) -00039 :iFramework(aFramework), -00040 iConnection(aConnection), -00041 iElementCount(aElementCount), -00042 iElements(aElements) -00043 { -00044 -00045 } -00046 -00050 CMTPExampleDpRequestProcessor::~CMTPExampleDpRequestProcessor() -00051 { -00052 } -00056 void CMTPExampleDpRequestProcessor::Release() -00057 { -00058 delete this; -00059 } -00060 -00061 -00068 void CMTPExampleDpRequestProcessor::SendResponseL(TMTPResponseCode aResponseCode, TInt aParameterCount, TUint32* aParams) -00069 { -00070 iResponse.SetUint16(TMTPTypeResponse::EResponseCode, aResponseCode); -00071 -00072 iResponse.SetUint32(TMTPTypeResponse::EResponseSessionID, iSessionId); -00073 -00074 iResponse.SetUint32(TMTPTypeResponse::EResponseTransactionID, iTransactionCode); -00075 -00076 TInt i = 0; -00077 for(i = 0; i < aParameterCount; i++) -00078 { -00079 iResponse.SetUint32(TMTPTypeResponse::EResponseParameter1 + i, aParams[i]); -00080 } -00081 -00082 i += TMTPTypeResponse::EResponseParameter1; -00083 while(i <= TMTPTypeResponse::EResponseParameter5) -00084 { -00085 iResponse.SetUint32(i, KMTPNotSpecified32); -00086 i++; -00087 } -00088 iFramework.SendResponseL(iResponse, *iRequest, iConnection); -00089 } -00094 const TMTPTypeRequest& CMTPExampleDpRequestProcessor::Request() const -00095 { -00096 return *iRequest; -00097 } -00098 -00099 -00100 -00104 void CMTPExampleDpRequestProcessor::CompleteRequestL() -00105 { -00106 iFramework.TransactionCompleteL(*iRequest, iConnection); -00107 } -00108 -00109 -00116 TBool CMTPExampleDpRequestProcessor::HandleRequestL(const TMTPTypeRequest& aRequest, TMTPTransactionPhase aPhase) -00117 { -00118 iRequest = &aRequest; -00119 TBool result = EFalse; -00120 switch(aPhase) -00121 { -00122 case ERequestPhase: -00123 ExtractSessionTransactionId(); -00124 ServiceL(); -00125 break; -00126 -00127 case EResponsePhase: -00128 result = DoHandleResponsePhaseL(); -00129 break; -00130 -00131 case ECompletingPhase: -00132 result = DoHandleCompletingPhaseL(); -00133 break; -00134 } -00135 return result; -00136 } -00137 -00138 -00143 MMTPConnection& CMTPExampleDpRequestProcessor::Connection() const -00144 { -00145 return iConnection; -00146 } -00147 -00152 TUint32 CMTPExampleDpRequestProcessor::SessionId() -00153 { -00154 return iSessionId; -00155 } -00156 -00161 TBool CMTPExampleDpRequestProcessor::DoHandleResponsePhaseL() -00162 { -00163 TMTPResponseCode responseCode = (iCancelled ? EMTPRespCodeIncompleteTransfer : EMTPRespCodeOK); -00164 SendResponseL(responseCode); -00165 return EFalse; -00166 } -00167 -00172 TBool CMTPExampleDpRequestProcessor::DoHandleCompletingPhaseL() -00173 { -00174 CompleteRequestL(); -00175 return ETrue; -00176 } -00177 -00181 void CMTPExampleDpRequestProcessor::ExtractSessionTransactionId() -00182 { -00183 iSessionId = iRequest->Uint32(TMTPTypeRequest::ERequestSessionID); -00184 iTransactionCode = iRequest->Uint32(TMTPTypeRequest::ERequestTransactionID); -00185 } -00186 -00187 -00194 TBool CMTPExampleDpRequestProcessor::Match(const TMTPTypeEvent& aEvent, MMTPConnection& aConnection) const -00195 { -00196 -00197 TUint32 eventSessionId = aEvent.Uint32(TMTPTypeEvent::EEventSessionID); -00198 TUint32 eventTransactionCode = aEvent.Uint32(TMTPTypeEvent::EEventTransactionID); -00199 -00200 TBool result = EFalse; -00201 if(iSessionId == eventSessionId && -00202 iTransactionCode == eventTransactionCode && -00203 &iConnection == &aConnection) -00204 { -00205 result = ETrue; -00206 } -00207 return result; -00208 } -00209 -00216 TBool CMTPExampleDpRequestProcessor::Match(const TMTPTypeRequest& aRequest, MMTPConnection& aConnection) const -00217 { -00218 TBool result = ((&aRequest == iRequest) && (&iConnection == &aConnection)); -00219 return result; -00220 } -00221 -00226 void CMTPExampleDpRequestProcessor::HandleEventL(const TMTPTypeEvent& aEvent) -00227 { -00228 TUint16 eventCode = aEvent.Uint16(TMTPTypeEvent::EEventCode); -00229 iCancelled = (eventCode == EMTPEventCodeCancelTransaction); -00230 } -00231 -00232 -00233 -00234 -