messagingapp/msgui/appengine/src/conversationsengine_p.cpp
changeset 37 518b245aa84c
parent 25 84d9eb65b26f
child 48 4f501b74aeb1
equal deleted inserted replaced
25:84d9eb65b26f 37:518b245aa84c
    24 #include "conversationmsgstorehandler.h"
    24 #include "conversationmsgstorehandler.h"
    25 #include "conversationssummarymodel.h"
    25 #include "conversationssummarymodel.h"
    26 #include "conversationsmodel.h"
    26 #include "conversationsmodel.h"
    27 #include "conversationchangehandler.h"
    27 #include "conversationchangehandler.h"
    28 #include "conversationlistchangehandler.h"
    28 #include "conversationlistchangehandler.h"
       
    29 #include "debugtraces.h"
    29 
    30 
    30 //---------------------------------------------------------------
    31 //---------------------------------------------------------------
    31 // ConversationsEnginePrivate::ConversationsEnginePrivate
    32 // ConversationsEnginePrivate::ConversationsEnginePrivate
    32 // @see header
    33 // @see header
    33 //---------------------------------------------------------------
    34 //---------------------------------------------------------------
    48 // ConversationsEnginePrivate::~ConversationsEnginePrivate
    49 // ConversationsEnginePrivate::~ConversationsEnginePrivate
    49 // @see header
    50 // @see header
    50 //---------------------------------------------------------------
    51 //---------------------------------------------------------------
    51 ConversationsEnginePrivate::~ConversationsEnginePrivate()
    52 ConversationsEnginePrivate::~ConversationsEnginePrivate()
    52 {
    53 {
    53     delete mConvChangeHandler;
    54 
    54     
       
    55     delete mConvListChangeHandler;
       
    56     
       
    57     if( mClientConv )
    55     if( mClientConv )
    58     {        
    56     {        
    59         if(mServer)
    57         if(mServer && mConvChangeHandler)
    60         {    
    58         {    
    61         mServer->RemoveConversationChangeEventL (mConvChangeHandler,
    59         TRAP_IGNORE(mServer->RemoveConversationChangeEventL(
    62             mClientConv);
    60                 mConvChangeHandler,mClientConv));
    63         }
    61         }
    64         delete mClientConv;
    62         delete mClientConv;
    65         mClientConv = NULL;
    63         mClientConv = NULL;
    66     }
    64     }
    67     if(mServer)
    65     if(mServer && mConvListChangeHandler)
    68     {
    66     {
    69         mServer->RemoveConversationListChangeEventL (mConvListChangeHandler);
    67         TRAP_IGNORE(mServer->RemoveConversationListChangeEventL(
    70         mServer->RemoveResultsEventL ( this );
    68                 mConvListChangeHandler));
       
    69         TRAP_IGNORE(mServer->RemoveResultsEventL ( this ));
    71         mServer->Cancel();
    70         mServer->Cancel();
    72         delete mServer;
    71         delete mServer;
    73         mServer = NULL;
    72         mServer = NULL;
    74     }
    73     }
       
    74     
       
    75     delete mConvChangeHandler;
       
    76     
       
    77     delete mConvListChangeHandler;
       
    78     
    75 }
    79 }
    76 
    80 
    77 //---------------------------------------------------------------
    81 //---------------------------------------------------------------
    78 // ConversationsEnginePrivate::initL
    82 // ConversationsEnginePrivate::initL
    79 // @see header
    83 // @see header
   111 //---------------------------------------------------------------
   115 //---------------------------------------------------------------
   112 void ConversationsEnginePrivate::getConversationsL( TInt aConversationId)
   116 void ConversationsEnginePrivate::getConversationsL( TInt aConversationId)
   113 {	
   117 {	
   114     if(!mClientConv)
   118     if(!mClientConv)
   115     {
   119     {
       
   120         QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL start.");
   116         //Clear the model before issueing fetch
   121         //Clear the model before issueing fetch
   117         mConversationsModel->clear();
   122         mConversationsModel->clear();
   118         //create a client conversation
   123         //create a client conversation
   119         mClientConv = CCsClientConversation::NewL();
   124         mClientConv = CCsClientConversation::NewL();
   120         mClientConv->SetConversationEntryId(aConversationId);
   125         mClientConv->SetConversationEntryId(aConversationId);
   121         //set dummy entry
   126         //set dummy entry
   122         CCsConversationEntry *entry = CCsConversationEntry::NewL();
   127         CCsConversationEntry *entry = CCsConversationEntry::NewL();
   123 		CleanupStack::PushL(entry);
   128         CleanupStack::PushL(entry);
   124         mClientConv->SetConversationEntryL(entry);
   129         mClientConv->SetConversationEntryL(entry);
   125 		CleanupStack::PopAndDestroy(entry);
   130         CleanupStack::PopAndDestroy(entry);
   126         //Get the conversations for new conversationId 
   131         //Get the conversations for new conversationId 
   127         mServer->GetConversationsL( mClientConv ); 
   132         mServer->GetConversationsL(mClientConv);
   128     }   
   133 
       
   134         QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL end.");
       
   135         }   
       
   136     
   129 }
   137 }
   130 
   138 
   131 //---------------------------------------------------------------
   139 //---------------------------------------------------------------
   132 // ConversationsEnginePrivate::deleteConversationL
   140 // ConversationsEnginePrivate::deleteConversationL
   133 // @see header
   141 // @see header
   211     convId = mServer->GetConversationIdFromAddressL(contactAddress);
   219     convId = mServer->GetConversationIdFromAddressL(contactAddress);
   212     
   220     
   213     return convId;
   221     return convId;
   214 }
   222 }
   215 
   223 
       
   224 //---------------------------------------------------------------
       
   225 // ConversationsEnginePrivate::getConversationFromConversationId
       
   226 // @see header
       
   227 //---------------------------------------------------------------
       
   228 CCsClientConversation* ConversationsEnginePrivate::getConversationFromConversationIdL(TInt aConversationId)
       
   229 {
       
   230      return mServer->GetConversationFromConversationIdL(aConversationId);
       
   231 }
   216 
   232 
   217 //---------------------------------------------------------------
   233 //---------------------------------------------------------------
   218 // ConversationsEnginePrivate::clearConversationsL
   234 // ConversationsEnginePrivate::clearConversationsL
   219 // @see header
   235 // @see header
   220 //---------------------------------------------------------------
   236 //---------------------------------------------------------------
   221 void ConversationsEnginePrivate::clearConversationsL()
   237 void ConversationsEnginePrivate::clearConversationsL()
   222 {    
   238 {    
       
   239     QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL start.");
       
   240     
   223     mConvChangeHandler->Cancel();
   241     mConvChangeHandler->Cancel();
   224     //Clear conversations model before populating with new data 
   242     //Clear conversations model before populating with new data 
   225     mConversationsModel->clear();  
   243     mConversationsModel->clearModel();
   226     
   244     
   227     // Delete old CCsClientConversation object 
   245     // Delete old CCsClientConversation object 
   228     // Remove the old Conversation change observer
   246     // Remove the old Conversation change observer
   229     if(mClientConv)
   247     if(mClientConv)
   230     {    
   248     {   
   231         mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv);
   249         int error = KErrNone;
       
   250         TRAP(error, mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv));
   232         delete mClientConv;
   251         delete mClientConv;
   233         mClientConv = NULL;
   252         mClientConv = NULL;
   234     }
   253         User::LeaveIfError(error);
       
   254     }
       
   255     
       
   256     QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL end.");
   235 }
   257 }
   236 
   258 
   237 //---------------------------------------------------------------
   259 //---------------------------------------------------------------
   238 // ConversationsEnginePrivate::registerForConversationUpdatesL
   260 // ConversationsEnginePrivate::registerForConversationUpdatesL
   239 // @see header
   261 // @see header
   246     mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv);
   268     mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv);
   247     }
   269     }
   248 }
   270 }
   249 
   271 
   250 //---------------------------------------------------------------
   272 //---------------------------------------------------------------
       
   273 // ConversationsEnginePrivate::deRegisterCVUpdatesTemporary
       
   274 // @see header
       
   275 //---------------------------------------------------------------
       
   276 void ConversationsEnginePrivate::deRegisterCVUpdatesTemporary()
       
   277 {
       
   278     mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv);
       
   279 }
       
   280 
       
   281 //---------------------------------------------------------------
       
   282 // ConversationsEnginePrivate::registerAgainForConversationUpdatesL
       
   283 // @see header
       
   284 //---------------------------------------------------------------
       
   285 void ConversationsEnginePrivate::registerAgainForConversationUpdatesL(
       
   286         int newConversationId)
       
   287 {
       
   288     //Add the Conversation Change for new  conversationId
       
   289     if(mClientConv)
       
   290     {    
       
   291     mClientConv->SetConversationEntryId(newConversationId);
       
   292     mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv);
       
   293     }
       
   294 }
       
   295 
       
   296 //---------------------------------------------------------------
   251 // ConversationsEnginePrivate::ConversationList
   297 // ConversationsEnginePrivate::ConversationList
   252 // @see header
   298 // @see header
   253 //---------------------------------------------------------------
   299 //---------------------------------------------------------------
   254 void ConversationsEnginePrivate::ConversationList(
   300 void ConversationsEnginePrivate::ConversationList(
   255     RPointerArray<CCsClientConversation>& aClientConversationList)
   301     RPointerArray<CCsClientConversation>& aClientConversationList)
   265 //---------------------------------------------------------------
   311 //---------------------------------------------------------------
   266 void ConversationsEnginePrivate::Conversations(
   312 void ConversationsEnginePrivate::Conversations(
   267     RPointerArray<CCsConversationEntry>& aConversationEntryList)
   313     RPointerArray<CCsConversationEntry>& aConversationEntryList)
   268 {
   314 {
   269     int error;
   315     int error;
   270     if(mClientConv)
   316     if (mClientConv)
   271     {    
   317         {
       
   318         QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations start.");
       
   319 
   272         TRAP(error,mConvChangeHandler->ConversationsL(aConversationEntryList));
   320         TRAP(error,mConvChangeHandler->ConversationsL(aConversationEntryList));
   273     }
   321 
       
   322         QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations end.");
       
   323         }
   274 }
   324 }
   275 
   325 
   276 
   326 
   277 //---------------------------------------------------------------
   327 //---------------------------------------------------------------
   278 // ConversationsEngine::fetchMoreConversations
   328 // ConversationsEngine::fetchMoreConversations
   279 // @see header
   329 // @see header
   280 //---------------------------------------------------------------
   330 //---------------------------------------------------------------
   281 void ConversationsEnginePrivate::fetchMoreConversations()
   331 void ConversationsEnginePrivate::fetchMoreConversations()
   282 {
   332 {
   283     if(mClientConv)
   333     if (mClientConv)
   284         {    
   334         {
   285             mConvChangeHandler->restartHandleConversations();
   335         mConvChangeHandler->restartHandleConversations();
   286         }
   336         }
   287 }
   337 }
   288 
   338 
   289 //---------------------------------------------------------------
   339 //---------------------------------------------------------------
   290 // ConversationsEnginePrivate::resendMessage()
   340 // ConversationsEnginePrivate::resendMessage()