msg_plat/conversation_services_utilities_api/inc/ccsdefs.h
changeset 44 36f374c67aa8
parent 43 35b64624a9e7
child 47 5b14749788d7
child 52 12db4185673b
--- a/msg_plat/conversation_services_utilities_api/inc/ccsdefs.h	Wed Jun 23 18:09:17 2010 +0300
+++ b/msg_plat/conversation_services_utilities_api/inc/ccsdefs.h	Tue Jul 06 14:12:40 2010 +0300
@@ -81,6 +81,7 @@
 const TUint32 KConversationCachingEventError     = 0x00000100;
 const TUint32 KConversationEventListRefresh      = 0x00000200;
 const TUint32 KConversationEventRefresh          = 0x00000400;
+const TUint32 KConversationListEventPartialDelete = 0x00000800;
 
 //-----------------------------------------------------------------------------
 // Conversation Server caching status codes
@@ -120,7 +121,9 @@
      EGetConversationId,
      EGetConversationIdFromAddress,
      EGetConversationFromMessageId,
-     EUserMarkReadConversation
+     EUserMarkReadConversation,
+     EGetConversationFromConversationId,
+     EGetConversationFromConversationIdComplete
 };
 
 //-----------------------------------------------------------------------------
@@ -137,6 +140,7 @@
     EModifyConversationListEvent,
     EAddConversationEvent,
     EDeleteConversationEvent,
+    EPartialDeleteConversationListEvent,
     EModifyConversationEvent,
     ECachingStartedEvent,
     ECachingCompletedEvent,
@@ -316,6 +320,63 @@
     EPreviewMsgProcessed          = 2
 };
 
+/** 
+@publishedAll
+@released
+
+Template class CleanupResetAndDestroy to clean up the array
+of implementation information from the cleanup stack.
+*/
+
+template <class T>
+class CleanupResetAndDestroy
+	{
+public:
+	/**
+	Puts an item on the cleanup stack.
+
+	@param  aRef 
+	        The implementation information to be put on the cleanup stack.
+	*/
+	inline static void PushL(T& aRef);
+	inline static void PushL(T* aPointer);
+private:
+	static void ResetAndDestroy(TAny *aPtr);
+	static void ResetAndDestroyDelete(TAny *aPtr);
+	};
+template <class T>
+inline void CleanupResetAndDestroyPushL(T& aRef);
+
+template <class T>
+inline void CleanupResetAndDestroyPushL(T* aPointer);
+
+template <class T>
+inline void CleanupResetAndDestroy<T>::PushL(T& aRef)
+	{CleanupStack::PushL(TCleanupItem(&ResetAndDestroy,&aRef));}
+
+template <class T>
+inline void CleanupResetAndDestroy<T>::PushL(T* aPointer)
+    {CleanupStack::PushL(TCleanupItem(&ResetAndDestroyDelete,aPointer));}
+
+template <class T>
+void CleanupResetAndDestroy<T>::ResetAndDestroy(TAny *aPtr)
+	{(STATIC_CAST(T*,aPtr))->ResetAndDestroy();}
+
+template <class T>
+void CleanupResetAndDestroy<T>::ResetAndDestroyDelete(TAny *aPtr)
+    {
+    (STATIC_CAST(T*,aPtr))->ResetAndDestroy();
+    delete (STATIC_CAST(T*,aPtr));
+    }
+
+template <class T>
+inline void CleanupResetAndDestroyPushL(T& aRef)
+	{CleanupResetAndDestroy<T>::PushL(aRef);}
+
+template <class T>
+inline void CleanupResetAndDestroyPushL(T* aPointer)
+    {CleanupResetAndDestroy<T>::PushL(aPointer);}
+	
 #endif // __C_CSSERVER_DEFS_H__
 
 // End of file