emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h
branchRCL_3
changeset 16 b5fbb9b25d57
parent 0 8466d47a6819
child 24 d189ee25cf9d
--- a/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h	Tue May 11 15:57:15 2010 +0300
@@ -49,4 +49,31 @@
     CleanupResetAndDestroyClose<T>::PushL(aRef);
     }
 
+/**
+* Cleanup support for owning pointer arrays
+*/
+
+template<class T>
+class CleanupResetAndDestroy
+{
+private:
+    inline static void ResetAndDestroy( TAny *aPtr )
+    {
+    reinterpret_cast<T*>( aPtr )->ResetAndDestroy();
+    };
+public:
+    inline static void PushL( T& aItem )
+    { 
+    TCleanupItem item( &CleanupResetAndDestroy::ResetAndDestroy, &aItem );
+    CleanupStack::PushL( item );
+    };
+} ;
+
+template <class T>
+inline void CleanupResetAndDestroyPushL( T& aRef )
+    {
+    CleanupResetAndDestroy<T>::PushL( aRef );
+    }
+
+
 #endif