33 //USER INCLUDES |
33 //USER INCLUDES |
34 #include "ccsdebug.h" |
34 #include "ccsdebug.h" |
35 #include "ccsconversationchangeobserver.h" |
35 #include "ccsconversationchangeobserver.h" |
36 |
36 |
37 const TInt KSmallIpcBuffer = 256; //256 bytes |
37 const TInt KSmallIpcBuffer = 256; //256 bytes |
|
38 const TInt KBigIpcBuffer = 2048; // 2K |
38 |
39 |
39 // ========================= MEMBER FUNCTIONS ================================== |
40 // ========================= MEMBER FUNCTIONS ================================== |
40 |
41 |
41 // ----------------------------------------------------------------------------- |
42 // ----------------------------------------------------------------------------- |
42 // CCSRequestHandler::NewL() |
43 // CCSRequestHandler::NewL() |
292 // ----------------------------------------------------------------------------- |
293 // ----------------------------------------------------------------------------- |
293 void CCSRequestHandler::HandleGetConversationListOverflow() |
294 void CCSRequestHandler::HandleGetConversationListOverflow() |
294 { |
295 { |
295 PRINT ( _L("Enter CCSRequestHandler::HandleGetConversationListOverflow") ); |
296 PRINT ( _L("Enter CCSRequestHandler::HandleGetConversationListOverflow") ); |
296 |
297 |
|
298 if ( !iListResultsBuffer ) |
|
299 { |
|
300 return; |
|
301 } |
297 TInt error = KErrNone; |
302 TInt error = KErrNone; |
298 |
303 |
299 // New buffer size is now stored in results buffer |
304 // New buffer size is now stored in results buffer |
300 RDesReadStream stream(iListResultsBuffer->Des()); |
305 RDesReadStream stream(iListResultsBuffer->Des()); |
301 TInt bufferSize = 0; |
306 TInt bufferSize = 0; |
312 } |
317 } |
313 |
318 |
314 stream.Close(); |
319 stream.Close(); |
315 |
320 |
316 // Delete and recreate the results buffer |
321 // Delete and recreate the results buffer |
317 if ( iListResultsBuffer ) |
322 delete iListResultsBuffer; |
318 { |
323 iListResultsBuffer = NULL; |
319 delete iListResultsBuffer; |
|
320 iListResultsBuffer = NULL; |
|
321 } |
|
322 |
324 |
323 // Buffer created for the new size |
325 // Buffer created for the new size |
324 TRAP(error, |
326 TRAP(error, |
325 iListResultsBuffer = HBufC8::NewL(bufferSize); |
327 iListResultsBuffer = HBufC8::NewL(bufferSize); |
326 iSession.GetConversationListL(iListResultsBuffer->Des(),iStatus) |
328 iSession.GetConversationListL(iListResultsBuffer->Des(),iStatus) |
341 // ----------------------------------------------------------------------------- |
343 // ----------------------------------------------------------------------------- |
342 void CCSRequestHandler::HandleGetConversationOverflow() |
344 void CCSRequestHandler::HandleGetConversationOverflow() |
343 { |
345 { |
344 PRINT ( _L("Enter CCSRequestHandler::HandleGetConversationOverflow") ); |
346 PRINT ( _L("Enter CCSRequestHandler::HandleGetConversationOverflow") ); |
345 |
347 |
|
348 if ( !iConvResultsBuffer ) |
|
349 { |
|
350 return; |
|
351 } |
346 TInt error = KErrNone; |
352 TInt error = KErrNone; |
347 |
353 |
348 // New buffer size is now stored in results buffer |
354 // New buffer size is now stored in results buffer |
349 RDesReadStream stream(iConvResultsBuffer->Des()); |
355 RDesReadStream stream(iConvResultsBuffer->Des()); |
350 TInt bufferSize = 0; |
356 TInt bufferSize = 0; |
362 } |
368 } |
363 |
369 |
364 stream.Close(); |
370 stream.Close(); |
365 |
371 |
366 // Delete and recreate the results buffer |
372 // Delete and recreate the results buffer |
367 if ( iConvResultsBuffer ) |
373 delete iConvResultsBuffer; |
368 { |
374 iConvResultsBuffer = NULL; |
369 delete iConvResultsBuffer; |
|
370 iConvResultsBuffer = NULL; |
|
371 } |
|
372 |
375 |
373 // Buffer created for the new size |
376 // Buffer created for the new size |
374 TRAP(error, |
377 TRAP(error, |
375 iConvResultsBuffer = HBufC8::NewL(bufferSize); |
378 iConvResultsBuffer = HBufC8::NewL(bufferSize); |
376 iSession.SendNewBufferGetConversationL(iConvResultsBuffer->Des(),iStatus) |
379 iSession.SendNewBufferGetConversationL(iConvResultsBuffer->Des(),iStatus) |
1191 resultStream.Pop(); |
1194 resultStream.Pop(); |
1192 resultStream.Close(); |
1195 resultStream.Close(); |
1193 |
1196 |
1194 return conversationId; |
1197 return conversationId; |
1195 } |
1198 } |
|
1199 |
|
1200 // ----------------------------------------------------------------------------- |
|
1201 // CCSRequestHandler::GetConversationFromMessageIdL() |
|
1202 // ----------------------------------------------------------------------------- |
|
1203 EXPORT_C CCsClientConversation* CCSRequestHandler::GetConversationFromMessageIdL(TInt aMessageId) |
|
1204 { |
|
1205 // Create a buffer to store the results. |
|
1206 if(iResultsBuffer) |
|
1207 { |
|
1208 delete iResultsBuffer; |
|
1209 iResultsBuffer = NULL; |
|
1210 } |
|
1211 iResultsBuffer = HBufC8::NewL(KBigIpcBuffer); |
|
1212 |
|
1213 // Send the request |
|
1214 iSession.GetConversationFromMessageIdL(aMessageId, iResultsBuffer->Des()); |
|
1215 |
|
1216 // Parse the results |
|
1217 RDesReadStream resultStream(iResultsBuffer->Des()); |
|
1218 resultStream.PushL(); |
|
1219 CCsClientConversation* clientConversation = CCsClientConversation::NewL(); |
|
1220 CleanupStack::PushL(clientConversation); |
|
1221 clientConversation->InternalizeL(resultStream); |
|
1222 CleanupStack::Pop(clientConversation); |
|
1223 |
|
1224 // Cleanup |
|
1225 delete iResultsBuffer; |
|
1226 iResultsBuffer = NULL; |
|
1227 resultStream.Pop(); |
|
1228 resultStream.Close(); |
|
1229 |
|
1230 return clientConversation; |
|
1231 } |
|
1232 |
1196 // ----------------------------------------------------------------------------- |
1233 // ----------------------------------------------------------------------------- |
1197 // CCSRequestHandler::GetMessagingHistoryL() |
1234 // CCSRequestHandler::GetMessagingHistoryL() |
1198 // ----------------------------------------------------------------------------- |
1235 // ----------------------------------------------------------------------------- |
1199 EXPORT_C void CCSRequestHandler::GetMessagingHistoryL(TInt aContactId) |
1236 EXPORT_C void CCSRequestHandler::GetMessagingHistoryL(TInt aContactId) |
1200 { |
1237 { |