mtpfws/mtpfw/dataproviders/proxydp/src/cmtpgetformatcapabilities.cpp
changeset 49 c20dd21d1eb4
parent 0 d0791faffa3f
child 52 866b4af7ffbe
equal deleted inserted replaced
41:2c19c7cf5550 49:c20dd21d1eb4
    21 #include "mtpproxydppanic.h"
    21 #include "mtpproxydppanic.h"
    22 #include "cmtpdataprovidercontroller.h"
    22 #include "cmtpdataprovidercontroller.h"
    23 #include "cmtpobjectmgr.h"
    23 #include "cmtpobjectmgr.h"
    24 #include "cmtpdataprovider.h"
    24 #include "cmtpdataprovider.h"
    25 #include "cmtpparserrouter.h"
    25 #include "cmtpparserrouter.h"
       
    26 #include "OstTraceDefinitions.h"
       
    27 #ifdef OST_TRACE_COMPILER_IN_USE
       
    28 #include "cmtpgetformatcapabilitiesTraces.h"
       
    29 #endif
       
    30 
    26 
    31 
    27 
    32 
    28 // Class constants.
    33 // Class constants.
    29 __FLOG_STMT(_LIT8(KComponent,"GetFormatCapabilityList");)
       
    30 
    34 
    31 
    35 
    32 /**
    36 /**
    33 Two-phase construction method
    37 Two-phase construction method
    34 @param aFramework    The data provider framework
    38 @param aFramework    The data provider framework
    47 /**
    51 /**
    48 Destructor
    52 Destructor
    49 */ 
    53 */ 
    50 CMTPGetFormatCapabilities::~CMTPGetFormatCapabilities()
    54 CMTPGetFormatCapabilities::~CMTPGetFormatCapabilities()
    51     {
    55     {
    52     __FLOG(_L8("~CMTPGetFormatCapabilities - Entry"));
    56     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_CMTPGETFORMATCAPABILITIES_DES_ENTRY );
    53     
    57     
    54     iSingletons.Close();
    58     iSingletons.Close();
    55     delete iCapabilityList;
    59     delete iCapabilityList;
    56     iTargetDps.Close();
    60     iTargetDps.Close();
    57     
    61 
    58     __FLOG(_L8("~CMTPGetFormatCapabilities - Exit"));
    62     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_CMTPGETFORMATCAPABILITIES_DES_EXIT );
    59     __FLOG_CLOSE;
       
    60     }
    63     }
    61 
    64 
    62 CMTPGetFormatCapabilities::CMTPGetFormatCapabilities(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection):
    65 CMTPGetFormatCapabilities::CMTPGetFormatCapabilities(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection):
    63 CMTPRequestProcessor( aFramework, aConnection, 0, NULL )
    66 CMTPRequestProcessor( aFramework, aConnection, 0, NULL )
    64     {
    67     {
    65     
    68     
    66     }
    69     }
    67 
    70 
    68 void CMTPGetFormatCapabilities::ConstructL()
    71 void CMTPGetFormatCapabilities::ConstructL()
    69     {
    72     {
    70     __FLOG_OPEN(KMTPSubsystem, KComponent);
    73     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_CONSTRUCTL_ENTRY );
    71     __FLOG(_L8("ConstructL - Entry"));
       
    72     
    74     
    73     iSingletons.OpenL();
    75     iSingletons.OpenL();
    74     
    76 
    75     __FLOG(_L8("ConstructL - Exit"));
    77     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_CONSTRUCTL_EXIT );
    76     }
    78     }
    77 
    79 
    78 
    80 
    79 void CMTPGetFormatCapabilities::ServiceL()
    81 void CMTPGetFormatCapabilities::ServiceL()
    80     {
    82     {
    81     __FLOG(_L8("ServiceL - Entry"));
    83     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_SERVICEL_ENTRY );
    82     
    84     
    83     delete iCapabilityList;
    85     delete iCapabilityList;
    84     iCapabilityList = CMTPTypeFormatCapabilityList::NewL();
    86     iCapabilityList = CMTPTypeFormatCapabilityList::NewL();
    85     iTargetDps.Reset();
    87     iTargetDps.Reset();
    86     
    88     
    88     CMTPParserRouter::TRoutingParameters params(*iRequest, iConnection);
    90     CMTPParserRouter::TRoutingParameters params(*iRequest, iConnection);
    89     router.ParseOperationRequestL(params);
    91     router.ParseOperationRequestL(params);
    90     router.RouteOperationRequestL(params, iTargetDps);
    92     router.RouteOperationRequestL(params, iTargetDps);
    91     iCurrentTarget = 0;
    93     iCurrentTarget = 0;
    92     Schedule(KErrNone);
    94     Schedule(KErrNone);
    93         
    95     
    94     __FLOG(_L8("ServiceL - Exit"));
    96     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_SERVICEL_EXIT );
    95     }
    97     }
    96 
    98 
    97 void CMTPGetFormatCapabilities::ProxyReceiveDataL(MMTPType& /*aData*/, const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/, TRequestStatus& /*aStatus*/)
    99 void CMTPGetFormatCapabilities::ProxyReceiveDataL(MMTPType& /*aData*/, const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/, TRequestStatus& /*aStatus*/)
    98     {
   100     {
    99     __FLOG(_L8("ProxyReceiveDataL - Entry"));
   101     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_PROXYRECEIVEDATAL_ENTRY );
   100     
   102 
   101     Panic(EMTPWrongRequestPhase);
   103     Panic(EMTPWrongRequestPhase);
   102     
   104 
   103     __FLOG(_L8("ProxyReceiveDataL - Exit"));
   105     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_PROXYRECEIVEDATAL_EXIT );
   104     }
   106     }
   105 
   107 
   106 
   108 
   107 #ifdef _DEBUG   
   109 #ifdef _DEBUG   
   108 void CMTPGetFormatCapabilities::ProxySendDataL(const MMTPType& aData, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus)
   110 void CMTPGetFormatCapabilities::ProxySendDataL(const MMTPType& aData, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus)
   109 #else
   111 #else
   110 void CMTPGetFormatCapabilities::ProxySendDataL(const MMTPType& aData, const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/, TRequestStatus& aStatus)
   112 void CMTPGetFormatCapabilities::ProxySendDataL(const MMTPType& aData, const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/, TRequestStatus& aStatus)
   111 #endif
   113 #endif
   112     {
   114     {
   113     __FLOG(_L8("ProxySendDataL - Entry"));
   115     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_PROXYSENDDATAL_ENTRY );
   114     
   116 
   115     __ASSERT_DEBUG(((iRequest == &aRequest) && (&iConnection == &aConnection)), Panic(EMTPNotSameRequestProxy));
   117     __ASSERT_DEBUG(((iRequest == &aRequest) && (&iConnection == &aConnection)), Panic(EMTPNotSameRequestProxy));
   116     __ASSERT_DEBUG(aData.Type() == EMTPTypeFormatCapabilityListDataset, Panic(EMTPInvalidDataType));
   118     __ASSERT_DEBUG(aData.Type() == EMTPTypeFormatCapabilityListDataset, Panic(EMTPInvalidDataType));
   117     
   119     
   118     
   120     
   119     const CMTPTypeFormatCapabilityList& sourceList(static_cast<const CMTPTypeFormatCapabilityList&>(aData));
   121     const CMTPTypeFormatCapabilityList& sourceList(static_cast<const CMTPTypeFormatCapabilityList&>(aData));
   128         }
   130         }
   129 
   131 
   130     TRequestStatus* status = &aStatus;
   132     TRequestStatus* status = &aStatus;
   131     User::RequestComplete(status, KErrNone);
   133     User::RequestComplete(status, KErrNone);
   132     
   134     
   133     __FLOG(_L8("ProxySendDataL - Exit"));
   135     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_PROXYSENDDATAL_EXIT );
   134     }
   136     }
   135 
   137 
   136 /**
   138 /**
   137   Send the corresponding response for the request is routed by Proxy DP
   139   Send the corresponding response for the request is routed by Proxy DP
   138   ProxySendResponseL will complete the request of framework's AO, then switch the transaction phase to TranscationComplete
   140   ProxySendResponseL will complete the request of framework's AO, then switch the transaction phase to TranscationComplete
   146 void CMTPGetFormatCapabilities::ProxySendResponseL(const TMTPTypeResponse& aResponse, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus)
   148 void CMTPGetFormatCapabilities::ProxySendResponseL(const TMTPTypeResponse& aResponse, const TMTPTypeRequest& aRequest, MMTPConnection& aConnection, TRequestStatus& aStatus)
   147 #else
   149 #else
   148 void CMTPGetFormatCapabilities::ProxySendResponseL(const TMTPTypeResponse& aResponse, const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/, TRequestStatus& aStatus)
   150 void CMTPGetFormatCapabilities::ProxySendResponseL(const TMTPTypeResponse& aResponse, const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/, TRequestStatus& aStatus)
   149 #endif
   151 #endif
   150     {
   152     {
   151     __FLOG(_L8("ProxySendResponseL - Entry"));
   153     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_PROXYSENDRESPONSEL_ENTRY );
   152     
   154     
   153     __ASSERT_DEBUG(((iRequest == &aRequest) && (&iConnection == &aConnection)), Panic(EMTPNotSameRequestProxy));
   155     __ASSERT_DEBUG(((iRequest == &aRequest) && (&iConnection == &aConnection)), Panic(EMTPNotSameRequestProxy));
   154     MMTPType::CopyL(aResponse, iResponse);
   156     MMTPType::CopyL(aResponse, iResponse);
   155     TRequestStatus* status(&aStatus);
   157     TRequestStatus* status(&aStatus);
   156     User::RequestComplete(status, KErrNone);
   158     User::RequestComplete(status, KErrNone);
   157     
   159     
   158     __FLOG(_L8("ProxySendResponseL - Exit"));
   160     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_PROXYSENDRESPONSEL_EXIT );
   159     }
   161     }
   160 
   162 
   161 
   163 
   162 /**
   164 /**
   163   Complete the transaction phase for the request is routed by Proxy DP
   165   Complete the transaction phase for the request is routed by Proxy DP
   169 void CMTPGetFormatCapabilities::ProxyTransactionCompleteL(const TMTPTypeRequest& aRequest, MMTPConnection& aConnection)
   171 void CMTPGetFormatCapabilities::ProxyTransactionCompleteL(const TMTPTypeRequest& aRequest, MMTPConnection& aConnection)
   170 #else
   172 #else
   171 void CMTPGetFormatCapabilities::ProxyTransactionCompleteL(const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/)
   173 void CMTPGetFormatCapabilities::ProxyTransactionCompleteL(const TMTPTypeRequest& /*aRequest*/, MMTPConnection& /*aConnection*/)
   172 #endif
   174 #endif
   173     {
   175     {
   174     __FLOG(_L8("ProxyTransactionCompleteL - Entry"));
   176     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_PROXYTRANSACTIONCOMPLETEL_ENTRY );
   175         
   177      
   176     __ASSERT_DEBUG(((iRequest == &aRequest) && (&iConnection == &aConnection)), Panic(EMTPNotSameRequestProxy));
   178     __ASSERT_DEBUG(((iRequest == &aRequest) && (&iConnection == &aConnection)), Panic(EMTPNotSameRequestProxy));
   177     TInt err((iResponse.Uint16(TMTPTypeResponse::EResponseCode) == EMTPRespCodeOK) ? KErrNone : KErrGeneral);    
   179     TInt err((iResponse.Uint16(TMTPTypeResponse::EResponseCode) == EMTPRespCodeOK) ? KErrNone : KErrGeneral);    
   178     if (err == KErrNone)
   180     if (err == KErrNone)
   179         {
   181         {
   180         ++iCurrentTarget;
   182         ++iCurrentTarget;
   181         }
   183         }
   182     Schedule(err);
   184     Schedule(err);
   183         
   185         
   184     __FLOG(_L8("ProxyTransactionCompleteL - Exit"));
   186     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_PROXYTRANSACTIONCOMPLETEL_EXIT );
   185     }
   187     }
   186 
   188 
   187 
   189 
   188 void CMTPGetFormatCapabilities::SendResponseL(TUint16 aCode)
   190 void CMTPGetFormatCapabilities::SendResponseL(TUint16 aCode)
   189     {
   191     {
   190     __FLOG(_L8("SendResponseL - Entry"));
   192     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_SENDRESPONSEL_ENTRY );
   191         
   193         
   192     const TMTPTypeRequest& req(Request());
   194     const TMTPTypeRequest& req(Request());
   193     iResponse.SetUint16(TMTPTypeResponse::EResponseCode, aCode);
   195     iResponse.SetUint16(TMTPTypeResponse::EResponseCode, aCode);
   194     iResponse.SetUint32(TMTPTypeResponse::EResponseSessionID, req.Uint32(TMTPTypeRequest::ERequestSessionID));
   196     iResponse.SetUint32(TMTPTypeResponse::EResponseSessionID, req.Uint32(TMTPTypeRequest::ERequestSessionID));
   195     iResponse.SetUint32(TMTPTypeResponse::EResponseTransactionID, req.Uint32(TMTPTypeRequest::ERequestTransactionID));
   197     iResponse.SetUint32(TMTPTypeResponse::EResponseTransactionID, req.Uint32(TMTPTypeRequest::ERequestTransactionID));
   196     iFramework.SendResponseL(iResponse, req, Connection());
   198     iFramework.SendResponseL(iResponse, req, Connection());
   197         
   199 
   198     __FLOG(_L8("SendResponseL - Exit"));
   200     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_SENDRESPONSEL_EXIT );
   199     }
   201     }
   200 
   202 
   201 void CMTPGetFormatCapabilities::RunL()
   203 void CMTPGetFormatCapabilities::RunL()
   202     {
   204     {
   203     __FLOG(_L8("RunL - Entry"));
   205     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_RUNL_ENTRY );
   204        
   206 
   205     if (iStatus == KErrNone)
   207     if (iStatus == KErrNone)
   206        {
   208        {
   207        if (iCurrentTarget < iTargetDps.Count())   
   209        if (iCurrentTarget < iTargetDps.Count())   
   208            {
   210            {
   209            TUint id(iTargetDps[iCurrentTarget]);
   211            TUint id(iTargetDps[iCurrentTarget]);
   217        }
   219        }
   218    else
   220    else
   219        {
   221        {
   220        SendResponseL(iResponse.Uint16(TMTPTypeResponse::EResponseCode));
   222        SendResponseL(iResponse.Uint16(TMTPTypeResponse::EResponseCode));
   221        }   
   223        }   
   222         
   224 
   223     __FLOG(_L8("RunL - Exit"));
   225     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_RUNL_EXIT );
   224     }
   226     }
   225         
   227         
   226 TInt CMTPGetFormatCapabilities::RunError(TInt /*aError*/)
   228 TInt CMTPGetFormatCapabilities::RunError(TInt /*aError*/)
   227     {
   229     {
   228     __FLOG(_L8("RunError - Entry"));
   230     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_RUNERROR_ENTRY );
   229     
   231 
   230     TRAP_IGNORE(SendResponseL(EMTPRespCodeGeneralError));
   232     TRAP_IGNORE(SendResponseL(EMTPRespCodeGeneralError));
   231     
   233 
   232     __FLOG(_L8("RunError - Exit"));
   234     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_RUNERROR_EXIT );
   233     return KErrNone;
   235     return KErrNone;
   234     }
   236     }
   235             
   237             
   236 /**
   238 /**
   237 Completes the current asynchronous request with the specified 
   239 Completes the current asynchronous request with the specified 
   238 completion code.
   240 completion code.
   239 @param aError The asynchronous request completion request.
   241 @param aError The asynchronous request completion request.
   240 */
   242 */
   241 void CMTPGetFormatCapabilities::Schedule(TInt aError)
   243 void CMTPGetFormatCapabilities::Schedule(TInt aError)
   242     {
   244     {
   243     __FLOG(_L8("Schedule - Entry"));
   245     OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_SCHEDULE_ENTRY );
   244     
   246 
   245     TRequestStatus* status = &iStatus;
   247     TRequestStatus* status = &iStatus;
   246     User::RequestComplete(status, aError);
   248     User::RequestComplete(status, aError);
   247     SetActive();
   249     SetActive();
   248     
   250 
   249     __FLOG(_L8("Schedule - Exit"));
   251     OstTraceFunctionExit0( CMTPGETFORMATCAPABILITIES_SCHEDULE_EXIT );
   250     }
   252     }
   251 
   253