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 |