messagingapp/msgui/appengine/src/conversationsengine_p.cpp
changeset 37 518b245aa84c
parent 25 84d9eb65b26f
child 48 4f501b74aeb1
--- a/messagingapp/msgui/appengine/src/conversationsengine_p.cpp	Mon May 03 12:29:07 2010 +0300
+++ b/messagingapp/msgui/appengine/src/conversationsengine_p.cpp	Fri Jun 25 15:47:40 2010 +0530
@@ -26,6 +26,7 @@
 #include "conversationsmodel.h"
 #include "conversationchangehandler.h"
 #include "conversationlistchangehandler.h"
+#include "debugtraces.h"
 
 //---------------------------------------------------------------
 // ConversationsEnginePrivate::ConversationsEnginePrivate
@@ -50,28 +51,31 @@
 //---------------------------------------------------------------
 ConversationsEnginePrivate::~ConversationsEnginePrivate()
 {
+
+    if( mClientConv )
+    {        
+        if(mServer && mConvChangeHandler)
+        {    
+        TRAP_IGNORE(mServer->RemoveConversationChangeEventL(
+                mConvChangeHandler,mClientConv));
+        }
+        delete mClientConv;
+        mClientConv = NULL;
+    }
+    if(mServer && mConvListChangeHandler)
+    {
+        TRAP_IGNORE(mServer->RemoveConversationListChangeEventL(
+                mConvListChangeHandler));
+        TRAP_IGNORE(mServer->RemoveResultsEventL ( this ));
+        mServer->Cancel();
+        delete mServer;
+        mServer = NULL;
+    }
+    
     delete mConvChangeHandler;
     
     delete mConvListChangeHandler;
     
-    if( mClientConv )
-    {        
-        if(mServer)
-        {    
-        mServer->RemoveConversationChangeEventL (mConvChangeHandler,
-            mClientConv);
-        }
-        delete mClientConv;
-        mClientConv = NULL;
-    }
-    if(mServer)
-    {
-        mServer->RemoveConversationListChangeEventL (mConvListChangeHandler);
-        mServer->RemoveResultsEventL ( this );
-        mServer->Cancel();
-        delete mServer;
-        mServer = NULL;
-    }
 }
 
 //---------------------------------------------------------------
@@ -113,6 +117,7 @@
 {	
     if(!mClientConv)
     {
+        QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL start.");
         //Clear the model before issueing fetch
         mConversationsModel->clear();
         //create a client conversation
@@ -120,12 +125,15 @@
         mClientConv->SetConversationEntryId(aConversationId);
         //set dummy entry
         CCsConversationEntry *entry = CCsConversationEntry::NewL();
-		CleanupStack::PushL(entry);
+        CleanupStack::PushL(entry);
         mClientConv->SetConversationEntryL(entry);
-		CleanupStack::PopAndDestroy(entry);
+        CleanupStack::PopAndDestroy(entry);
         //Get the conversations for new conversationId 
-        mServer->GetConversationsL( mClientConv ); 
-    }   
+        mServer->GetConversationsL(mClientConv);
+
+        QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL end.");
+        }   
+    
 }
 
 //---------------------------------------------------------------
@@ -213,6 +221,14 @@
     return convId;
 }
 
+//---------------------------------------------------------------
+// ConversationsEnginePrivate::getConversationFromConversationId
+// @see header
+//---------------------------------------------------------------
+CCsClientConversation* ConversationsEnginePrivate::getConversationFromConversationIdL(TInt aConversationId)
+{
+     return mServer->GetConversationFromConversationIdL(aConversationId);
+}
 
 //---------------------------------------------------------------
 // ConversationsEnginePrivate::clearConversationsL
@@ -220,18 +236,24 @@
 //---------------------------------------------------------------
 void ConversationsEnginePrivate::clearConversationsL()
 {    
+    QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL start.");
+    
     mConvChangeHandler->Cancel();
     //Clear conversations model before populating with new data 
-    mConversationsModel->clear();  
+    mConversationsModel->clearModel();
     
     // Delete old CCsClientConversation object 
     // Remove the old Conversation change observer
     if(mClientConv)
-    {    
-        mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv);
+    {   
+        int error = KErrNone;
+        TRAP(error, mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv));
         delete mClientConv;
         mClientConv = NULL;
+        User::LeaveIfError(error);
     }
+    
+    QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL end.");
 }
 
 //---------------------------------------------------------------
@@ -248,6 +270,30 @@
 }
 
 //---------------------------------------------------------------
+// ConversationsEnginePrivate::deRegisterCVUpdatesTemporary
+// @see header
+//---------------------------------------------------------------
+void ConversationsEnginePrivate::deRegisterCVUpdatesTemporary()
+{
+    mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv);
+}
+
+//---------------------------------------------------------------
+// ConversationsEnginePrivate::registerAgainForConversationUpdatesL
+// @see header
+//---------------------------------------------------------------
+void ConversationsEnginePrivate::registerAgainForConversationUpdatesL(
+        int newConversationId)
+{
+    //Add the Conversation Change for new  conversationId
+    if(mClientConv)
+    {    
+    mClientConv->SetConversationEntryId(newConversationId);
+    mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv);
+    }
+}
+
+//---------------------------------------------------------------
 // ConversationsEnginePrivate::ConversationList
 // @see header
 //---------------------------------------------------------------
@@ -267,10 +313,14 @@
     RPointerArray<CCsConversationEntry>& aConversationEntryList)
 {
     int error;
-    if(mClientConv)
-    {    
+    if (mClientConv)
+        {
+        QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations start.");
+
         TRAP(error,mConvChangeHandler->ConversationsL(aConversationEntryList));
-    }
+
+        QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations end.");
+        }
 }
 
 
@@ -280,9 +330,9 @@
 //---------------------------------------------------------------
 void ConversationsEnginePrivate::fetchMoreConversations()
 {
-    if(mClientConv)
-        {    
-            mConvChangeHandler->restartHandleConversations();
+    if (mClientConv)
+        {
+        mConvChangeHandler->restartHandleConversations();
         }
 }